Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 55 additions & 0 deletions boards/nrf52840dk/doc.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
@defgroup boards_nrf52840dk nRF52840 DK
@ingroup boards
@brief Support for the nRF52840 DK

### General information

The [nRF52840 DK](https://www.nordicsemi.com/Products/Development-hardware/nRF52840-DK)
is a devboard based on the nRF52840 SoC which supports multiple wireless protocols
including Bluetooth Low Energy, Thread and Zigbee.

## Hardware

| MCU | nRF52840 |
|:--------------------- |:------------------------------------------------------------------------------------------------------------------|
| Family | ARM Cortex-M4 |
| Vendor | Nordic Semiconductor |
| RAM | 256 KiB |
| Flash | 1 MiB |
| Frequency | 64 MHz |
| FPU | yes |
| Timers | 5 (32-bit) |
| RTC | 3 |
| ADCs | 1x 12-bit (8 channels) |
| UARTs | 2 |
| SPIs | 4 masters/3 slaves |
| I2Cs | 2 |
| I2S | 1 |
| PWM | 4*4 Channels |
| Radio | 2.4GHz BLE compatible, -20 dBm to +8 dBm output, -95 dBm RX sensitivity |
| Vcc | 1.7V - 5.5V |
| MCU Manual | [Manual](https://docs-be.nordicsemi.com/bundle/ps_nrf52840/attach/nRF52840_PS_v1.11.pdf) |
| Board Documentation | [Documentation](https://docs.nordicsemi.com/bundle/ug_nrf52840_dk/page/UG/dk/intro.html) |

### RESET pin configuration

On many (all?) nrf52840dk boards, the reset pin is not configured out-of-the box.
This means, that simply nothing happens if the RESET pin is pressed. To change
this, RIOT provides a little tool in `dist/tools/nrf52_resetpin_cfg`.

Simply compile, flash, and run that tool on your board, and the reset pin should
work for the time being.

## Flash the board

See the `Flashing` section in @ref boards_common_nrf52.

## Accessing STDIO via UART

The STDIO is directly accessible via the USB port. On a Linux host, it's
generally mapped to `/dev/ttyACM0`.

Use the `term` target to connect to the board serial port<br/>
```
make BOARD=nrf52840dk -C examples/basic/hello-world term
```
30 changes: 0 additions & 30 deletions boards/nrf52840dk/doc.txt

This file was deleted.

82 changes: 82 additions & 0 deletions boards/nrf52840dongle/doc.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
@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.

### Hardware

| MCU | nRF52840 |
|:--------------------- |:------------------------------------------------------------------------------------------------------------------|
| Family | ARM Cortex-M4 |
| Vendor | Nordic Semiconductor |
| RAM | 256 KiB |
| Flash | 1 MiB |
| Frequency | 64 MHz |
| FPU | yes |
| Timers | 5 (32-bit) |
| RTC | 3 |
| ADCs | 1x 12-bit (8 channels) |
| UARTs | 2 |
| SPIs | 4 masters/3 slaves |
| I2Cs | 2 |
| I2S | 1 |
| PWM | 4*4 Channels |
| Radio | 2.4GHz BLE compatible, -20 dBm to +8 dBm output, -95 dBm RX sensitivity |
| Vcc | 1.7V - 5.5V |
| MCU Manual | [Manual](https://docs-be.nordicsemi.com/bundle/ps_nrf52840/attach/nRF52840_PS_v1.11.pdf) |
| Dongle Documentation | [Documentation](https://docs.nordicsemi.com/bundle/ug_nrf52840_dongle/page/UG/nrf52840_Dongle/intro.html) |

### Quick start

- Plug into a USB port.
- `$ make BOARD=nrf52840dongle -C examples/basic/saul flash term`
- See [Flash the board](#nrf52840dongle_flash) if anything goes wrong.
- `> saul write 2 10 40 10`
- The LED glows in a soft turquise.

### Flash the board {#nrf52840dongle_flash}

The board is flashed using its on-board boot loader; the proprietary
[nrfutil](https://www.nordicsemi.com/Products/Development-tools/nRF-Util) program needs to
be installed, and `nrfutil install nrf5sdk-tools` needs to be executed. Note
that nrfutil, even when not running the "install" command, will install itself
into `~/.nrfutil`. The older Python based version of nrfutil is no longer
maintained by Nordic, and has become dysfunctional on Python 3.11.

The nrfutil 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.

If RIOT is already running on the board, it will automatically reset the CPU and enter
the bootloader.
If some other firmware is running or RIOT crashed, 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.

### 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.
67 changes: 0 additions & 67 deletions boards/nrf52840dongle/doc.txt

This file was deleted.