🛠 Réseau Thread / 802.15.4 avec OpenThread sur le nRF52833
La pile logicielle en 2026
Le nRF52833 est un support reconnu d'OpenThread : le dépôt officiel openthread/ot-nrf528xx contient une cible nrf52833 dédiée, et le nRF Connect SDK intègre le port OpenThread pour Thread/Zigbee. Avertissement important hérité de l'écosystème Nordic : le vieux nRF5 SDK for Thread and Zigbee (v3.2.0, cité par le User Guide du kit) est en maintenance uniquement — le README ot-nrf528xx est explicite, les nouveaux designs doivent passer par le NCS. Oubliez donc les procédures examples/nrf5-sdk/openthread-* des vieux tutos.
Architecture du banc
- Border router : OTBR (OpenThread Border Router) sur un Raspberry Pi, avec une radio RCP — un second kit ou un dongle Nordic branché en USB/UART.
- Nœud Thread : votre nRF52833-DK en FTD (Full Thread Device) ou MTD selon l'autonomie visée.
- Le radio du nRF52833 fait l'802.15.4 natif (même puce que BLE/mesh, multiprotocole), avec +8 dBm en émission — portée très correcte en intérieur.
Étape 1 — Firmware du nœud
Voie recommandée : les samples OpenThread de l'arbre NCS/Zephyr, la carte nrf52833dk/nrf52833 étant supportée des deux côtés (Zephyr amont la liste « Maintained »). Principe :
# depuis un workspace NCS à jour — sample shell OT
west build -b nrf52833dk/nrf52833 <sample-openthread-shell> && west flash
La console du nœud passe par le port COM virtuel du J-Link OB (pensez à DTR). La voie historique ot-nrf528xx fournit les firmwares CLI RCP/FTD officiels pour nRF52833 ; gardez la même version de pile du côté border router et du nœud — mélanger les âges est le premier pourvoyeur de nœuds qui ne s'attachent pas.
Étape 2 — Former le réseau
Côté border router (OTBR sur le Pi, via wpanctl) :
wpanctl
wpanctl> thread start
wpanctl> dataset active -x # récupérer le network dataset (TLV complet)
Côté nœud (shell OpenThread sur le DK) :
> dataset networkkey <clé> # ou dataset complet
> ifconfig up
> thread start
> state # child / router / leader
> ipaddr
Le nœud obtient une adresse IPv6 ULA ; ping6 depuis le Pi valide le maillage bout en bout. C'est là que les 128 Ko de RAM du nRF52833 (le double du nRF52832) deviennent confortables pour un nœud capteur + buffers.
Étape 3 — Déboguer le mesh
- Un troisième kit (ou dongle) en sniffer 802.15.4 injectant dans Wireshark : indispensable pour voir les attachements, trames MLE et CoAP.
- Le connecteur RF conduit du kit (voir le tuto mesures RF) permet de caractériser la puissance réelle de chaque nœud sans antenne.
- Les LED du kit (P0.13-P0.16) se prêtent bien aux indicateurs d'état fil/leader.
Pièges spécifiques
- Quartz 32,768 kHz : le radio Thread est exigeant sur l'horloge ; le kit a son quartz 32,768 kHz monté (P0.00/P0.01 réservés à X2 par défaut) — sur votre propre carte, ne volez pas ces broches.
- Errata silicium : les anomalies documentées (voir le tuto RF/errata) incluent des valeurs RTC invalides en Rev 2 — les workarounds sont appliqués par NCS/Zephyr, mais gardez la révision de puce en tête pour du hardware maison.
- Ne pas confondre les rôles : RCP = radio pilotée par le Pi ; FTD/MTD = nœud autonome Thread.
Autres tutoriels pour cette carte
- 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