第1回では、SR250がUWB測距とUWBレーダーを1チップに統合したデバイスであること、そして2026年3月にマスマーケット向けにリリースされたことを紹介しました。
今回からは、いよいよ実際にボードを動かします。評価ボードを入手して動作確認まで一緒に進めていきましょう。
| 第1回 | UWBの基礎とSR250の概要 |
| 第2回(本記事) | SR250評価ボード (SR250UWBSHIELD) のセットアップ |
| 第3回 | UWB測距 (Ranging) を試してみる |
| 第4回 | UWBレーダー (Radar) を試してみる |
SR250を試す方法は大きく2通りあります。ビルド不要のPnP (Plug-and-Play) ルートと、本格開発向けのZephyr SDKルート、どちらのルートかによって必要な準備が変わるため、先に決めておくとスムーズです。どちらも!という方も大歓迎です。
Windows以外でも動作可能ですが、今回はWindows PCのコマンドプロンプトを使用します。
| ルート | こんな方に | 開発環境 |
| A. PnP | まず手軽に動かしてみたい! | Python + PySerial のみ |
| B. Zephyr SDK | 本格的に開発したい・BLEと組み合わせたい | Git・CMake・Python・Zephyr SDK |
UWB測距の場合は相手側のデバイスが必要となります。2セットご用意いただければ、SR250 UWB SHIELDボード同士での測距を行うことができます。UWBが搭載されたスマートフォンをお持ちであれば、1セットのみでスマートフォンと測距することも可能です。
SR250UWBSHIELD + FRDM-RW612の動作にはUSB-Cケーブルを2本接続します。それぞれの用途を確認しておきましょう。
| コネクタ | 用途 | 備考 |
| J10 (MCU-Link) | 電源供給・書き込み・デバッグ | 接続必須。これがないと電源が入らない |
| J8 (HS-USB) | シリアル通信 (Virtual COM Port) | COMポート確認時はJ8側のポート番号を使用 |
Windowsのデバイスマネージャーに2つのCOMポートが表示されますが、シリアル通信に使うのはJ8 (HS-USB) 側のCOMポートです。「USB Serial Device (COMx)」と表示されます。
SR250-ARDシールドとFRDM-RW612はSPIで通信しますが、デフォルトのArduinoヘッダー配線ではSPIが正しく動作しません。以下の2通りのいずれかで対応してください。
方法1:半田付けによるリワーク(推奨)
はんだごてをお持ちの方はSPIラインのリワークを行うことをお勧めします。一度やってしまえばケーブルも不要でスッキリします。
リワーク手順の詳細はスタートガイドを参照してください:Trimension SR250用開発ボードのスタート・ガイド
方法2:ジャンパ線での代替接続(手軽に試したい方)
はんだ付けなしで試したい場合は、メスメス (Female-to-Female) のジャンパ線2本でFRDM-RW612のArduinoヘッダーピンを以下のように接続してください。
まず動作確認したい方はこちらの方法からどうぞ。
PnPアプリはビルド不要で、GitHubで提供されているFRDM-RW612用のUSBシリアル通信とSPI通信のプロトコル変換用FW (PnP用FW) を使ってSR250をPCから直接操作できます。PC側からPythonのUCIスクリプトを実行するだけで動作確認できます。
準備をするにあたって、2つの異なるFWが出てきます。最初に書き込むのは、RW612内で動作するプロトコル変換用のFWです。その後に、SR250のFW更新を行います。それぞれ書き込み方法が異なります (RW612はISPモード経由、SR250はPnP FW経由) ので、手順にご注意ください。
GitHubから必要なファイルを入手します。右上の "Code" のプルダウンメニューからZIPダウンロードが可能です。
GitHub: SR250 UWB Plug-and-Play Application
pip install pyserialStep 1: RW612 PnP用FWの書き込み
FRDM-RW612_PnP/program_FRDM-RW612.bat
エラーが出る場合の多くはISPモードで起動できていないことが原因です。2のスイッチ操作でISPモードに入りにくい場合は、SW3を押しながらJ10にUSBを接続してみてください。
バッチファイルの処理が完了したら、USBケーブルを一度抜いて再接続し、ボードを再起動してください。
Step 2: SR250 FWアップデート
SR250のFW更新のため、SR250_FWフォルダにあるUpdate_SR250_FW.batをダブルクリックでバッチファイルを実行:
SR250_FW/Update_SR250_FW.bat
成功したら、USBケーブルを一度抜いて再接続し、ボードを再起動してください。
Step 3: 動作確認
python demo_ranging.py COM10
PnPルートの準備はこれで完了です!
Zephyr OSベースのSDKを使ってビルド・デバッグを行うルートです。BLEとの組み合わせや独自アプリの開発に対応しています。
VS Code + MCUXpressoを使う方法と、westコマンドラインを使う方法の二つあります。どちらでも構いません。ここではWindows環境でwestコマンドを使う方法を紹介します。なるべくCドライブ直下に近いところにフォルダを作成して始めましょう。
VS Code + MCUXpressoを使う方法についてはスタートガイドやMCUXpresso for VS Codeをご参照ください。VS Code + MCUXpressoを使う方法での注意点だけ最後に記載にしてますので、そちらもご参照ください。
ZephyrのバージョンとZephyr SDKには依存関係があります。本手順では Zephyr SDK 0.17.x をインストールしてください。異なるバージョンのSDKではビルドエラーが発生する場合があります。
ninjaとwestをインストールしておきましょう
pip3 install west ninja
Step 1: リポジトリのクローン
git clone https://github.com/nxp-uwb/sr250-uwbiot-zephyr.git
Step 2: west初期化
cd sr250-uwbiot-zephyr
west init -l --mf west.yml uwbiot-top
Step 3: 依存関係の取得
west update
west updateは完了まで時間がかかります。途中で止まった場合は再実行してください。未完了のまま次に進むとビルドエラーの原因になります。
Step 4: Python依存パッケージのインストール
pip install -r zephyr\scripts\requirements.txt
Step 5: 環境変数の設定
Zephyr SDKのパスを環境変数に設定します。
zephyr\zephyr-env.cmd
最初に更新が必要なため、まずFW更新用のデモをビルドします。
west build -b frdm_rw612 -p auto uwbiot-top\demos\SR2xx\demo_sr2xx_fw_update\zephyr
ビルドに成功したら書き込みます。
west build
シリアル通信でログを確認します。デフォルトでは通信が確立してはじめてコードを実行するようになっています。
ボーレートは 3,000,000 bps に設定します。TeraTerm・PuTTYなど多くのターミナルソフトでは、ボーレートの選択肢に3,000,000が表示されません。選択肢になくても直接手入力できます。テキストボックスに「3000000」と打ち込んでください。
以下のように、最後にSuccess!のログが出力されていれば成功です。
同様にキャリブレーションデモをビルドして書き込みます。
west build -b frdm_rw612 -p auto uwbiot-top\demos\SR2xx\demo_device_calibration\zephyr
west flash
Zephyr SDKルートの準備もこれで完了です!
Windowsのパス長制限(MAX_PATH)
Windowsではデフォルトでパス長が260文字に制限されています。Zephyrのリポジトリは深いディレクトリ構造を持つため、この制限に引っかかることがあります。プロジェクトの保存場所はCドライブ直下に近い場所(例:C:\uwb\など)を強くお勧めします。C:\Users\username\Documents\Projects\...のような深い階層に置くと、Zephyrのビルドシステムが生成するパスが制限を超えてエラーになります。VS Code + MCUXpressoではこの問題がより顕著です。Cドライブ直下に近い場所に置くのが難しい場合は以下の対処方法をご検討ください。
対処方法:
VS Code + MCUXpressoでのプロジェクトインポート時の注意
プロジェクトのインポート時には、App typeを「Repository application」に設定することが必要です。スタートガイドにはハイライトされていませんが、ここを誤るとビルドエラーになりやすいポイントです。必ず確認してください。
pristine buildが必要なケース
ビルドオプションを変更した場合や、エラーが解消しない場合はpristineビルドを試してください:
west build --pristine -b frdm_rw612 sr250-uwbiot-zephyr/samples/demo_uwb_controller
FWバージョンエラー
demo_sr2xx_fw_update を実行する前に他のデモを動かすとFWバージョンエラーが発生します。必ずFWアップデートを最初に実行してください。
環境が整ったら、いよいよデモを動かします。次回はUWB測距デモを動かす方法について、PnPルートとZephyr SDKルート、2つのルートそれぞれ解説します。お楽しみに!
参考リンク
=========================
本投稿の「Comment」欄にコメントをいただいても、現在返信に対応しておりません。
お手数をおかけしますが、お問い合わせの際には「NXPへの技術質問 - 問い合わせ方法 (日本語ブログ)」をご参照ください。
(既に弊社NXP代理店、もしくはNXPとお付き合いのある方は、直接担当者へご質問いただいてもかまいません。)
第1回ではSR250の特長 (UWB測距+UWBレーダーの1チップ統合) を紹介しました。第2回では評価ボード SR250UWBSHIELD + FRDM-RW612 を使って、実際にSR250を動かすための環境を整えます。ビルド不要のPnP (Plug-and-Play) ルートと、本格開発向けのZephyr SDKルートの2通りを解説します。
(作業時間:最短10分)