🛠 Réseau Thread / 802.15.4 avec OpenThread sur le nRF52833
The software stack in 2026
The nRF52833 is a recognized platform for OpenThread: the official openthread/ot-nrf528xx repository contains a dedicated nrf52833 target, and the nRF Connect SDK integrates the OpenThread port for Thread/Zigbee. An important warning inherited from the Nordic ecosystem: the old nRF5 SDK for Thread and Zigbee (v3.2.0, cited in the kit's User Guide) is in maintenance only — the ot-nrf528xx README is explicit, new designs must use the NCS. So forget the examples/nrf5-sdk/openthread-* procedures from old tutorials.
Bench architecture
- Border router: OTBR (OpenThread Border Router) on a Raspberry Pi, with an RCP radio — a second kit or a Nordic dongle connected via USB/UART.
- Thread node: your nRF52833-DK as an FTD (Full Thread Device) or MTD depending on the desired power autonomy.
- The nRF52833 radio handles native 802.15.4 (same chip as BLE/mesh, multiprotocol), with +8 dBm transmit power — very good indoor range.
Step 1 — Node firmware
Recommended path: the OpenThread samples from the NCS/Zephyr tree, the nrf52833dk/nrf52833 board being supported on both sides (upstream Zephyr lists it as "Maintained"). Principle:
# depuis un workspace NCS à jour — sample shell OT
west build -b nrf52833dk/nrf52833 <sample-openthread-shell> && west flash
The node console goes through the virtual COM port of the J-Link OB (remember to handle DTR). The historical ot-nrf528xx path provides the official CLI RCP/FTD firmwares for nRF52833; keep the same stack version on the border router and the node side — mixing versions is the primary cause of nodes failing to attach.
Step 2 — Forming the network
On the border router side (OTBR on the Pi, via wpanctl):
wpanctl
wpanctl> thread start
wpanctl> dataset active -x # récupérer le network dataset (TLV complet)
On the node side (OpenThread shell on the DK):
> dataset networkkey <clé> # ou dataset complet
> ifconfig up
> thread start
> state # child / router / leader
> ipaddr
The node obtains a ULA IPv6 address; ping6 from the Pi validates the end-to-end mesh. This is where the 128 KB of RAM on the nRF52833 (double that of the nRF52832) becomes comfortable for a sensor node + buffers.
Step 3 — Debugging the mesh
- A third kit (or dongle) as an 802.15.4 sniffer feeding into Wireshark: essential for seeing attachments, MLE frames, and CoAP.
- The kit's RF connector (see the RF measurements tutorial) allows characterizing the actual power of each node without an antenna.
- The kit's LEDs (P0.13-P0.16) are well suited for state indicators (child/leader).
Specific pitfalls
- 32.768 kHz crystal: The Thread radio is demanding regarding the clock; the kit has its 32.768 kHz crystal mounted (P0.00/P0.01 reserved for X2 by default) — on your own board, do not steal these pins.
- Silicon errata: Documented anomalies (see the RF/errata tutorial) include invalid RTC values in Rev 2 — workarounds are applied by NCS/Zephyr, but keep the chip revision in mind for custom hardware.
- Do not confuse the roles: RCP = radio controlled by the Pi; FTD/MTD = autonomous Thread node.
Other tutorials for this board
- Premier blinky Zephyr sur le nRF52833-DK
- Flasher un .hex sans rien installer : MSD et nRF Connect Programmer
- CircuitPython sur le kit Nordic : le prototypage sans C
- Premier périphérique BLE avec le nRF Connect SDK
- Projet firmware complet avec PlatformIO et la sonde J-Link embarquée
- Utiliser le DK comme sonde J-Link pour une cible externe