Watchman dongleの道標
これは何?
自作Watchman dongleで試行錯誤する過程で得た情報をまとめます。
※メモ書き程度の信憑性です
- これは何?
- そもそもWatchman dongleって何?
- ドングルのハードウェアを紐解く
- 自作ドングルのすゝめ
- nRF24LU1P(nRF52840)搭載ドングルをWatchman dongleにする
- 自作ドングル(ハードウェア)
- 自作ドングル(ファームウェア)
- 技適(あいまい)
- 最後に
そもそもWatchman dongleって何?
Watchman dongleって何
SteamVR Trackingを採用している無線機器をPCに接続するためのトランシーバーです。
なんで必要なの
ドングルは基本的に1つの機器に1つ必要です。例えば、ValveIndexにknuckles controllerを使おうと思ったらドングルは必要ありません。これは、SteamVR Trackingを採用しているHMDには、コントローラー用にあらかじめドングルが二つ搭載されているためです。しかし、MetaやWindowsMRなどのHMDには当然Watchman dongleは搭載されていません。ここで初めて外部にドングルが必要になります。その他にもコントローラー単体で利用したりする際に必要になります。
なんか増えた…(∩´﹏`∩) pic.twitter.com/OWWd7EcMbE
— Ρ (@ugokutennp) 2021年12月12日
ドングルのハードウェアを紐解く
最も普及しているドングルはHTCが製造しているViveTracker用のドングルです。中身を見てみましょう。
https://fccid.io/NM82PYV300/Internal-Photos/Internal-photos-3265244
Internal Photos見ると、ViveドングルにはnRF24LU1Pというチップが使われているようです。
ViveProやViveCEにも同様のチップが使われています。
Indexに関してはnRF52840という最新のチップが使われています。(ここでは省略)
Tundra LabsのSuper Wireless Dongleもindexと同様にnRF52840を使用しているようです。Raytac製のMDBT50Q-P1MV2というモジュールが使われています。
Super Wireless DongleのDVT-2(試作第2弾)もテスト中で、今の所順調に動作しています。 pic.twitter.com/xIIlx76JR1
— Tundra Labs Japan 🇯🇵 (@Tundra_Labs_JP) 2021年7月7日
nRF24LU1P
nRF24シリーズはNordic Semiconductorが製造している2.4GHz用のRF SoCです。nRF24LU1PはUSBコントローラー、フラッシュメモリを備えており、これ1つでドングルが作れる!そんなチップです。
自作ドングルのすゝめ
ここで考えられる道は二つあります。それは「nRF24LU1P(nRF52840)が搭載されているドングルにWatchman dongleのファームウェアをフラッシュする」か「0から作る」です。
nRF24LU1P(nRF52840)搭載ドングルをWatchman dongleにする
Steam Controller Wireless Receiver
Steam Controller Wireless ReceiverはSteam Controller用のドングルです。Viveドングルと同様にnRF24LU1Pを使用しています。
https://fccid.io/2AES41002/Internal-Photos/Internal-Photos-2647947
このドングルは簡単にWatchman dongleに書き換えられることで有名です。
やり方の一例を紹介します。また、Natural locomotionというソフトでもっと簡単に書き換えられるようです。
ファームウェア書き換えて、SteamコントローラレシーバーをSteamVRドングル(トラッカーのお馴染みのアレ)に変換する手術が成功しましたー!VIVE HMDに電源入れなくてもコントローラーとトラッカー5つ認識できるようになったから、MRのHMD使っててもベースステーション系のフルトラできますね pic.twitter.com/htvdwWYpeP
— Wing (@wing_ap) 2019年6月4日
この方法はチップにValve Nordic bootloaderが書き込まれているデバイスでのみ使える様です。
Crazyradio PA
20dBmのパワーアンプを搭載している長距離用のドングルです。
書き込み方法はこちら。
Flashing Watchman firmware to Crazyradio PA · GitHub
Logitech Unifying receiver
Logitech Unifying receiverはLogitech製のマウスやキーボード用のドングルです。一部のモデル(型番:C-U0007)はnRF24LU1Pが使われているようです。
Logitech CU0007 closeups. High contrast. pic.twitter.com/xIdb1kX5mw
— jermainlaforce 🇨🇦 (@jermainlaforce) 2019年8月28日
安価で入手性もよく、このドングルにWatchman dongleのファームウェアをフラッシュできたらいいなと思ったのですが、いくつか問題があるようです。どうやらWatchman dongleのファームウェアとLogitechのブートローダーは一部領域が被っており、Logitechのブートローダー領域は書き込み保護されているため使用できないそうです。SPI経由で書き込むか、Watchman dongleのファームウェアを修正すれば行けるかもしれませんが、簡単ではありません。
MDBT50Q-RX
Super Wireless Dongleと同じnRF52840を搭載した無線モジュールの開発用ドングルです。
MDBT50Q-P1MV2ドングル pic.twitter.com/aX2DwrN6wX
— Ρ (@ugokutennp) 2021年12月25日
nRF52シリーズの書き込みにはnRF Connect for DesktopのProgrammerソフトを用います。実際に購入して接続したところ、ソフト側で認識しなかったためいろいろ調べたのですが、Nordic製のブートローダーが書き込まれていないことがわかりました。(>_<)
J-Linkを介してブートローダーを書き込むことで使えるそうですが、そもそもnRF52用のファームウェアが手に入らないので詳細不明です。
ブートローダーの書き込み
ファームウェアの書き込み
その他のドングル
Aliexpressやebayを見ているとnRF24LU1やnRF24LU1Pを搭載したUSBドングルを比較的安価に見つけることができます。ここで注意してほしいのはチップのメモリ容量です。nRF24LU1Pには16kbモデルと32kbモデルがありますが、Wachman dongleのファームウェアは21kb近くあるので、32kbモデルでないと書き込めません。(>_<)
また、USB経由でファームウェアを書き込むにはNordicのブートローダーが書き込まれている必要があります。
ファームウェアの書き込みについては次章で触れます。
自作ドングル(ハードウェア)
手に入るデータ
SteamVR Tracking ライセンシーになることで、Valveが公開しているドキュメントにアクセスすることができます。その中にはドングルの回路図やbrdデータも含まれるため、基板作成の経験があれば比較的簡単に作ることができると思います。
その他の方法
基板を手に入れる方法は他にもあります。それはnRF24LU1ドングルの基板を流用することです。QFNパッケージをリフローできる環境が整っていれば、0から作るよりずっと簡単にドングルを作成できます。
自作ドングル(ファームウェア)
手に入るデータ
手に入るファームウェアはいくつかあります。一つはViveドングルのファームウェアで、残りは基板のレイアウトデータと同様にライセンシーになることで手に入ります。
・Viveドングル用(要SteamVRインストール)
"C:\Program Files (x86)\Steam\steamapps\common\SteamVR\tools\lighthouse\firmware\vr_controller\archive\htc_vrc_dongle_1461100729_2016_04_19.bin"
・ライセンシー向けドキュメント(要SteamVR Tracking HDKインストール)
"C:\Program Files (x86)\Steam\steamapps\common\SteamVR Tracking HDK\firmware\dongle\watchman_dongle_combined.bin"
・Triad Semiconductor製SteamVR Tracking HDK付属ドングル用(要SteamVR Tracking HDKインストール)
"C:\Program Files (x86)\Steam\steamapps\common\SteamVR Tracking HDK\firmware\2018.06.05\watchman_v3_dongle_v1525468496.bin"
nRF24LU1Pへの書き込み
nRF24LU1Pへの書き込みはUSBを使ったやり方とSPIポートを使ったやり方があるようです。USBを介したやり方はチップにNordicのブートローダーが書き込まれていないと出来ないため、書き込まれていない場合はSPIポートからブートローダーを書き込む必要があります(今回は省略)。nRF24LU1Pには工場出荷時にNordicのブートローダーが書き込まれているらしく、USBポートに接続するとnRFgo StudioにてnRF24LU1+Bootloaderとして認識されます。
ファームウェアの変換
USBを介した書き込みにはnRFgo Studioを用います。また、書き込むにはファームウェアの2進数のデータ(bin)を16進数のデータ(hex)に変換する必要があります。変換にはsrec_catを用います。
ファームウェアのデータとダウンロードしたsrec_cat.exeをデスクトップに配置します。コマンドプロンプトを開いて「cd Desktop」でディレクトリを変更します。次に「srec_cat.exe watchman_dongle_combined.bin -Binary -o watchman_dongle_combined.hex -Intel」を実行します。これでファームウェアのhexファイルを手に入れることができます。あとはnRFgo Studioを開き、Device manager\nRF24LU1+Bootloaderにてhexファイルを指定して書き込むことができます。
技適(あいまい)
Watchman dongleと技適
国内でドングルなどの無線局を使用する場合、原則として免許が必要になります。ただし、いくつか例外があります。まずは微弱無線です。名前の通り微弱な電波しか用いない無線機器で2.4GHz帯の場合、3mで35uV/m以下なら免許の申請や届け出が必要ありません。もう一つは特定小電力無線です。市場の多くの無線モジュールが該当し、技術基準適合試験に合格した製品のみ使用することができます。
もしnRF24LU1Pでドングルを作ったらこれら例外のどちらかに当てはまりますか?
→当てはまりません。
回避?
技適未取得機器を用いた実験等の特例制度を利用することで、技適マークのない無線機器を使用することができます。また電波暗室での使用は問題ないと思われます。
最後に
ここ数か月Watchman dongleについていろいろ調べて分かった情報をまとめてみました。今は自作しなくてもTundra LabsやTG0など新しい既製品のドングルも出始めています。数年前には想像もできなかった、まさかのWatchmanドングル大戦時代の到来です。楽しみですね(何が?)。
Special thanks to VRコミュニティの皆さん、いろいろ教えてくれたXRハードメーカーの中の人、サメチャン…
このブログはあんふぃとらいと Advent Calendar 2021に参加しています。
次はNajikoさんの記事です。楽しみで夜も眠れません。(>_<)