最近キーボードの話ばかりで恐縮です。
自作したキーボード「ThumbShift5-15TB」のキーアサイン(押したキーと入力される文字の対応)を変更したいとき、今まではテキストの設定ファイルを書き替えてQMK MSYSでコンパイルしてキーボードのマイコンにファームウェアを書き込む必要があった。コンパイルと書き込みには毎回2分くらいかかる。
一方Vialというソフトウェアに対応したファームウェアを一度作ると、ブラウザ上や専用ソフトにキーの一覧が出てGUIでキーアサインを変更できる。しかも変更はすぐに反映され、「保存」とか「書き込み」のボタンを押したりせずにすむのだった。これは便利。

(キーアサインを変更したいキーを選択し、下のキー一覧から割り当てたいキーをクリックする)
ThumbShift5-15TBのファームウェアをVialに対応させるには、まず最新のQMK Firmware向けにファームウェアを書き直さなければならない。QMK Firmwareはバージョンアップでときどき「破壊的な変更」が入る。これは後方互換性を無視した変更で、今までの設定値が使えなくなったり、設定項目を新しいファイルに移動する必要が出たりする。これがおっくうで先延ばしにしてきたが、ついに気が向いて作業にとりかかった。
最新のQMK Firmwareへの対応は案外簡単に終わった。トラックボールを動かすと周辺のキーがクリックや右クリック、スクロールボタンになる変更も加えることができた。次はVial用の設定ファイルを用意する。ここからが大変だった。
キーの位置や大きさを定義するjsonファイルを作ったら、ひとまず「Load Dummy json」でVialに読み込んでみるがそのキーレイアウトが表示されない。なんで? サンプルはうまくいく。ごく簡単なjsonを作って読み込ませてもダメ。

(画面の上半分にキーのレイアウトが出てこない)
いろいろ試してわかった。これはjsonファイルを読み込んだあと「Refresh」ボタンをクリックする必要があった。なーんだ。
次の問題はファームウェアのサイズである。ThumbShift5-15TBの中に入っているマイコンはPro Microといい、フラッシュメモリは32KB、EEPROMは1KBしかない。トラックボールやLEDなどの機能を有効にするとファームウェアは大きくなっていく。Vialへの対応ではさまざまな設定をEEPROMに収めなければならず苦労した。Pro Microの容量が足りるかは数分かけてコンパイルしなければわからない。何度もコンパイルしながらレイヤーを1つ減らしたり、LEDのアニメーションパターンを最小限に絞ったり、セキュアキーの設定をオフにしたり。2つ以上のキーを同時に押して別のキー入力にできるコンボ機能や、1つのキーを2回以上押す操作に意味を持たせるタップダンス機能はQMK Firmwareの柔軟性の高さを示すものとしてよく知られているが、これらもオフにせざるを得なかった。
最終的に完成したファームウェアのサイズは、空き容量28.682バイトの中で28,494バイト。実に188バイトしか残らなかった。それでも必須の機能は残すことができ、ThumbShift5-15TBとしてのアイデンティティを失わずにPro Microに収めることができたのはよかった。
途中でいろいろな生成AIさんに質問してみたところ、GrokがQMK Firmwareに一番詳しかった。ChatGPT、Microsoft Copilot、Perplexity、Claudeと比べて格段に細かく、また的確な改善案を出してくれた。あ、でもQMK Firmwareのリポジトリを示さずエラーメッセージと各種設定ファイルを読ませるだけの条件なので、「このリポジトリです」と示してからだと変わってくるかも。
こうして完成したVial対応のファームウェアとそのソースリストは誰でもダウンロードできるようにした。そして「
ThumbShift5-15TB組み立てのためのサポートページ
」を書き直した。キーアサインの変更方法はこれまではいろいろ書かなければならなかったが、「Vialを使います」だけですむようになってすっきり。
ThumbShift5-15TBの基板は今まで2人の方に譲っている。あと1セット残っています。スイッチプレート、メイン基板、ボトムプレートのみのセットで3,000円です。ほしい方はXとかでご連絡ください。Vialに対応したので人に勧めやすくなった。
さて次はいよいよトラックボール(AZ1UBALL)の方向問題だ。今のファームウェアだと、トラックボールを転がした方向とマウスポインタが移動する方向が90度ずれている。なにが間違っているのかわからないしQMK Firmwareの方向回転定義(POINTING_DEVICE_ROTATION_90 = yes)も効かない。完全にお手上げ状態である。果たしてソフトウェア的に直すことができるのだろうか。基板を設計し直す必要があったらいやだなあ。
2025年5月19日追記:トラックボールの問題は解消
ある方からのご指摘で、トラックボールの方向の問題は解決した。ありがとうございます。これでThumbShift5-15TBは、どこに出しても恥ずかしくないキーボードとして完成した。