はじめに
Watchman Dongleとは何か?や、使用方法についてはこちらの「WatchmanDongleについての基本知識」の記事をご覧ください。
Watchman Dongleが必要になる理由
では、今なぜWatchman Dongleが単体で必要になるのか?
それはLighthouse非対応のHMDで、Lighthouse用のコントローラーを使う時です。
例えば、Valve IndexからHMDをQuest3やPico4にアップグレードするときです。
Index HMDには当然Watchman Dongleが2個搭載されており、Indexコントローラーをペアリングしています。
フルトラの方はトラッカーを別途付属のWatchman Dongleに接続しているでしょう。
ここから、HMDをQuest3にリプレイスして例えば無線フルトラ化するとなると、コントローラー用のドングルがなくなり、Watchman Dongleが2個追加で必要になります。
このような環境の方が一番多いのではないかと思います。
また、Lighthouse機器だけの環境においても、複数の機種のコントローラーをあらかじめペアリングしておき、アプリやゲームによって使い分けるという用途もあります。
私(筆者)はこのような環境で利用しています。(HMDやトラッカーは違いますが概ね)
VRChatでは起動中にIndexコン→VIVEコンの持ち替えが可能で、ゲーム等で長時間のGrab必要になる時などに裏技的に使用することもできます。
ここで通常用意すべき既製品のWatchmanDongleについては、前述のWatchmanDongleについての基本知識の記事に列挙しています。
割高なものもありますが、そちらから調達するのが無難です。
この記事は、安くおさめたい、入手困難な時期に代用品として調達したい、適合素材(ドングル)が手元にあるから活用したい、などの需要に向けています。
Watchman Dongle自作の歴史
本来Watchman Dongleは単独販売されず、代替となるSteam Controller ワイヤレスレシーバーもその性質上、在庫が払底したあとは再供給されず、しばらく入手困難が続きましたが、Indexコントローラーを接続する需要があり、2022年から2023年にかけて状況が変化し、自作できるようになりました。
まず、Watchman Dongleのハードウェアはとても一般的でありふれた設計のワイヤレスレシーバーであることです。
そのため、全く同じチップ(nRF24LU1P)を搭載したワイヤレスレシーバー(例えばBluetooth用やワイヤレス機器の開発キット)であれば、ファームウェアを書き込んで利用できるパターンがあり、国内外で実際に制作されている方もいました。
ただし、基板上の部品実装を伴います。そのあたりはこちらの記事を参照ください。
その後、割高ですがAliexpressなどで社外のドングルが売られるようになりました。
これは中華Bletoothドングルに同じファームウェアを書き込んだもののようです。
更に、Watchman DongleはnRF24LU1Pだけではなく、nRF52840を使用しているもの(Index HMDやTundra SW Dongleなど)もあるため、それらのファームウェアを焼けばWatchman Dongleとしてそのまま利用できることがわかり、最近、USB-Cレセプタクルを持つ大変使いやすい開発ボード「Seeed Xiao」が出たことで、自作できるようになりました。
※これらはすべて一人の方の記録です。
Seeed Xiaoは国内でも1個2000円ぐらいで現在手に入るため、割高のドングルを購入する必要がなくなったと言えます。
あと、技適に通っています。
さらにファームウェアを弄るバッチや手順も公開していただけているので、ほぼ誰でも出来る状態になりました。
これらをまとめて、専用の基盤を起こし、USBハブとnRF52840(※モジュール単位で技適に通っています)を3台実装して売っておられるのが、このWatchman Dongle DIYキット(※ラベルに技適番号印字あり)です。
それ以外のアプローチもありました。
VIVEやトラッカー用ドングルに使用しているnRF24LU1Pにはいくつかのバリエーションがあり、フラッシュメモリの容量などが違いますが、Logicoolのマウスやキーボード用としてこの世で最もありふれている「Unifying Receiver」のうち一つの型番が、該当する32KB版のnRF24LU1Pを持っていました。(※Unifyingレシーバーにも数種類あります)
その型番が「C-U0007」です。
Logicoolによるブートローダーの書き込みロックがかかっており、長らく使用できないものと思われていました。
ところが、C-U0007のUnifyingレシーバーでも、前期型と後期型で書き込まれているブートローダーが異なり、前期型はロックがかかっていないことがわかりました。
さらに良いことに前期型と後期型は外観が全く違うため区別が可能です。
これを利用し、海外の方がUnifyingレシーバー用Watchman Dongle作成ツールを作成し、githubで公開してくれました。
2023年の5月末の出来事です。
どうやらこのアプローチが最も安価で出来る場合が多いため、本記事ではこれを解説します。
(ここまで前置き)
Watchman Dongleを自作する
実際に自作していく手順を紹介します。
このMODはzra123氏の功績によるもので、筆者は「試したらできた」人であり、手順書作成しかしていません。
原文はこちらです。
1.必要なもの
前述の通り、Logicoolの無線マウス・キーボード用のUnifyingレシーバーのファームウェアを書き換えてWatchman Dongleを作ります。
これは世界中に最も溢れていると言って過言ではない、とても入手しやすい素材です。
※1 Logicool?Logitech?
(Wikipediaより)
世界的には「Logitech」ブランドで展開しているが、日本のみ「Logicool」ブランドで展開している。これは、Logitech日本法人設立の1988年当時すでに関東電子機器販売[注釈 1]子会社のロジテック株式会社が存在していたためである。
関東電子機器販売による「ロジテック」商標の出願は1974年と、Logitech本社創業の1981年より前であった。Logitech日本法人設立時の社号は「ロジテック・パシフィック」であり、1996年に現在の「ロジクール」へと改称した[5]。
LogicoolのUSBドングルには非常に数多く(数十のバリエーション)の種類がありますが、このうち、Watchman Dongleのファームウェアに改造できるのは本来のWatchman Dongleと同じ NRF24LU1P が搭載されている『C-U0007』または『C-U0003』という型番だけです。
更に、『C-U0007』の型番のレシーバーにも確認できているだけで4種類、『C-U0003』には2種類のバリエーションがあり、使用できるものとできないものがあります。
上記がC-U0007の手元にある主要な3種類です。
C-U0003は左のNANO RECEIVERと、中央の前期型の見た目のUnifying Receiverのみがあります。
【使用できるもの】
前期版Unifyingレシーバー(画像中央)
オレンジの星マーク(Unifyingマーク)が付き、黒い部分のケースはツヤありで段差があり、USBコネクタ前に白いラインの入ったバージョンです。
NRF24LU1P-F32Q32チップが搭載されています。
使用できるのはこの型番・この外観の組み合わせのもののみ(追記:違いました)です!
旧型のため、事実上中古で入手するしかありません。
身近にあって使用中の場合は、Unifying Receiverは専用アプリでペアリングが再設定できるため、新品で現行品Unifying Receiver単品を買って入れ替えるのも良いでしょう。
追記:前期版でも後期版でもないUnifying Receiver
1/17に記事公開後、別の形状のUnifying Receiverでも出来たという情報をいただきました。
おそらくこういうことだと思われます。
【使用できないもの】
NANO RECEIVER(画像左)
使用できるものと黒い部分のケースは同じですが、「NANO RECEIVER」という刻印があり、ラインがオレンジ色でUnifyingロゴのないバージョンです。
安めのマウスに同梱されており、Unifying に対応していない(1台のマウスだけが接続されている)レシーバーです。
これには NRF24LU1P-O17Q32 または nRF24LU1P-F16Q32 のチップが搭載されており、
ファームウェア用フラッシュメモリの容量が小さいため、Watchman Dongleのファームウェアが入りません。
後期版Unifyingレシーバー(画像右)
見た目が違い、新しいスッキリとした艶なしの黒いケースに入っています。
これには同じNRF24LU1P-F32Q32チップが搭載されていますが、ブートローダーに書き込み保護がかかっており、他のファームウェアを書き込めなくなっています。
最も流通しているC-U0007です。型番だけ見て買うと高い確率でこちらになります。
現在流通している他のUSBレシーバー(黄色いマークのBoltレシーバーなど)と同じ形状で、かろうじて新品で手に入る可能性があるのもこちらですが、どうあがいても使用できません。
今後(はんだ付けを伴う改造をせずに)書き換えできるようになる可能性も非常に低いため、望みを捨てましょう。
注意:同じ見た目のUnifying レシーバーは1つじゃない
上記の C-U0007 Unifyingレシーバーについて、外観だけでは特定できません。
前期型の見た目、後期型の見た目ともに、全く同じデザインで別の型番が2つ存在します。
・ C-U0007 前期型 (使用可)
・ C-U0007 後期型 (使用不可)
・ C-U0008 前期型 (外観が同じだが使用不可)
・ C-U0008 後期型 (使用不可)
・ C-U0003 前期型 (外観が同じでチップも同じだが未調査のため不明)(追記:使用可能でした)
こちらは後期型(両方使用不可)
こちらは前期型と同じ見た目のもの、使えるものと使えないものがあります。
使用できるC-U0007 Unifyingレシーバー前期型と全く同じ外観に都合3つの型番(0003,0007,0008)があるということです。
このうちC-U0008についてはそもそもチップが違うため絶対に利用できません。
そのため、かならず外観だけではなく、型番の刻印を確認して調達してください。
============翻訳・追記前原文============
I present instructions on how to turn the Logitech Receiver Unifying into a Watchman Dongle
Only one model out of more than twenty dongles is suitable for flashing, namely C-U0007 .
But only the C-U0007 unifying version with an orange star! With the ability to connect up to 6 devices (mouse, keyboard), the NRF24LU1P-F32Q32 chip is installed in it, the older version in the line, and the other two NRF24LU1P-O17Q32 and nRF24LU1P-F16Q32, which are installed in the logitech nano receiver, are not suitable for us due to the small size of the internal memory. Firmware from Watchman Dongle will not fit.
2.利用可能か確認する
ブートローダーのバージョンについて
BL.004.016以降のバージョンのブートローダーには保護機能があり、未署名の(Logicool以外の)ファームウェアを書き込めない制限があります。
上記の C-U0007 後期版Unifyingレシーバー はBL.004.016が書き込まれた状態で出荷されています。
BL.001.001 から BL.002.015 までのバージョンのブートローダーが書き込まれたUnifyingレシーバーのみ利用できます。
実際に私の入手した前期型C-U0007 UnifyingレシーバーにはBL.002.014、またはBL.002.015が入っていました。
使用できるかできないか分からないレシーバーの場合、以下の方法で確認することではっきりします。
バージョン確認手順
書き込まれているブートローダーのバージョンを確認する方法は以下の通りです。
① Logicoolの公式サポートページより、Unifying Softwareをダウンロードします。
② ダウンロードしたUnifying Softwareのインストーラーを実行します。
③ 完了を押したら、「Logicool Unifyingへようこそ」の画面が出ますが、閉じても構いません。
この時点で C:\Program Files\Common Files\LogiShrd\Unifying\DJCUHost.exe にインストールされています。
スタートメニューに表示されませんが、このパスでいつでもUnifyingへようこそ画面を起動できます。
④ チェックするUnifyingレシーバーをUSBで接続し、インストールした DJCUHost.exe を実行します。
⑤ Unifyingへようこそ画面で左下の 詳細(A) ボタンをクリック
⑥ デバイス一覧に Unifying受信機 が1つだけ表示されていることを確認し、下部の「システムレポートを保存する(S)…」をクリックします。
⑦ 保存した Unifying Report.txtを開き、Bootloader version : のある行を確認します。
以下手元のUnifyingレシーバーのファイル内容抜粋
(前期型C-U0007 書き換え可能)
受信機
Name : Unifying 受信機
ModelId : 0x46dc52b
Serial Number : A303****
Handle : 0xff000001
Wireless Status : 0x3
Firmware version : 012.001.00019
Bootloader version : BL.002.014
Dfu Status : 0x1
Is Dfu Cancellable : Yes
Max Device Capacity : 6
(後期型C-U0007 書き換えできないなもの)
受信機
Name : Unifying 受信機
ModelId : 0x46dc52b
Serial Number : E377****
Handle : 0xff000001
Wireless Status : 0x3
Firmware version : 012.011.00032
Bootloader version : BL.004.016
Dfu Status : 0x1
Is Dfu Cancellable : Yes
Max Device Capacity : 6
============翻訳・追記前原文============
And so there is a restriction on the bootloader up to version BOT01.04_B0016, it has protection and it is impossible to write an unsigned firmware.
Therefore, only versions BOT01.01_B0001-BOT01.02_B0015 work.
Indirectly, you can determine which bootloader is written in the dongle according to the firmware version using the program Logitech Unifying Software.
Firmwares starting from version RQR12.01_B0019 and up to RQR12.08_B0030 and RQR12.10_B0032 have a bootloader below BOT01.04_B0016 and they suit us.
Also in appearance, you need a dongle in the old case with a recess for gripping, the new case already has a bootloader BOT01.04_B0016.
3.ファームウェアを書き込む
ここからが実際の手順です。
念の為すべてのHMDやドングルを抜いた状態で実行すること!!
必ずUnifyingレシーバーを1個だけ接続している状態で実行すること!
①準備
以下URLより、
・nRF24LU1P_BootLoader.exe
・nRF24LU1P_Flash.exe
の2つのファイルをダウンロードします。両方必要です。
②一時的なブートローダーを書き込む
ダウンロードした nRF24LU1P_BootLoader.exe を実行します。
「Continue」ボタンをクリックしてUnifyingレシーバーを読み込みます。
「Update」ボタンをクリックしてブートローダーの書き換えを実行します。
※ここで「Update」ボタンが出ずに「ALL PRODUCTS ARE UP TO DATE」と表示されていたら、書き換えがすでに完了している、または非対応のドングルです。
注意:C-U0008前期型は「Update」ボタンが押せてしまいますが、非対応のため絶対に失敗します。
しばらく待ちます。
完了して上記の画面になったら「Close」ボタンを押して閉じます。
③USBドライバを置き換える
以下のURLよりZadigをダウンロードして実行します。
zadig-2.8.exe(記事を書いている時点でのバージョンの場合のファイル名)を実行し、メニューの「Options」から「List ALL Devices」をクリックします。
デバイスが選べるようになるので、「USB入力デバイス」を選びます。
その時点で左側のUSB ID欄が 1915 0101であることを確認します。
右側のリストで libusb-win32 (v1.2.7.3) を選び、「Replace Driver」をクリックします。
This driver was installed successfullyと表示され、ドライバの置き換えが完了したら閉じます。
④ ファームウェアを書き込む
nRF24LU1P_Flash.exe を実行します。
(※このexeの中にファームウェアが入っています。)
STP Protection is ON! Disable Protection? と表示されるので、 Y を入力してEnterを押します。
上記の通り「Done」と出て書き込みが完了したら自動で閉じます。
以上で完了です。
その後、Watchman Dongleが認識されることを確認しましょう。
============翻訳・追記前原文============
Instructions for Windows.
- Download 2 files nRF24LU1P_BootLoader.exe and nRF24LU1P_Flash.exe
https://github.com/zra123/nrf24lu1p-512-bootloader/releases/tag/Release- Run nRF24LU1P_BootLoader.exe > Continue > Update > Close
- Download and run Zadig[zadig.akeo.ie]
Run Zadig > Options > List ALL Devices > Select USB Input Devices, USB ID 1915 0101 > Select Driver libusb-win32 > Push button Replace Driver > Wait finish and close- Run nRF24LU1P_Flash.exe > Starting to write watchman_dongle_mod.hex > Disable protection! > Yes > Done
Done, you have a Watchman Dongle!
4.成功しているか確認する
以下URLよりWatchman Pairing Assistantをダウンロードして起動します。
1個だけ接続して起動した画面で、WatchmanDongleが認識しているか確認します。
Unifyingレシーバーを抜いてReloadしたら消え、再度挿入してReloadしたら現れたらOKです。
このスクリーンショットではこの方法で作ったUnifyingレシーバー改 Watchman Dongleを2個接続しています。
この状態です。↓
これで使える状態になりました。実際にペアリングしてみましょう。
おまけ:Unifyingレシーバーに戻す手順
WatchmanDongle化済みレシーバーをUnifyingレシーバーに戻す手順です。
- コマンドプロンプトを開き、SteamVRのあるフォルダに移動します。
cd %ProgramFiles(x86)%\Steam\steamapps\common\SteamVR\tools\lighthouse\bin\win32
- ファームウェアをダウングレードします。すると元のLogicool製ブートローダーが起動されます。完了したらコマンドプロンプトを閉じます。
(1/17 ご連絡いただきコマンドを一部修正しました)
lighthouse_watchman_update.exe -e ..\..\firmware\vr_controller\archive\htc_pre_vrc_dongle_1450758230_2015_12_22.bin
- 以下のURLよりLogitech Firmware Update Toolをダウンロードして実行します。
注)戻す手順はそのまま翻訳しただけで試していません。
1/17追記:コマンドのパスを一部修正していただき、実際に問題なくもとに戻せたとのご連絡をいただきました。
ファームウェアは最新のものに更新されますが、ブートローダーはそのままのようで、元に戻してからも再度Watchman Dongleのファームウェアにすることが可能とのことです。
============翻訳前原文============
Return to Logitech Receiver Unifying
On Windows
- Open the console and go to the folder with SteamVR.
cd %ProgramFiles(x86)%\Steam\steamapps\common\SteamVR\tools\lighthouse\bin\win32- You need to downgrade the firmware, thereby launch the Logitech bootloader and close the console after.
lighthouse_watchman_update.exe -e ….\firmware\vr_controller\archive\htc_pre_vrc_dongle_1450758230_2015_12_22.bin- Download and run Logitech Firmware Update Tool[support.logi.com]
Unifying Watchman Dongleは使えるのか
実際使えます。トラッキングは問題なく出来ました。
ただし、アンテナの性能が全く同じとは限りません。
大きな差はないとは思いますが、ロジクールのマウスのレシーバーの電波の飛び自体が大したことがない印象のため、トラッカーやコントローラーに対して遮蔽物がない場所に設置したり、無線LAN(2.4GHz)で通信する機器の近くに設置しないなどの配慮が必要かと思います。
(※これは普通のWatchman Dongleでも同じく必要な配慮です)