SlimeVR-Tracker-nRFのビルド
はじめに
2024/11/30現在、爆速で開発が進んでいる、BLEで動作するSlimeVRのFW
レシーバー(USB-HID)とそれぞれのトラッカーをペアリングして動かすみたい。
消費電力が驚異の5mAで凄い(実測)
ESP系とはまた環境が違って難しいのでビルド手引きをここに。
必要最低限のハードウェア
- XIAO nRF52840 x2(ドングル・トラッカー)
- BMI270とか x1
環境構築
- VSCode
- nRF Connect for Desktop
拡張機能「nRF Connect for VS Code Extension Pack」をVSCodeにインストールする
すると、左側にnRF Connectのアイコンが出てくるので、これをクリックした後に、左上のInstall Toolchainから、V2.6.2 を選択。これ以下でも以上でもダメです。開発者曰く、バグがあってビルドできないみたい?
その次に、ManageSDKsから、InstallSDK→、V2.6.2 を選んでインストール。
トラッカー側のFW構築
↓できたら、GithubからリポジトリをCloneしましょ↓
ターミナルに↓をぺち
git submodule update --init --recursive
したら、左下のAdd build configurationを押して、出てきた画面の
Board targetを xiao_uf2 に、Customのラジオボタンも忘れずに
そしたら下のほうにスクロールして、Build Configurationボタンをぽち
ビルド通ったら、左下のOutput filesからzephyr.elfを選択。
すると、同階層に zephyr.uf2 があるので、この上で右クリックでエクスプローラーで表示
出てきたウィンドウはいったん最小化しましょ
Xiaoのブートローダの更新
これ忘れるとj-linkかラズパイの出番が来ます 気をつけろッ
↓ここから、update-xiao_nrf52840_ble_sense_bootloader-x.x.x_nosd.uf2をダウンロード(x.x.xは最新のものを。)
ダウンロードできたuf2ファイルは、DFUモードのXiaoにドラッグアンドドロップで書き込みます
DFUモードに突入するには、Resetボタンを素早く二回押す!すると、エクスプローラーにドライブが出てくるので、そこにポイ
FWの書き込み
ブートローダの更新ができたら、もう一度Xiaoを接続しなおして、DFUモードに突入。
さっきビルドした.uf2をD&Dします
すると...?無事、FWの書き込みができました!
確認してみましょう~、nRF Connect for Desktopを起動し、Serial Terminalを開いて左上のSelectDeviceから「SlimeNRF Tracker Xiao」を選択
シリアルコンソールから試しにmeow
を送信すると、お返事してくれます
もしお返事帰ってこなかったらFW書き込み失敗...?ほかにもコマンドある、info
とか試してみて
ドングル側のFW構築
Add build configuration から、CmakePresetがあるので、ここからxiao_bleを選択
Build Configurationボタンをぽち
出来上がったらさっきみたいに.uf2を探して、エクスプローラーで開く。
Xiaoのブートローダの更新を忘れずに!先ほどと同じ手順でドングル側も更新します
ブートローダの更新出来たら、ビルドしたFWをD&D
これで、ドングル側の構築も完了!
ペアリング
ペアリングするには、それぞれのシリアルコンソールに
pair
と送信するとペアリングモードに入り、自動でペアリングしてくれます
もしくは、リセットボタンを3回連続で押す!
これで多分できているはずです、お疲れ様でした。
ちなみに...
このFWを書き込んだ後にDFUモードに入りたい場合は、リセットボタンを4回連続で押すか、シリアルコンソールから dfu
と送信しましょう
また、何か間違えてブートローダを吹っ飛ばしたら。。。
救済方法があります
配線はこれ
ラズパイゼロにraspbianをインストール
一応、sudo apt install openocd
FWを
curl -OL https://forum.seeedstudio.com/uploads/short-url/eSDX0bezkia89iZ77eduYRwycAt.zip
で落としたあとにlsで落としたzipを確認、unzip (ファイル名)で解凍したのち
sudo openocd -f interface/raspberrypi-native.cfg -c "transport select swd" -f target/nrf52.cfg -c "init" -c "reset init" -c "halt" -c "nrf5 mass_erase" -c "program Seeed_XIAO_nRF52840_Sense_bootloader-0.6.1_s140_7.3.0.hex verify" -c "reset" -c "exit"
でブートローダをフラッシュ
多分ラズパイ3,4,5,picoでも行けると思うけど、、、やってないからわからない
リフラッシュ後はブートローダの更新も忘れずに!
最終更新日 2024/12/01
Discussion