🛠 Construire un réseau Thread avec OpenThread

nRF52840-MDK (boards.json id: nrf52840-mdk) · avance · Frontière 802.15.4/IPv6 : un MDK comme RCP, un Raspberry Pi comme border router, un second MDK comme nœud — et le sniffer pour voir le mesh.

Assembly

Thread is an 802.15.4 mesh with native IPv6. The nRF52840 on the board is a supported platform for OpenThread: 2.4 GHz radio (+8 dBm), 1 MB of flash, and MakerDiary provides an OpenThread Border Router setup (OTBR/) and a Thread sniffer guide (thread-sniffer/) in its repository. The classic architecture consists of an MDK acting as an RCP (Radio Co-Processor) controlled by OTBR on a Raspberry Pi, and a second MDK acting as an FTD (Full Thread Device) node.

Documentation Drift Warning — Read This First

The upstream Thread firmware has migrated to the openthread/ot-nrf528xx repository, which has broken some of the older procedures in the MakerDiary wiki (issue #52 in the repository: "Documentation no longer accurate"). There are two viable paths in 2026:

Step 1 — Border Router on the Pi

Follow the OTBR guide in the MakerDiary repository: compile OTBR on the Raspberry Pi, flash the RCP firmware onto the first MDK (west build + west flash, or drop the hex file onto the DAPLINK drive), then connect the MDK via USB. OTBR sees the radio via the RCP serial/USB layer and forms the network:

# une fois OTBR lancé, le réseau est formé ; on l'inspecte via wpanctl
wpanctl
wpanctl> thread start
wpanctl> dataset active -x     # le network dataset à partager

Step 2 — Thread FTD Node

On the second MDK, use an OpenThread CLI firmware (ot-cli-ftd or the equivalent Zephyr shell):

> dataset networkkey <clé du dataset actif>   # ou dataset via le TL-14 complet
> ifconfig up
> thread start
> state        # doit passer leader/child/robot
> ipaddr

The node has a routable IPv6 address; you can ping6 it from the Pi. This is where the board's 8 MB of external QSPI flash becomes useful for logging node measurements.

Step 3 — Sniffing the Mesh

For debugging, the thread-sniffer/ guide in the repository configures an MDK (or the USB Dongle, sold for this purpose) as an 802.15.4 sniffer injecting data into Wireshark — essential for viewing Thread attachments and mle/CoAP frames.

Antenna and Range

The board features an on-chip antenna and a selectable U.FL connector for an external antenna — useful for range measurements. The exact selection procedure is poorly documented (issue #51): test first with the on-chip antenna, then validate the U.FL path on your build.

Pitfalls

Other tutorials for this board

Code examples for this board

← Back to the board 🛠 All tutorials