小人キーを ZMK Dongle (Prospector)に対応させてみた
Prospectorがあった方が便利ですが、XIAO BLE が1つ余っていれば気軽に試せるので、是非。
小人キーとは
五十川さんが設計した、左右分割型キーボードです。
ZMK Dongle(Prospector)とは

ZMK Dongle は、ZMK ファームウェアを使っているキーボードを機器と直接ペアリングさせるのではなく、ドングル経由で機器と接続できるようにするもの。
XIAO BLE などのボードがあれば、ファームウェアを書き込むだけでドングルとして利用可能。
極論、裸の XIAO BLE にセントラルのファームウェアを書き込み、キーボードの左右にドングルに対応したファームウェアを書き込めばそれだけで利用可能なので、2000円くらいの追加投資で利用できる。
Prospector は carrefinho氏によって設計された ZMK Dongle に LCDスクリーンが増設されたもの。beekeeb さんで完成品とDIYキット両方の取り扱いがある。
ドングルを利用するメリット
接続が安定する
バッテリー消費が抑えられる
レイテンシの軽減
Prospector を利用する事で、現在のレイヤー名の確認やキーボード側のバッテリー残量を左右それぞれ確認できるようになる。
ドングルを利用するデメリット
ドングル対応ファームウェアではドングルが無いと機器と接続できない
ファームウェアへのリンク
使い方
リリースページからファームウェアをダウンロードしてください。
利用するハード全てに `settings_reset-seeeduino_xiao_ble-zmk.uf2` を書き込む
下記の対応表に従って、各ハードウェアに対応するファームウェアを書き込む
ファームウェアの書き込み対応表
ドングルモード
USBドングルを介してキーボードを使用する場合。余っている XIAO BLE で試してみるときはコレ。
ドングル用Xiao BLE: `KobitoKey_dongle_xiao.uf2` (セントラル、USB接続)
左側キーボード: `KobitoKey_left_peripheral.uf2` (ペリフェラル、BLE接続)
右側キーボード: `KobitoKey_right_peripheral.uf2` (ペリフェラル、BLE接続)
Prospectorモード
Prospectorを利用する場合。
Prospector: `KobitoKey_dongle_prospector.uf2` (セントラル、USB接続)
左側キーボード: `KobitoKey_left_peripheral.uf2` (ペリフェラル、BLE接続)
右側キーボード: `KobitoKey_right_peripheral.uf2` (ペリフェラル、BLE接続)
ドングルなしモード(左側USBまたはBluetooth接続)
ドングルを利用しない場合、所謂通常版。
左側キーボード: `KobitoKey_left_dongleless.uf2` (セントラル、USB・BLE接続)
右側キーボード: `KobitoKey_right_dongleless.uf2` (ペリフェラル、BLE接続)
設定リセット用
Bluetoothの設定をリセットするためのファームウェア。
`settings_reset-seeeduino_xiao_ble-zmk.uf2` (Bluetooth設定のリセット)
今回の主な変更内容
ZMK Dongle 対応
Prospector 対応
ZMK Studio 対応
Keymap Editor 対応
ドングル利用・非利用両対応
CONFIG_ZMK_STUDIO_LOCKING を y に変更
&studio_unlock を追加アサイン
気を付けたこと
ZMK Dongle (Prospector)を利用しないケースも勿論存在するので、ドングル対応版と非対応版両方のファームウェアがビルドされるようにした。
CONFIG_ZMK_STUDIO_LOCKING を y に変更
仕事でも使うので、セキュリティ上の懸念を多少でも払拭するために CONFIG_ZMK_STUDIO_LOCKING を y に変更しました、FUNCTIONレイヤーに &studio_unlock をアサインしてあるので ZMK Studio でロック解除のメッセージが表示されたら該当キーを入力してください。
Space長押し+Fキーで入力できます。
本家との配列以外の差分
Prospector の LCDスクリーンには現在のレイヤー名が表示される。
本家のファームウェアはメインのレイヤーにラベルがついていないので、そのままの状態だと「0」が表示されてしまうのが嫌で「Kobito」というラベルを割り振った。
内部的な話し
ZMK Dongle や Prospector を利用しながらトラックボールを利用する場合、左右それぞれのキーボードでトラックボールに関する処理を行うとレイヤー関連の処理とトラックボールの処理が分散して色々と面倒だったので、キーボード側からはセンサーから受け取った情報をセントラル(ドングル側)に送信するだけにするなど、本家とは異なる構成になっている。トラックボール関連処理の多くはセントラル側で行われている。
この記事は小人キーと Prospector で書きました。
