🛠 Construire un réseau Thread avec OpenThread
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:
- Recommended path: Use the OpenThread samples from the Zephyr/NCS ecosystem. The
nrf52840_mdkboard is an upstream Zephyr board — you build RCP and CLI for thenrf52840_mdktarget. - Historical path: Use
openthread/ot-nrf528xxfor official nRF52840 firmwares, adapting the target for the MakerDiary board.
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
- Do not mix RCP/FTD firmware versions: use the same OpenThread version on both sides.
- Older example releases reference
examples/nrf5-sdk/openthread-*paths that no longer exist: aim for upstream sources.