🏢

SlimeVR-Tracker-nRFのビルド

2024/12/01に公開

はじめに

2024/11/30現在、爆速で開発が進んでいる、BLEで動作するSlimeVRのFW
レシーバー(USB-HID)とそれぞれのトラッカーをペアリングして動かすみたい。
消費電力が驚異の5mAで凄い(実測)
ESP系とはまた環境が違って難しいのでビルド手引きをここに。

このFW作者さんが作成途中のドキュメントサイトもあるよ

必要最低限のハードウェア

  • XIAO nRF52840 x2(ドングル・トラッカー)
  • BMI270とか x1

環境構築

拡張機能「nRF Connect for VS Code Extension Pack」をVSCodeにインストールする

すると、左側にnRF Connectのアイコンが出てくるので、これをクリックした後に、左上のInstall Toolchainから、V2.6.2 を選択。これ以下でも以上でもダメです。開発者曰く、バグがあってビルドできないみたい?

その次に、ManageSDKsから、InstallSDK→、V2.6.2 を選んでインストール。

トラッカー側のFW構築

↓できたら、GithubからリポジトリをCloneしましょ↓
https://github.com/SlimeVR/SlimeVR-Tracker-nRF
cloneしたら、サブモジュールのDLをします
ターミナルに↓をぺち
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は最新のものを。)
https://github.com/adafruit/Adafruit_nRF52_Bootloader/releases
ダウンロードできた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構築

https://github.com/SlimeVR/SlimeVR-Tracker-nRF-Receiver
↑これをクローン
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