Common support for the Particle Mesh boards family (Xenon, Argon, Boron) More...
Common support for the Particle Mesh boards family (Xenon, Argon, Boron)
Particle Mesh are mesh-ready development kits. Depending on the board type (Xenon, Argon, Boron), it provides access to multiple communication protocols: BLE, 802.15.4, WiFi, LTE.
Using the Particle Mesh debugger, the board can be flashed with PyOCD programmer via a DAPLink.
PyOCD can be installed using Python package manager:
To flash the board, use BOARD=<board name>
(with board name in {particle-argon, particle-boron, particle-xenon}) with the make
command.
Example with hello-world
application:
In this case, OpenOCD can also be used. For the moment, the latest stable version of OpenOCD (0.10) doesn't contain any support for nrf52 but versions built against the actual development version can be used.
To flash the board with OpenOCD, use the PROGRAMMER
variable:
As an alternative to using the Particle Mesh debugger, the USB DFU mode bootloader shipped with Particle Mesh devices can be used. That mode can be entered by keeping the SETUP/MODE button pressed after power-up or reset until the RGB LED blinks yellow fast.
In this mode, the bootloader and Soft Device are kept in place, reducing the available flash memory to 784kB, but in turn, devices can easily be switched back to using Particle software.
In order to use this mode, set PARTICLE_MONOFIRMWARE=1
wherever you set the BOARD
. This will trigger the use of the appropriate linker script, and switch in dfu-util
as the default programmer, which needs to be installed.
On Linux hosts, devices for the DFU mode are frequently only accessible to root, causing error messages like
dfu-util: Cannot open DFU device 2b04:d00e dfu-util: No DFU capable USB device available
To make Particle devices writable for all users, follow Particle's instructions on setting up dfu-util.
The Particle bootloader checks the firmware's checksum at startup time. As these checks would be frustrated by flash writes inside RIOT (typically using the Flash page driver), the CFLAG -DPARTICLE_MONOFIRMWARE_CHECKSUMLIMIT can be set. Then, the checksum is only calculated over the memory region that contains the interrupt vector and the bootloader manifest.
The on-board reset button doesn't work, so to trigger a reset of the board, use the reset
target with make
:
By default, the board uses USB to expose a serial terminal. Other stdio options can be enabled as modules to replace that.
When the stdio_uart
module is used, it defaults to using UART0, which is configured for the board's RX/TX pin pair.
The Particle Mesh boards all have two antenna choices for their nRF (Bluetooth / 802.15.4) radios, a on-board antenna and a U.FL connector for an external antenna.
By default, the on-board antenna is selected at startup. That choice can be overridden by setting BOARD_NRFANTENNA_DEFAULT = EXTERNAL
(as opposed to the default BUILTIN
) in a project's Makefile
, or at runtime using board_nrfantenna_select function.
The external antenna connection should only be enabled if a suitable antenna is connected.
Files | |
file | bat_voltage_params.h |
Configuration of SAUL mapped battery voltage information. | |
file | board.h |
Common board specific configuration for the Particle Mesh. | |
file | gpio_params.h |
Configuration of SAUL mapped GPIO pins. | |
file | periph_conf_common.h |
Common peripheral configuration for the Particle Mesh. | |
file | pwm_params.h |
Configuration of SAUL mapped PWM channels. | |