見出し画像

小人キーを 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 を利用する事で、現在のレイヤー名の確認やキーボード側のバッテリー残量を左右それぞれ確認できるようになる。

ドングルを利用するデメリット

  • ドングル対応ファームウェアではドングルが無いと機器と接続できない



ファームウェアへのリンク


使い方

  1. リリースページからファームウェアをダウンロードしてください。

  2. 利用するハード全てに `settings_reset-seeeduino_xiao_ble-zmk.uf2` を書き込む

  3. 下記の対応表に従って、各ハードウェアに対応するファームウェアを書き込む

ファームウェアの書き込み対応表

ドングルモード

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 で書きました。

いいなと思ったら応援しよう!