/** @defgroup boards_nrf52840dongle nRF52840-Dongle @ingroup boards @brief Support for the nRF52840-Dongle ### General information The nRF52840-Dongle is a bare USB-stick shaped device that houses barely anything than the nRF52840 itself, which offers BLE and 802.15.4 and USB connectivity. Unlike similar sticks (like the @ref boards_nrf52840-mdk), it features no dedicated programmer hardware but relies on direct USB communication with a built-in bootloader. The board features two LEDs (LD1: green, LD2: RGB), a user (SW1) and a reset button as well as 15 configurable external pins. ### Links - [nRF52840 web page](https://www.nordicsemi.com/?sc_itemid=%7BCDCCA013-FE4C-4655-B20C-1557AB6568C9%7D) - [documentation and hardware description](https://infocenter.nordicsemi.com/topic/ug_nrf52840_dongle/UG/nrf52840_Dongle/intro.html?cp=3_0_5) ### Flash the board The board is flashed using its on-board boot loader; the [nrfutil](https://github.com/NordicSemiconductor/pc-nrfutil) program needs to be installed. That can turn the binary into a suitable zip file and send it to the bootloader. The process is automated in the usual `make flash` target. For that process to complete, you need to enter the bootloader manually by pressing the board's reset button. Readiness of the bootloader is indicated by LD2 pulsing in red. #### nrfutil installation On systems with Python 2 available, `pip install nrfutil` works. On systems with Python 3, a recent version of pip is required to install all dependencies; you may need to run `pip install --upgrade pip` before being able to run `pip install nrfutil` successfully. ### Accessing STDIO The usual way to obtain a console on this board is using an emulated USB serial port (CDC-ACM). This is available automatically using the `stdio_cdc_acm` module, unless any other stdio module is enabled. On Linux systems with ModemManager < 1.10 installed, `make term` will, in some setups, fail for a few seconds after the device has come up. This is [fixed in its 1.12.4 version](https://gitlab.freedesktop.org/mobile-broadband/ModemManager/issues/164), but should not be more than a short annoyance in earlier versions. To ease debugging, pins 0.13 and 0.15 are configured as RX and TX, respectively. They provide stdio if no CDC-ACM is disabled, and can be used as a custom UART otherwise. */