ここ最近、VRChatにハマっている。
VRChatはVRゴーグルをかぶって好きなアバターを使って色々な人と話すゲームなんだけど、没入感が普通のPCゲームとは比べ物にならない。
で、このVRChatを更に楽しむためにフルトラになろうと思ったわけ。
もちろんフルトラになるためのデバイス、mocopiや Haritoraとか既存の製品は色々あるんだけど、まあやっぱり、NYStudioのこだわり?というか組み込みエンジニアなら自作してみようや、ってことで作る。
自作トラッカーは既に多くの先人が作っているので、ネットに情報が溢れている。
SlimeVRというOSS の自作トラッカーのプロジェクトがあって、コミュニティもあるので大体の情報はそこにまとまっている。今回はこれを参考にしつつ、ハード構成はオリジナルで作っていく。
バージョン1
まずは設計からだ。

特徴としては
- バッテリーは一個。
- マイコンは王道を往くESP32
- IMU センサーは BNO085
- 膝、くるぶし、腰の 5 ヶ所
バッテリーを一個で済ませるということは、それぞれのIMUをLANケーブルでつないで、一つのマイコンで処理することになる。初代Haritoraと似たような構成だな。
また、I2CでマイコンにIMUを接続できる数は2つまでなので、2つ以上つなげるためにマルチプレクサというモジュールをマイコンに追加する必要もあった。
細かい技術的な説明はClaudeちゃんよろしく~
これらの部品はアリエクで買った。
ESP32開発ボードモジュール https://www.aliexpress.com/item/1005007671225942.html
BNO085 https://www.aliexpress.com/item/1005009186276097.html
TCA9548A https://www.aliexpress.com/item/1005009958573999.html
ということでね、以上の構成ではんだ付けして実際に組み立ててみると、こんな感じになった。

剝き出しの基板で自作感マシマシだよね。 こういう見た目は嫌いじゃない。
次にESP32にUSBを挿して、SlimeVRのファームウェアを書き込む。 ここはドキュメントに沿って全く問題なく進められた。
早速着けて動かしてみよう。

マジックテープで各トラッカーを身体に巻いて、キャリブレーションをしていざVRChatへ!!!

…
使いにくい!!!
LANケーブルが足に絡まって気になるし、基板のサイズと重さが邪魔臭くて仕方がない!
バッテリー1個にした恩恵ってあんまない?
まあ、トラッカーとして動くことは分かったから改善していこう…
バージョン2
そういうわけで、バージョン1から構成を一新する。
特徴としては
- マイコンを各トラッカーに分散
- 通信はWi-Fiから低消費電力な2.4GHz無線 (SmolSlimeVR方式) へ
- 基板はJLCPCBで起こす
SmolSlimeVRは公式SlimeVRの軽量版で、Wi-FiではなくESBというNordic独自の2.4GHzプロトコルを使う方式。WiFi版との比較はこう。
| 公式 WiFi トラッカー | Smol トラッカー | |
|---|---|---|
| 通信 | 2.4GHz Wi-Fi | 強化型 ShockBurst (ESB) |
| 重さ | 約 50g | 約 10〜15g |
| バッテリー寿命 | 18〜20 時間 | 40〜60 時間 |
| 通信範囲 | Wi-Fi カバレッジ | 受信機から 7〜12m |
要するにSmol形式は軽くて長持ちで低遅延ってことだ。その代わり通信範囲は狭くなるけど、室内VRなら問題ない。
細かい技術的な説明はClaudeちゃんよろしく~
基板はJLCPCBに発注する。 JLCPCBは中国の格安PCB製造サービスだ。 バージョン1で用意したモジュールと違って、特化した回路になるので余計な部品が必要なくなる。
設計した回路図をうにょうにょしてJLCPCBに依頼すれば、回路基板が数日で送られてくる。
回路図書いて…

回路基板設計して…

何回も見直して…
完成!!バージョン1と比べるとずいぶんスッキリした。
JLCPCBはチップ素子をはんだ付けしておいてくれるサービスもあるので、これも同時に注文しておこう。
コスパの良さからIMUはLSM6DSVQTR、あとチップ抵抗とチップコンデンサを注文した。 回路10枚分で51ドル約8000円だった。

え?自分ではんだ付けしないのかって?マイコンはともかくチップは俺には無理だよそれは! だってチップ抵抗の大きさって米粒より小さいんだから! チップはんだ用のリフローホットプレートなんて持ってないよ!!
その他の部品は
Promicro nRF52840 https://www.aliexpress.com/item/1005009750451202.html
Holyiot nRF52840 USBドングル https://www.aliexpress.com/item/1005004673179004.html
LiPoバッテリー 150mah https://www.aliexpress.com/item/1005008390226161.html
でアリエクとJLCPCBから荷物が届いて、早速組み立てたのだが…
LiPoバッテリーのコネクタがJST PH 1.25mmだったようで、JST PH 2.0mmで用意していた回路に刺せないことが判明した!!
LiPoバッテリーのコネクタの規格をよく確認していなかった~~~ミスった~~。
仕方ないのでバッテリーのリード線を直接回路にはんだ付けしよう。

バッテリーがショートしないように細心の注意を払いながら、何とか10個分問題なくはんだ付けできた。
念のためリード線にガムテープを貼って絶縁処理をしとこう。
基板むき出しのままじゃ肌に痛いし、配線も剥き出しで装着中に断線しそうだからケースを作ろう。
これでバンドを使って、身体に着けてみよう。
トラッカーのケースをCADで設計して3Dプリンターで作った。
— NY studio (@studioNY3) May 17, 2026
そんでさっそくVRCで使ったら動きすぎてケースが壊れちゃった。
バンドで身体に固定するのが良くなかったか?
テープで身体に貼るのが良さそうなんだよなぁ pic.twitter.com/SqbKeiR7F7
動きすぎて壊れたぞ~ 暴れんなよ…暴れんなよ…
再設計!
シンプルな薄型で再設計したら結構いい感じになった
— NY studio (@studioNY3) May 17, 2026
サイズ36mm×36mm×1.2mmで重量17g!
テープで身体にくっつける方法ならバンドいらん😎 pic.twitter.com/GslwESXA6Q
結局、シンプルな薄型で取り付けは安定した。
キャリブレーションした後、VRChatで10分ほど遊んでみると多少ドリフトしてたけれど、この程度なら十分使えそう。
SlimeVRの設定をさらに調節すればもっと安定するのかもしれない。
身体にトラッカーをどう付けるかが悩みどころ。
身体にテープで直接つけるのが一番しっかり固定できるけどめんどくさいし肌にストレスがかかる。
全身スーツにマジックテープを縫い付けて、トラッカー側にもう片方のマジックテープをつけた着脱式にするのが良いかもと思って試行錯誤中。
色々あって総額は結構かかってるんだけどバージョン2だけに限れば材料費は2万ぐらいかな。
2万でこの精度なら割とコスパいいほうじゃない?
これでさらにVRCが楽しくなること間違いなし!!