
このページではKeyballのファームウェアの書き換え方法を説明します。QMK-MSYSのインストールからキーマップの修正、コンパイル。最後にファームウェアの書き込みまで説明しています。
はじめに
note 2024/05/04時点でのファームウェアの書き換え方法です。
今回のモチベーションは、音量調整をキーボードのショートカットでやりたかったというだけだったので、シンプルにLayer1を選択中に A / S / D で、VolDown / VolUp / Mute をしたいだけです。
が、よくよく調べてみると配布されてるファームウェアが、ここら辺のメディア関連のキー操作が有効になってないみたいで、いくらキーを設定して全く反応しないんですね。
じゃあどうすると有効になるかというと、ファームウェアを自分で編集してコンパイルしてFlashするという自作キーボード初心者には、精神的なハードルが高い作業が待っていました。
実際、やってみた感想としては作業難易度は高くないが、初心者には難しい単語が多いな。。。

QMK-MSYSをインストールする
QMK-MSYSって何かしら?という事ですが、QMK (Quantum Mechanical Keyboard) が、キーボードの配列やキーマップを設定するためのオープンソースのファームウェア。 MSYS(Minimal SYStem)が、Windows上で動作するUnixシェルやテキスト操作ユーティリティ(gawk, sed, findutil)、アーカイブツールを統合したパッケージ。つまり、QMK-MSYSは、インストールするだけで、QMKをビルドする環境が構築できるツールだと思って頂けると分かりやすいかなと思います。
実際のインストールは、こちらのページを参考にさせてもらいました。
QMK-MSYSを使ってWindows上に最速でqmk環境を構築する
2 QMKの設定を行う まで進めてもらえれば、環境構築は完了です。リンク先に説明されていますが、作業の流れとしては以下です。
- 公式サイトで最新のインストラーをDLして、インストールする。
- QMK-MSYSを起動して、CLIで以下のコマンドを実行。qmk_firmwareなどがDLされる。
qmk setup
keyballのリポジトリをクローンする
ここから、参考にしていたページの手順から脱線し、公式の How to build を参考にしました。まずは、KeyballのリポジトリをCloneします。ちなみに全て以下の作業はQMK-MSYS上で実行します。
$ git clone https://github.com/Yowkees/keyball.git keyball
QMK Frameworkをクローンする
公式の How to build に以下の記載があるので、 Versionのあった QMK 0.22.14 をCloneします。
Currently Keyball firmwares are verified to compile with QMK 0.22.14
https://github.com/Yowkees/keyball/tree/main/qmk_firmware/keyboards/keyball#how-to-build
$ git clone https://github.com/qmk/qmk_firmware.git --depth 1 --recurse-submodules --shallow-submodules -b 0.22.14 qmk
シンボリックリンクを張る
$ ls
keyball/ qmk/
$ cd qmk/keyboards
$ ln -s ../../keyball/qmk_firmware/keyboards/keyball keyball
$ ls keyball/
drivers/ keyball39/ keyball44/ keyball46/ keyball61/ lib/ one47/ readme.md
$ cd ..
ここまででフォルダ構成を一回、可視化しておきましょう。たぶん、こんな感じのはずです。

ちなみに余談ですが、最初、以下のページを参考にファームウェアを作成して書き込んでみたのですが、キーコードがおかしくなってしまいました。その後、 公式のガイドラインを確認して、上記の通りにQMK Fameworkをクローンしてビルド環境を揃える事で上手くいく様になりました。
keyballのための はじめてのQMK firmware環境構築 Windows編
keyballのための はじめてのQMK firmware キーマップ作成編
キーマップを作成する
ここから先はWindowsのexploreで良いです。先ほどCloneして作成されたqmkのフォルダのさらに深淵に向かってください。
%USERPROFILE%\qmk\keyboards\keyball\keyball61\keymaps
以下の4つのフォルダを発見する事ができると思います。ちなみに私はkeyball61を購入したので keyball61を選択していますが、同じディレクトリ内に keyball39, keyball44とかお手元のキーボードに合わせてここからは選択してください。
- default
- develop
- test
- via
ここででviaというディレクトリを同じディレクトリ内で複製してください。名前は何でもOKです。私は、media_enableという名前でコピー(extrakey_enableの方が良かったな・・・・)しました。次にファイルを修正します。rules.mkという名前のファイルがコピーしたディレクトリ中にあると思うので、こいつをテキストエディタで良いので開いてください。(config.h、keymap.c もあると思いますが、今回はいじりません)
- rules.mk
RGBLIGHT_ENABLE = yes
OLED_ENABLE = yes
VIA_ENABLE = yes
EXTRAKEY_ENABLE = yes // この一行を追加する
上記の通り、最後に一行追加して保存してください。
コンパイルする
QMK-MSYSからコンパイルを行います。まず、最初の方でQMKをCloneしたqmkフォルダに移動します。公式の通りにビルドのコマンドを実行します。私の場合は、 keyball61で、media_enable というkeymapを元にビルドしているので、下記の内容に変更しています。
$ make SKIP_GIT=yes keyball/keyball61:media_enable

少し待つとqmkフォルダ直下にkeyball_keyball61_media_enable.hex という名前のファイルができあがっていれば成功です。(なんか qmkフォルダ直下にある .build フォルダ内にも同じファイルできるのですが、こっちはメッセージ的にはbuild時のtmp的なファイルっぽいですね。最後、コピーしてるみたいなので、どっちも同じ中身ですが)
ファームウェアを書き込む
Pro Micro Web Updater を開いてください。使い方は、下記を参考にTSSRケーブルを抜いた状態で片方ずつ書き込みを行ってください。
QMKファームウェアの書き込み(Pro Micro Web Updater利用)
さいごに
生まれて初めてキーボードを自作したのですが、半田付けが大変でしたね。
- ダイオードやLEDの数が多い
- 分かっていても向きを間違えて半田付けしてしまうツラミ
- パッドが剥がれてジャンパ線で繋げるという想定していない工程の発生
- まさかの2番目のLED。ここで諦めると残りのLEDが全く光らないので負けられなかった。
- 途中、コーヒーをこぼす。からのフラックスをこぼすの二重苦に遭遇。
- 使い初めて暫くすると認識されないキーが出現。裏のプレートを外し半田のやり直すことX3回
