はじめに
WB55RGをMatterデバイスとして動かしてみます。
前回の記事はこちら。
X-CUBE-MATTERにはSTM32WB5MM-DK向けMatterデバイスのサンプルアプリケーション(Lighting-AppとWindow-App)のバイナリファイルが含まれていますが、WB55RG向けは含まれていません。
WB55RGで動かす場合、stm32wb-matter-device-over-threadのGitHubからソースコードを取得してビルドする必要があります。
ビルドツール
STM32用統合開発環境(STM32CubeIDE)をインストールします。
macOS版でもビルドできますが、Windows版の利用をおすすめします。
(ソースコードに含まれる.projectファイルからSTM32CubeIDEを起動できます。)
ビルド手順
Windows版
STM32CubeIDEを起動し、「Import projects」→「Import Projects from File System or Archive」を選択し、GitHubからダウンロードしたソースコードのフォルダを指定します。
フォルダに含まれる.projectファイルを認識し、登録されます。
「Project」→「Build All」を選択します。
WB55RGのLighting-AppのSTM32Cubeフォルダを指定して、個別にプロジェクトを登録することもできます。
ビルドでエラーが発生します。
原因を調べると、「caddt_t is an obsolete typedef」とのことで、ワークアラウンドが示されていました。
sysmem.cファイルに以下の1行を追加します。
#include <sys/types.h>
再度ビルドを実行すると問題なく完了し、Lighting-App.bin、または、Window-App.binが出力されます。
バイナリファイルはこちらに置きました。
macOS版 (2024年6月2日追記)
Windows版と同じ手順でビルドできました。
STM32CubeIDEを起動し、「Import projects」→「Import Projects from File System or Archive」を選択し、GitHubからダウンロードしたソースコードのフォルダを指定します。
ビルド対象のプロジェクトを選択し、メニューから「Project」→「Build Project」を選択します。
ビルドでエラーが発生します。(Windows版と同様)
sysmem.cファイルに以下の1行を追加し、再度ビルドを実行すると問題なく完了します。
#include <sys/types.h>
「Debug」フォルダにLighting-App.bin、または、Window-App.binが出力されます。
参考情報
Windows版も同様ですが、Progress Informationを確認すると、C/C++ Indexerの処理が途中で止まり、CPUの高負荷状態が継続しますので、処理を中止してください。(プロジェクトのビルドは並行して実行できます)
STM32CubeProgrammerで書き込み
書き込み手順はこちらです。
Wireless Coprocessor Binaryとアプリケーションを書き込むアドレスはこちらです。
STM32CubeWB firmware release V1.17.0
Wireless Coprocessor Binary | STM32WB5xxG(1M) | Version |
---|---|---|
stm32wb5x_FUS_fw.bin | 0x080EC000 | V1.2.0 |
stm32wb5x_BLE_Thread_ForMatter_fw.bin | 0x08085000 | V1.1.1 |
Application Binary | STM32WB5xxG(1M) |
---|---|
Lighting-App.bin | 0x08000000 |
Window-App.bin | 0x08000000 |
動作確認
デバイスへの書き込みが終わると、シリアルコンソールにログメッセージが出力されます。
[M4 APPLICATION] Matter Over Thread Window-App starting...
[M4 APPLICATION] Init CHIP stack
CHIP:DL: BLEManagerImpl::Init() complete
[M4 APPLICATION] 1- Initialisation of BLE Stack...
[M4 APPLICATION] 2- Initialisation of OpenThread Stack. FW info :
[M4 APPLICATION] **********************************************************
[M4 APPLICATION] WIRELESS COPROCESSOR FW:
[M4 APPLICATION] VERSION ID = 1.1.1
[M4 APPLICATION] FW Type : Dynamic Concurrent Mode BLE/Thread
[M4 APPLICATION] **********************************************************
[0000000000] [PLATFORM] --> DebugLevel set to 1
[0000000000] [PLATFORM] IeeeEui64 = 0x0080e1fffebeccc2
[0000000000] [PLATFORM] ----> EUID64 = 0x0080e1fffebeccc2
[0000000001] [PLATFORM] [THREAD] Init_ThreadStack_Infrastructure
[0000000015] [PLATFORM] Short_Addr=FFFE
[0000000022] [PLATFORM] PANID=C14F
[0000000024] [REGION UNDEF] [I] Settings------: Read NetworkInfo {rloc:0x0803, extaddr:1264fd74d789a929, role:child, mode:0x0c, version:4, keyseq:0x0, ...
[0000000025] [REGION UNDEF] [I] Settings------: ... pid:0x7617402e, mlecntr:0x3eb, maccntr:0x54d93d9f, mliid:aa55283948705462}
[0000000026] [PLATFORM] Short_Addr=803
[0000000027] [REGION UNDEF] [I] Settings------: Read ParentInfo {extaddr:ce03351bf55a4748, version:4}
[0000000027] [PLATFORM] INIT Thread stack done
[M4 APPLICATION] Start init matter
CHIP:-: Current Software Version: 1.1
ログメッセージに含まれるQRコード表示用のURLへブラウザからアクセスすると、コミッショニング用のQRコードが表示されます。
Apple HOMEアプリでアクセサリを登録します。登録中(コミッショニング中)はLED1(青色)が点灯します。
アクセサリの登録は無事に完了しますが、残念ながら実際に操作することはできませんでした。
(応答なし〜アップデート中の動作を繰り返す)