LoginSignup
0
0

ST Nucleo WB55RGをOpenThread RCPとして動かしてみた

Posted at

はじめに

WB55RGをMatterデバイスとして動かす前にOTBR(OpenThread border router)のRCP(Radio Co-Processor)として動かしてみます。

STM32CubeProgrammer の入手

サンプルプログラムをデバイスへ書き込むために STM32CubeProgrammer を使用します。
こちらから入手してインストールします。

サンプルプログラム (Thread_RCP) の入手

サンプルプログラムはこちらから入手します。

  • どちらのサンプルプログラムも動作しました
  • Wireless Coprocessor Binaryを書き込むアドレスが一部異なるので注意

STM32CubeWB v1.18.0, CSA Matter SDK V1.1, OpenThread 1.3

Wireless Coprocessor Binary STM32WB5xxG(1M) Version
stm32wb5x_FUS_fw.bin 0x080EC000 V1.2.0
stm32wb5x_Thread_RCP_fw.bin 0x080DE000 V1.18.0
Application Binary STM32WB5xxG(1M)
Thread_RCP.bin 0x08000000

STM32CubeWB firmware release V1.17.0

Wireless Coprocessor Binary STM32WB5xxG(1M) Version
stm32wb5x_FUS_fw.bin 0x080EC000 V1.2.0
stm32wb5x_Thread_RCP_fw.bin 0x080CF000 V1.0.0
Application Binary STM32WB5xxG(1M)
Thread_RCP.bin 0x08000000

サンプルプログラムをデバイスへ書き込む

STM32CubeProgrammerを起動してPC(macOS)とデバイスをUSB Micro-Bケーブルで接続します。
デバイス側はST-LINKポートを使用します。

「connect」を押します。

1.jpg

Wireless Coprocessor Binaryは「Firmware Upgrade Services」メニューを使用します。
「File path」でstm32wb5x_FUS_fw.binファイルを指定し、「Start address」に書き込みアドレスを設定します。
「Firmware Upgrade」を押します。

2_1.jpg

「File path」でstm32wb5x_Thread_RCP_fw.binファイルを指定し、「Start address」に書き込みアドレスを設定します。
「First install」にチェックを入れます。
「Firmware Upgrade」を押します。

2_2.jpg

Application Binaryは「Erace & Programming」メニューを使用します。

「File path」でThread_RCP.binファイルを指定し、「Start address」に書き込みアドレスを設定します。
「Start Programming」を押します。

3_1.jpg

Border Router (Raspberry Pi)

ラズパイへボーダールーターのソフトウェアをインストールする手順はこちらを参照します。

Raspberry Pi と WB55RB との接続

USB-UART変換ボード(赤い基板)とRaspberry PiをUSBケーブルで接続します。
USB-UART変換ボード(赤い基板)とデバイス(WB55RG)をジャンパーケーブルで接続します。

Connectivity_STM32WB_RCP_hardware_connection.png

IMG_6036.jpg

Raspberry Piの設定変更

nRF52840 Dongleデバイスは/dev/ttyACM0として認識されましたが、USB-UART変換ボード(赤い基板)は/dev/ttyUSB0として認識されるため、otbr-agentの設定を一部変更します。

/etc/default/otbr-agent

# for nRF52840 Dongle
OTBR_AGENT_OPTS="-I wpan0 -B eth0 spinel+hdlc+uart:///dev/ttyACM0 trel://eth0"
 ↓
# for STM32 RCP via UART
OTBR_AGENT_OPTS="-I wpan0 -B eth0 spinel+hdlc+uart:///dev/ttyUSB0 trel://eth0"

otbr-agentを再起動します。

sudo service otbr-agent restart

10_2.jpg

ST-LINK側のシリアルコンソール出力

[0000000000] [PLATFORM]   --> DebugLevel set to 1 
[0000000000] [PLATFORM]   IeeeEui64 = 0x0080e1fffebeccc2
[0000000001] [PLATFORM]   ----> EUID64 = 0x0080e1fffebeccc2
[0000000001] [PLATFORM]   [THREAD] Init_ThreadStack_Infrastructure
[0000001678] [PLATFORM]   EnableSrcMatch=0
[0000001678] [PLATFORM]   PANID=FFFF
[0000001678] [PLATFORM]   Short_Addr=FFFE
[0000001679] [PLATFORM]   PromiscuousMode=0
[0000001822] [PLATFORM]   PANID=FFFF
[0000001838] [PLATFORM]   Short_Addr=0
[0000001902] [PLATFORM]   Short_Addr=FFFE
[0000001966] [PLATFORM]   PANID=1234
[0000001998] [PLATFORM]   Short_Addr=3400
                        [TX :x4b|00011000|..|0000]      6abe -> ffff    (15)
                        [TX :x4c|00011000|..|0000]      6abe -> ffff    (15)
                        [TX :x4d|00011000|..|0000]      6abe -> ffff    (15)
                        [TX :x4e|00011000|..|0000]      6abe -> ffff    (15)
                        [TX :x4f|00011000|..|0000]      6abe -> ffff    (15)
                        [TX :x50|00011000|..|0000]      6abe -> ffff    (15)
[0000027307] [PLATFORM]   Short_Addr=FFFE
                        [TX :x51|00011000|..|0000]      6abe -> ffff    (15)
                        [TX :x52|00011000|..|0000]      6abe -> ffff    (15)
                        [TX :x53|00011000|..|0000]      6abe -> ffff    (15)
                        [TX :x54|00011000|..|0000]      6abe -> ffff    (15)
                        [TX :x55|00011000|..|0000]      6abe -> ffff    (15)
                        [TX :x56|00011000|..|0000]      6abe -> ffff    (15)
[0000033958] [PLATFORM]   Short_Addr=3400
                        [TX :x57|00011000|..|0000]      6abe -> ffff    (15)
                        [TX :x58|00011000|..|0000]      6abe -> ffff    (15)
                        [TX :x59|00011000|..|0000]      6abe -> ffff    (15)
                        [TX :x5a|00011000|..|0000]      6abe -> ffff    (15)
...
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0