⌨️
Keyball44の無線化対応メモ
更新履歴
2024/08/31
- v1.0.0として、mint149/keyball44-bmpブランチのビルド済みファイルを配置
はじめに
BLE Micro Pro(以下BMPと呼称)を用いてKeyBall44の無線化を行ったので、メモを残します。
手順の詳細までは記載しておりませんので、自力でソースをいじれる人向けです。
バッテリーのことを考えずに無線化したのでちょっとかさばってるのは内緒
やったこと
ukoasisさんの以下記事に記載のあったKeyball39ファームウェアのソースをフォークして、Keyball44用に書き換えました。
書き換え後のソースは以下のリポジトリのブランチ「mint149/keyball44-bmp」に上げています。
上記記事と同じく、本無線化対応時点(2024年8月)でのBMPの最新バージョンである1.2.0に対応しています。
また、ビルド済みのuf2ファイル・binファイルについて、以下のリリースページにあげています。
ビルド・config.binの作成などの手順は上記記事と同様です(丸投げ)。
補足事項
- 筆者のKeyballについて
-
右トラックボールで右がmaster
- 配置を変えたい場合、以下のファイルを編集すればおそらく対応可能(未検証)
- keymap/bmp/left.config.json
- keymap/bmp/right.config.json
- 配置を変えたい場合、以下のファイルを編集すればおそらく対応可能(未検証)
-
LEDは使用しない
- 基板にはんだ付けもしていない
- 使用する場合、via.json・vial.jsonのLED部分の記載を変えればおそらく対応可能(未検証)
- OLEDは右のみ配置
- 左にも配置したいがslave側OLEDにレイヤ情報などを渡す方法を知らない
- Vial・Remapをほぼ不使用
- Vialでキーマップを修正できることは確認しているが、ほとんどお試し程度
- そのため、Vial・Remap使用時になにか都合が悪いかもしれない
- 少なくともVialでトラックボールが左にあるときのレイアウトがおかしいのは確認済み(後で直します…)
- キーマップの変更を行いたい場合、keymap.cを修正してその都度ファームを書き換えている
- キー自体にC言語での制御が必要な特殊な機能を持たせることが多いため
-
右トラックボールで右がmaster
- キーマップは動作確認用の仮のものとなっている
- BMP用の独自キーもマッピングしていない
- keymap.cを書き換えるか、Vial・Remapで適宜修正が必要
詰まったところ
- DFUモードにしてもMacにマウントされない
- 以下の記事を参考に、ターミナルからマウントして対応した
- macOS Sonoma で BLE Micro Pro(BMP)マスストレージデバイスとして認識させる
sudo mkdir /Volumes/keyball sudo mount -t msdos /dev/disk4 /Volumes/keyball
- config.hのSPLIT_HAND_MATRIX_GRIDについて
- 39ではF6,B5だったのをF7,D4に修正した
- keymap/bmp/rules.mk
- LEDを使わない場合でもRGBLIGHT_ENABLE = yesとする必要がある
- noにした場合、bmp.cでコンパイルエラーが起きる(本来は修正したほうが良さそうだけど面倒が勝った)
tmk_core/protocol/bmp/bmp.c:10:10: fatal error: rgblight.h: No such file or directory #include "rgblight.h" ^~~~~~~~~~~~
- 自作カスタムキーの定義用定数について
- KEYBALL_SAFE_RANGEを使えばOK
- キーの定義としては、通常のキー(SAFE_RANGEまで)→BMPの独自キー(BMP_SAFE_RANGEまで)→Keyballの独自キー(KEYBALL_SAFE_RANGEまで)となっている
- オートマウスレイヤが機能しない
- pointing_device_init_user()が機能していない?
- oledkit_render_info_user()に起動後1回だけ動作するような判定を用意し、その中でオートマウスレイヤON・スクロールモードオフで対応した
- QMK版とスクロールの向きが逆?
- 筆者の環境ではそうなった
- スクロール方向を反転する機能をもともと用意していたので、その中の判定条件を逆にして対応した
おわりに
筆者はKeyball39と44の差分にあたる箇所を書き換えただけで、トラックボールやOLEDの制御部分については特に修正を加えていません。
このあたりは自分では手出しできない箇所でしたので、そのまま流用させていただけて本当にありがたい限りです。
作者のukoasisさんには改めて感謝申し上げます。
ここのところ無線化されるのはKeyBall39ばかりだったので、もっとKeyball44も事例が増えてくれると嬉しいです。
Discussion