1) Einführung
OpenThread (OT) von Google ist eine Open-Source-Implementierung von Thread. Google hat OpenThread veröffentlicht, um die in Google Nest-Produkten verwendete Netzwerktechnologie für Entwickler verfügbar zu machen, um die Entwicklung von Produkten für Smart Homes und Geschäftsgebäude zu beschleunigen. Mit einer schmalen Plattformabstraktionsschicht und einem kleinen Arbeitsspeicherbedarf ist OpenThread sehr tragbar. Es unterstützt sowohl Designs-on-Chip- (SoC) als auch Netzwerk-Co-Prozessor-Designs (NCP).
Die Thread-Spezifikation definiert ein IPv6-basiertes zuverlässiges, sicheres und energiesparendes Kommunikationsprotokoll für drahtlose Geräte zwischen Geräten für private und gewerbliche Gebäudeanwendungen.
Silicon Labs hat OpenThread erweitert, um mit Silicon Labs Hardware zu funktionieren. Dieser Quellcode ist auf GitHub verfügbar und auch als Software Development Kit (SDK), das mit Simplicity Studio 5 (SSv5) installiert wurde. Das SDK enthält einen vollständig getesteten Snapshot des GitHub-Quellcodes. Es unterstützt im Vergleich zur GitHub-Version eine größere Auswahl an Hardware und enthält Dokumentations- und Beispielanwendungen, die auf GitHub nicht verfügbar sind.
In diesem Handbuch wird beschrieben, wie Sie OpenThread-Anwendungen mit dem Silicon Labs OpenThread SDK und Simplicity Studio 5 entwickeln können. Die Abbildung unten zeigt die Boards (BRDs) und die mit einem OT-Border-Router (OTBR) und zwei im Codelab verwendeten Thread-Geräte eingerichtete Hardware.
Lerninhalte
- Ein OpenThread-Projekt mit Silicon Labs Simplicity erstellen
- Anleitung zum Erstellen und Flashen von OpenThread CLI-Binärdateien mit Funkschnittstellen von Silicon Labs
- Anleitung zum Einrichten eines Raspberry Pi 3B+ oder höher als OpenThread-Border-Router (OTBR) mit Docker
- So erstellen Sie ein Thread-Netzwerk im OTBR.
- Geräte werden außer Betrieb genommen, wenn sie ein Thread-Netzwerk nutzen.
- So prüfen Sie die Thread-Kommunikation zwischen den Knoten mit dem Ping-Befehl.
2. Voraussetzungen
Hardware:
- 3 EFR32MGxx Funkplatinen – eine beliebige Kombination dieser Geräte kann verwendet werden. In diesem Codelab wird ein BRD4166A als RCP und zwei BRD4168As als Full-Thread-Geräte verwendet.
- EFR32MG12 (BRD4161A, BRD4166A, BRD4170A, BRD4304A)
- EFR32MG13 (BRD4168A)
- EFR32MG21 (BRD4180A, BRD4180B,
- BRD4001A: Kabellose Starter-Hauptplatinen (WSTK), um die Radioplatinen zu hosten. Außer BRD4166A benötigen alle Radioplatinen jeweils eine Auslöser-Hauptplatine. Mini-USB-Kabel zum Anschluss und zur Stromversorgung der Hauptplatinen oder Micro-USB-Kabel für BRD4166A.
- Raspberry Pi 3B+ oder höher mit Raspbian Stretch Lite OS-Image oder Raspbian Stretch with Desktop, das über Ethernet mit dem Internet verbunden ist Wir konfigurieren dies als OT-Border-Router.
- Windows-, Linux- oder Mac-Hostsystem mit mindestens zwei USB-Ports und Internetverbindung. Prüfen Sie die Hardware- und Betriebssystemanforderungen unter SSv5.
- Mindestens ein Ethernetkabel, um den Raspberry Pi mit dem Internet zu verbinden. Die WSTKs unterstützen auch die Fehlerbehebung und das Flashen über IP. Optional können zusätzliche Ethernetkabel verwendet werden, um das WSTK über einen Ethernet-Switch mit deinem Hostsystem zu verbinden.
Software:
- Simplicity Studio v5 wurde auf dem Windows-/Linux-/Mac-Hostsystem installiert und aktualisiert mit
- GNU-ARM-Toolchain
- Gecko SDK Suite 3.2.0 oder höher und Silicon Labs OpenThread SDK.
3. Hardwareeinrichtung
Dieses Codelab wurde mit erstellt
- EFR32MG12 BRD4166A Thunderboard Sense 2 wie links abgebildet.
- Zwei EFR32MG13 BRD4168A, wie in der Abbildung rechts zu sehen.
- Simplicity Studio v5 auf macOS Catalina 10.15.7 mit
- Gecko SDK 3.2.0
- GNU ARM v7.2.1
Schließen Sie jedes Hauptpaket für das Wireless Starter Kit über den USB-Anschluss an den Hostcomputer an, wie in der folgenden Abbildung dargestellt. Diese Verbindungen ermöglichen die Programmgestaltung und Netzwerkanalyse der RCP- und Endgeräte. Wir werden zuerst den Hostcomputer verwenden, um den BRD4166A mit der ot-rcp-Firmware zu programmieren und ihn schließlich mit dem Raspberry Pi zu verbinden. Optional können Endgeräte über einen Ethernet-Switch mit dem Hostcomputer verbunden werden. Die Starterkits unterstützen auch Programmier- und Netzwerkanalysen über IPv4.
4. Firmware einrichten
Es gibt zwei Möglichkeiten: In beiden Optionen können Sie die für dieses Codelab erforderlichen Firmware blinken lassen.
- Projekte: (Empfohlen) Erstellen Sie eine Beispielanwendung und erstellen Sie sie mit Flash. Mit dieser Option können Sie die Anwendung im Projekt anpassen.
- Demos: (Optional) Sie können die vordefinierten Demos direkt auf der Radioplatine für eine der Beispielanwendungen blinken. Wir empfehlen Nutzern, die Einrichtung der Demos-Firmware als optionales Training auszuprobieren. Weitere Informationen finden Sie im Abschnitt „Optionale Firmwareeinrichtung – Demos“ am Ende dieses Codelabs.
Für dieses Codelab verwenden wir die projektbasierte Methode.
Projekte anhand von Beispielen erstellen
Wir erstellen zwei Projekte. Das Projekt ot-rcp
für BRD4166A und das Projekt ot-cli-ftd
für die beiden BRD4168A-Modelle. Bitte führen Sie die folgenden Schritte aus und wählen Sie den entsprechenden Antrag für Ihr Board aus.
- Öffnen Sie in Studio das Menü Datei und wählen Sie Neu > Silicon Labs-Projektassistent aus. Das Dialogfeld „Ziel“, „SDK“ und „Toolchain-Auswahl“ wird geöffnet. Ändern Sie nicht die von OpenThread unterstützte standardmäßige Simplicity IDE / GNU-Toolchain. Klicken Sie auf „Weiter“.
- Zielplatinen: Zeigt das ausgewählte Radiobrett (BRD4168A) zusammen mit dem Hauptbrett (BRD4001A) an
- Zielgerät: In diesem Feld wird der Mikrocontroller-Chip (MCU) angezeigt. Der BRD4168A verfügt über eine EFR32MG13 MCU.
- SDK: Hier können Sie die SDK-Version von OT auswählen, mit der Sie zusammenarbeiten. Zu den Suite-Informationen gehören das SDK-Tag und der Silicon Labs-Build von OpenThread, z. B.
Platform 4.0.1.0
undOpenThread 2.0.1.0 (GitHub-55af6ce2c)
. - IDE/ Toolchain: Die Toolchain, die zum Kompilieren des OT-Projekts verwendet wird. Wir verwenden GNU ARM.
- Das Dialogfeld „Beispiel für die Projektauswahl“ wird geöffnet. Eine Liste mit Beispielprojekten wird angezeigt. Verwenden Sie den Technologietyp Thread und die Keyword-Filter, um nach einem bestimmten Beispiel zu suchen. Notieren Sie sich die Gecko SDK Suite-Versionsnummer. Sie benötigen dieses Versions-Tag, wenn Sie den Raspberry Pi als Border-Router einrichten. Wählen Sie ot-cli-ftd aus und klicken Sie auf WEITER.
- Das Dialogfeld „Projektkonfiguration“ wird geöffnet. Hier können Sie das Projekt umbenennen, den standardmäßigen Speicherort der Projektdatei ändern und festlegen, ob Sie Projektdateien verknüpfen oder kopieren möchten. Verknüpfte Projektdateien verweisen auf das SDK und alle Änderungen, die Sie am SDK vornehmen und für zukünftige Projekte verwenden. Durch das Kopieren von Projektquellen können Sie eine lokale Projektkopie bearbeiten, damit die SDK-Dateien unverändert bleiben. SDK verknüpfen und Projektquellen kopieren ist die Standardeinstellung und wird empfohlen. Klicken Sie auf FERTIGSTELLEN.
- Die Simplicity IDE Perspective wird geöffnet. Der Project Configurator wird auf dem Tab ÜBERSICHT geöffnet.
Das Projekt wird auf dem Tab Softwarekomponenten konfiguriert, indem Komponenten installiert und deinstalliert sowie installierte Komponenten konfiguriert werden. Installierte Komponenten werden geprüft. Klicken Sie auf Installierte Komponenten, um eine gefilterte Liste der Komponenten aufzurufen, die von der Beispielanwendung installiert wurden. Alle Änderungen werden automatisch gespeichert und die Projektdateien werden automatisch generiert. Der Fortschritt wird unten rechts in der Perspektive der Simplicity IDE angezeigt.
In dieser Demo verwenden wir die Standardkonfiguration der Beispielanwendungen. Wiederholen Sie die obigen Schritte, um das Projekt ot-rcp
für Ihr anderes Board zu erstellen.
Projekte erstellen und blinken
Erstellen Sie Projekte für ot-rcp
und ot-cli-ftd
und erstellen Sie diese.
- Klicken Sie nach der Konfiguration des Projekts in der oberen Symbolleiste auf die Build-Steuerung (Hammer-Symbol). Alternativ können Sie mit der rechten Maustaste auf das Projekt klicken und auf „Build-Projekt“ klicken.
- Der Fortschritt wird in der Console und eine Fortschrittsanzeige rechts unten angezeigt. In diesem Ausgabefenster werden auch Fehler oder Warnungen für Ihr Projekt angezeigt.
- Die Binärdateien werden nach einem erfolgreichen Projektaufbau generiert. Sie können das binäre Image in der Projekt-Explorer-Ansicht blinken lassen. Suchen Sie im Compiler-Unterverzeichnis nach der Datei „.bin“, „.hex“ oder „.s37“. Klicke mit der rechten Maustaste auf die Datei und wähle Flash-zu-Gerät aus. Falls Sie mehrere Geräte angeschlossen haben und dann ein Gerät auswählen, klicken Sie auf OK. Das Flash-Programmiertool wird geöffnet und der Dateipfad wird ausgefüllt. Klicke auf PROGRAMMEN.
5. Zusammenfassung der Firmwareeinrichtung
Jetzt sollten Sie die entsprechende Firmware auf den Funkplatinen erstellt, zusammengestellt und geblitzt haben. Sobald ot-rcp
auf BRD4166A gelinkt wurde, trennen Sie das Gerät vom Hostsystem und verbinden Sie dieses Board mit dem Raspberry Pi.
Nachdem Sie diesen Abschnitt abgeschlossen haben, sieht Ihre Thread-Netzwerkhardware so aus.
6. Serielle Konsole für Geräte einrichten
Klicken Sie zum Starten der Console-Oberfläche in der Simplicity IDE-Perspektive im Fenster „Device View / Debug Adapters“ mit der rechten Maustaste auf Ihr J-Link-Gerät. Wählen Sie Launch Console (Konsole starten) aus. Wenn Sie in der Console eine Aufforderung erhalten möchten, wählen Sie den Tab Serial 1 aus und drücken Sie die Eingabetaste. Prüfen Sie den Status des FTD-Knotens.
Du wirst feststellen, dass wir noch keine Konsole für ot-rcp
haben. Im nächsten Schritt konfigurieren wir den Raspberry Pi als OT-Border-Router und richten die Konsole für ot-rcp
ein.
7. Raspberry Pi als Border-Router einrichten
Silicon Labs empfiehlt, den Docker-Container des Unternehmens mit OTBR bereitzustellen. Das Ausführen des OTBR in einem Container ermöglicht das Erstellen von einfach bereitstellbaren Artefakten sowie das schnelle Entwickeln von Prototypen und Tests.
Silicon Labs OTBR-Images werden auf siliconlabsinc DockerHub gehostet, mit Tags. Jedes Tag entspricht einer GSDK-Version:
https://hub.docker.com/r/siliconlabsinc/openthread-Border-router/tags
Docker-Container müssen mit RCPs verwendet werden, die mit Simplicity Studio 5 für einen bestimmten Release erstellt wurden. Prüfen Sie, ob eine Container-Tag-Version mit der GSDK-Version übereinstimmt, mit der Sie testen. Wenn Ihre GDSK-Version beispielsweise Gecko SDK Suite v4.0.1 (140)
war, als Sie ot-rcp
im Fenster Beispielprojektauswahl ausgewählt haben, verwenden Sie das Image siliconlabsinc/openthread-border-router:gsdk-4.0.1
.
Raspberry Pi einrichten
- Auf Ihrer SD-Karte muss das Raspbian Stretch Lite OS-Image oder Raspbian Stretch with Desktop blinken.
- Sie können entweder eine SSH-Verbindung zum Raspberry Pi herstellen oder direkt mit dem Raspbian Desktop arbeiten. Öffnen Sie ein Terminalfenster.
- Achten Sie darauf, Ihre lokalen Repositories und den Paketmanager (apt-get update und apt-get upgrade vor der Installation von Docker) zu aktualisieren.
Docker-Image installieren
- Installieren Sie Docker mit dem folgenden Befehl auf Ihren RPi.
curl -sSL https://get.docker.com | sh
- Anschließend können Sie die Docker-Nutzereinstellungen so konfigurieren, dass vor jedem Befehl nicht „sudo“ erforderlich ist. Neustart erforderlich.
sudo usermod -aG docker $USER
- Führen Sie die folgenden Befehle aus, um die Container zu installieren. Sie können mit Ihrem RCP nur ein Border Router-Container gleichzeitig ausführen. Prüfen Sie außerdem, ob die Simplicity Studio GSDK-Version mit dem richtigen Docker-Image übereinstimmt. Beispiel:
gsdk-4.0.1
:docker pull siliconlabsinc/openthread-border-router:gsdk-4.0.1
Docker konfigurieren und ausführen
- Sie müssen den TTY-Port konfigurieren, den Sie für den OTBR verwenden möchten, um Ihr RCP beim Start zu verbinden. Suchen Sie nach dem TTY-Port Ihres RCP-Geräts. Der einfachste Weg, das zu tun, besteht darin, nach einem
/tty/dev
-Eintrag zu suchen, sobald der RCP verbunden ist. Sie sollte normalerweise entweder/dev/ttyUSB0
oder/dev/ttyACM0
lauten. - Führen Sie Ihre Docker-Installation mit dem folgenden Befehl aus. Ersetzen Sie den Namen des Docker-Images durch die entsprechende GSDK-Version. Beispiel:
gsdk-4.0.1
:docker run -d --name "otbr" \ --sysctl "net.ipv6.conf.all.disable_ipv6=0 net.ipv4.conf.all.forwarding=1 net.ipv6.conf.all.forwarding=1" \ -p 8080:80 --dns=127.0.0.1 -it \ --volume /dev/ttyACM0:/dev/ttyACM0 \ --privileged siliconlabsinc/openthread-border-router:gsdk-4.0.1 \ --radio-url spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate=460800 \ --backbone-interface eth0
-d
sorgt dafür, dass der Container im getrennten Modus ausgeführt wird.- Mit dem Befehl
docker logs
können Sie die ausgeführten Logs für den Container jederzeit aufrufen. --name
bleibt fest, bis der Docker-Container ordnungsgemäß geschlossen (oder entfernt) wird.- Port 8080 gibt den Port des Webservers an, auf dem die Webseite für die Border Router-Verwaltung gehostet wird.
?uart-baudrate=460800
ist in den Radio-URL-Optionen erforderlich, um Probleme mit der Fragmentierung / Wiederzusammensetzung über UART und kostspielige Vorgänge wie DTLS mit langen IPv6-Paketen zu umgehen.
Mit dem RCP-Knoten interagieren
Sobald das Docker ausgeführt wird, können Sie mit diesem Befehl über eine interaktive Shell mit dem RCP-Knoten kommunizieren. Prüfen Sie den Status des RCP-Knotens.
$ docker exec -ti otbr sh -c "sudo ot-ctl" > state disabled Done
Sie können eine Liste der ausgeführten Container-IDs abrufen
$ docker ps -aq
Sie können das Fenster prüfen, in dem der OTBR-Docker-Container zum Ausführen der Logausgabe des Border-Routers ausgeführt wird, oder dem Containerprotokoll folgen:
$ docker logs [container-id] -f
Optional können Sie das Image stoppen, entfernen oder beenden, wenn der Docker-Container ordnungsgemäß geladen wird.
$ docker stop otbr
$ docker rm otbr
$ docker kill otbr
Optional: Beenden Sie die Shell mit CNTL + C.
Sie sollten jetzt drei Konsolen haben.
- Zwei
ot-cli-ftd
-Konsolen in Simplicity Studio, die als Full-Thread-Geräte eingerichtet sind. - Eine interaktive
ot-ctl
-Schale auf dem Raspberry Pi, der als OT-Border-Router eingerichtet ist
Jetzt sind wir bereit für ein Thread-Netzwerk.
8. Thread-Netzwerk erstellen
RCP einrichten
Zum Erstellen des Netzwerks beginnen wir mit der ot-ctl
-Shell auf dem OTBR, das für die Kommunikation mit dem RCP-Knoten verwendet wird. Geben Sie die folgenden Befehle in der folgenden Reihenfolge ein:
Index | Befehl | Befehlsbeschreibung | Erwartete Antwort | ||
1 |
| Erstellen Sie eine neue Netzwerkkonfiguration. | Fertig | ||
2 |
| Commit für das neue Dataset auf das Active Operational Dataset durchführen. | Fertig | ||
3 |
| Thread-Schnittstelle aktivieren. | Fertig | ||
4 |
| Thread-Protokollvorgang aktivieren und anhängen. | Fertig | ||
Warten Sie, bis die Thread-Schnittstelle aktiv ist. | |||||
5 |
| Prüfen Sie den Gerätestatus. Es sollte die beste Person sein. | Führend | ||
6 |
| Netzwerkkonfiguration ansehen. |
Wir verwenden die Kanalnummer und den Netzwerkschlüssel für ot-cli-ftd
, um die beiden FTDs mit diesem Thread-Netzwerk zu verbinden.
Einrichtung von FTD zu unserem Thread-Netzwerk (außerhalb des Bandes)
Bei der Out-of-Band-Methode kennen wir alle Sicherheitsinformationen und fügen den Knoten manuell hinzu. Fügen Sie in den Simplicity-Konsolen mit den folgenden Befehlen beide FTDs zu unserem Netzwerk hinzu, die in der folgenden Reihenfolge beschrieben werden.
Index | Befehl | Befehlsbeschreibung | Erwartete Antwort | ||
1 |
| Legen Sie den von OTBR verwendeten Kanal fest. | Fertig | ||
2 |
| Nur ein Netzwerkschlüssel ist erforderlich, damit ein Gerät an ein Thread-Netzwerk angehängt werden kann. | Fertig | ||
3 |
| Commit für das neue Dataset auf das Active Operational Dataset durchführen. | Fertig | ||
4 |
| Thread-Schnittstelle aktivieren. | Fertig | ||
5 |
| Thread-Protokollvorgang aktivieren und anhängen. | Fertig | ||
Warten Sie 20 Sekunden, während das Gerät sich anmeldet und sich selbst konfiguriert. | |||||
6 |
| Netzwerkkonfiguration ansehen. | Kind |
Kommunikation zwischen Thread-Geräten
Wir verwenden den Befehl ping
, um zu prüfen, ob Geräte miteinander kommunizieren können. Für den Ping-Befehl benötigen wir die IPv6-Adressen der Geräte. Diese können mit dem Befehl ipaddr
abgerufen werden.
> ipaddr fd5c:c6b:3a17:40b9:0:ff:fe00:fc00 # Leader Anycast Locator (ALOC) fd5c:c6b:3a17:40b9:0:ff:fe00:1800 # Routing Locator (RLOC) fd5c:c6b:3a17:40b9:84e2:bae8:bd5b:fa03 # Mesh-Local EID (ML-EID) fe80:0:0:0:c449:ca4a:101f:5d16 # Link-Local Address (LLA)
Beide FTDs kontaktieren den OTBR über die RLOC-Adresse des OTBR.
> ping fd5c:c6b:3a17:40b9:0:ff:fe00:1800 Done > > 16 bytes from fd5c:c6b:3a17:40b9:0:ff:fe00:1800: icmp_seq=3 hlim=64 time=30ms 16 bytes from fd5c:c6b:3a17:40b9:0:ff:fe00:1800: icmp_seq=3 hlim=64 time=52ms
Die Antwort gibt an, dass die Nutzlast empfangen wurde und dass die Kommunikation erfolgreich ist. Wiederholen Sie den Vorgang, um FTDs über den OTBR zu kontaktieren.
9. Glückwunsch
Du hast ein Thread-Netzwerk erstellt.
Sie wissen jetzt:
- Ein OpenThread-Projekt mit Silicon Labs Simplicity erstellen
- Anleitung zum Erstellen und Flashen von OpenThread CLI-Binärdateien mit Funkschnittstellen von Silicon Labs
- Anleitung zum Einrichten eines Raspberry Pi 3B+ oder höher als OpenThread-Border-Router (OTBR) mit Docker
- So erstellen Sie ein Thread-Netzwerk im OTBR.
- Geräte werden außer Betrieb genommen, wenn sie ein Thread-Netzwerk nutzen.
- So prüfen Sie die Thread-Kommunikation zwischen den Knoten mit dem Ping-Befehl.
Weitere Informationen
Auf openthread.io und GitHub finden Sie eine Vielzahl von OpenThread-Ressourcen, darunter:
- Unterstützte Plattformen – Hier finden Sie alle Plattformen, die OpenThread unterstützen.
- OpenThread: weitere Informationen zum Erstellen und Konfigurieren von OpenThread
- Thread Primer: deckt alle Thread-Konzepte in diesem Codelab ab
- Silicon Labs OpenThread-Training: Eine Einführung zu OpenThread, in dem die Inbetriebnahme und der Border-Router behandelt werden, sowie eine praxisorientierte Übung, bei der ein OpenThread-Netzwerk erstellt wird.
- QSG170: Silicon Labs OpenThread Quick Start Guide – Details zum Einstieg in die Thread-Entwicklung von Silicon Labs
- AN1256: Silicon Labs RCP mit dem OpenThread-Border-Router verwenden: Erstellungs- und Installationsanleitung für den Raspberry Pi Border Router
10. Optionale Firmware einrichten – Demos
Demos sind vordefinierte Firmware-Images, die auf ein kompatibles Gerät heruntergeladen werden können. Am schnellsten können Sie in Simplicity Studio eine Demo für Ihr Teil verwenden, indem Sie in der Ansicht „Fehlerbehebungsadapter“ auf Ihren Teil klicken und dann in der Launcher-Perspektive den Tab EXAMPLE PROJECTS & DEMOS aufrufen. Deaktivieren Sie den Filter „Beispielprojekte“ und klicken Sie unter „Technologie“ auf das Kästchen „Thread“.
Mit dem OpenThread SDK bereitgestellte vorab kompilierte Demo-Images sind mit den folgenden Boards kompatibel:
- BRD4161
- BRD4.166a
- BRD4.168a
- BRD4180
- BRD4304
Diese Liste kann in künftigen SDK-Releases aktualisiert werden und enthält dann weitere Radioplatinen. Eine vollständige Liste der unterstützten Teile finden Sie in den Versionshinweisen zum Silicon Labs OpenThread SDK unter Dokumentation.
Flashen Sie die folgenden Demos auf den jeweiligen Boards. Wählen Sie zum Flashen Ihr Board links unter „Adapter für die Fehlerbehebung“ aus und klicken Sie für die entsprechenden Beispielanwendungen auf „AUSFÜHREN“. In einem Pop-up-Fenster wird der Status des Blitzes angezeigt.
- BRD4166A: ot-rcp – Dieses Gerät fungiert als Funk-Co-Prozessor für den OT-Border-Router. Wir werden dieses Gerät verwenden, um ein Thread-Netzwerk zu erstellen und die anderen beiden Geräte im Thread-Netzwerk einrichten. Dieses Gerät ist ein Border-Router und fungiert gleichzeitig als Gateway für die Geräte im Thread-Netzwerk, um über das Internet zu kommunizieren.
- Zwei BRD4168A: ot-cli-ftd: Diese beiden Geräte fungieren als Geräte mit Full-Thread-Modus. Sie treten in das von OTBR erstellte Thread-Netzwerk ein.