...
Goal is to understand and bringup required platform for supporting various IoT protocols including, WiFi, thread & Bluetooth in RDK-B Bananapi R4 with silabs module
...
- Beta engineering release of 05 Feb 2025
Hardware used (as of Jan 2026 PoC, to be expanded with more devices, device types)
BoM:
- Banana Pi R4 with WiFi chipset (whole kit)
- SiLabs EFR32xG24 Explorer kit
...
- Matter/WiFi Mini smartplug (110vAC, US power) example, TP-link Tapo
- Thread Mini smartplug (110vAC, US power) example, Onvis Smartplug S4
- 2 x generic (110vAC, US power) generic LED “night lights” to be plugged into smartplugs
- Associated cabling/serial adapters
RDK image tool (easy way to Image the SD card for RDK-B) -> https://rdkcentral.com/download-instructions/?caller=broadband
Where to purchase SiLabs hardware
Highlevel block diagram of Thread & Bluetooth
| draw.io Diagram |
|---|
| border | true |
|---|
| |
|---|
| diagramName | otbr |
|---|
| simpleViewer | false |
|---|
| width | |
|---|
| links | auto |
|---|
| tbstyle | top |
|---|
| lbox | true |
|---|
| diagramWidth | 851 |
|---|
| height |
|---|
|
3905
Kernel side changes for Thread
CONFIG_USB_ACM=y
CONFIG_TUN=y
drivers/net/tap.c
- Description - TUN generic support
CONFIG_IEEE802154=y
net/ieee802154
- Description - Generic IEEE802154
CONFIG_MAC802154=y
net/mac802154
- Description - Generic MAC layer for IEEE802154
| draw.io Diagram |
|---|
| border | true |
|---|
| |
|---|
| diagramName | kcmf |
|---|
| simpleViewer | false |
|---|
| width | |
|---|
| links | auto |
|---|
| tbstyle | top |
|---|
| lbox | true |
|---|
| diagramWidth | 930 |
|---|
| height | 350 |
|---|
| revision | 1 |
|---|
|
...
Runtime changes for Thread
- set
disable_encryption to true
- Remove ExecStartPre=/usr/bin/init-iot-radio.sh
- mkdir /nvram/icontrol/etc/thread
- update debug level to 7 from 5
...
- cpcd service should be up and running
- otbr-agent service should be up and running
- ot-ctl shoule be accessible and get state
| Code Block |
|---|
W:~# ot-ctl
> state
disabled
Done
> |
Firmware upgrade of BRD module
- Use simplicity studio
- Use commander tool
- Installed software in ubuntu and connected module with USB Type C
- Get Approval from Thomas Lea to get access to the firmware - rcp-multi-all-4.4.5-2-brd2703a.hex
Documentation for thread
Key check points when we land in issues for thread
- Make sure we have wpan0 interface up
- brlan0 should be up and running
- wpan0 - who creates it ? - otbr-agent
- Initial OTBR-agent startup:
- OTBR-agent process starts
- At this point, no wpan0 interface exists yet
- No socket exists yet at
/run/openthread-wpan0.sock
- OTBR-agent creates socket:
- Creates Unix domain socket at
/run/openthread-wpan0.sock - This socket will be used for IPC/control operations
- OTBR-agent creates network interface:
- Creates the
wpan0 network interface - Takes ownership of managing this interface
- Runtime dependencies:
- The
wpan0 interface is ONLY available while OTBR-agent is running - If OTBR-agent stops, the wpan0 interface goes away
- Other services/processes should not expect wpan0 to exist without OTBR-agent running
- Communication flow:
- Other processes can communicate with OTBR-agent through the socket at
/run/openthread-wpan0.sock - Network traffic goes through the wpan0 interface managed by OTBR-agent
...