QMK firmware ファームウェアの初歩の初歩 8
ここから先は実機が必要となる。
例の如く実機をXD60として、この先の手順を見ていこう。
今回この記事を作成するにあたり、私もストックのPCBで一台組んだので、それを適時説明に用いることにする。
【表面】
【裏面】
ハード的にはPCBにキースイッチが半田付けされた状態であるのが望ましい。これはファームウェアを書き込んだ後に臨んだ動作をしてくれるかテストするために私が推奨するもので、慣れてきたら後回しにしても構わない。また、LEDの設定をファームウェアに盛り込んでいる場合にはもちろんLEDも先に半田付けしておかないと動作確認はできない。*1
それではQMK公式ページを確認して、ファームウェアを書き込もう
英語は要点を一番最初に書く傾向が強い。要はキーボード本体を書き込みモード(Bootlorder mode)にしろと書いてあるのだが、その方法はPCBの型番によって異なるようである。
XD60の場合は裏面にある物理スイッチを押すことで書き込みモードになる。まずはその位置を確認しよう
次にいよいよケーブルをPCに接続する。
接続したら裏面のLEDが点灯するのでそれを確認する。
次にQMK Toolboxに目を移すとこのようになっているはずである。
"Microcontroller"のプルダウンから"Atmega32u4"を選択する。
次に、これは本来任意だが"Auto-flash"にチェックを入れる。これによりPCBが書き込みモードに移行したことを自動認識してファームウェアを書き込んでくれるようになる。チェックしない場合はモードが移行したことのみ認識してくれるので、書き込む際は"Flash"ボタンを自分で押す必要がある。
"Auto-flash enabled"の文章がログに追加されたことが確認できる。以上で準備は完了なので、PCBの物理スイッチを押下しよう。
USBケーブルが取り外され、そして接続された時の音が流れる。これが書き込みモードになった合図である。
その後ログが流れ出し、書き込みが終了すると次のようになる。
セットアップからここまで長かったが、以上で書き込みまでの手順は完了である。
お疲れさまでした。
さて今回はdefaultのキーマップを書き込んでおり、書き込みが成功しているかどうかの確認はログから読み取る他にない。
重要なのはログ画面中央付近にある2本のプログレスバー(windowsだと、何かをインストールするときに進捗の度合いによって左から右に動く緑色のあれ)とその周辺である。プログレスバーは100%まで進行しており、そのすぐ右側に"Success"の文字が確認できる。これは書き込みが成功したことを表している。
最後に、説明を飛ばしてしまった"Microcontroller"について述べる。
キーボード本体には、キースイッチが押下されたことを検知してデジタル信号をPC本体に送る機能を持ったマイコン(マイクロコントローラー)というハードウェアが搭載されている。ファームウェアとはまさにこのマイコンの動作を決定する役割を持ったソフトウェアのことを言う。ファームウェアはマイコンに直接書き込まれるため、市販品のゲーミングキーボードのように何かしらのソフトウェアをPCにインストールしてOS上でキーマップを書き換える方式とは異なり、どこのPCに接続しても変更済みのキーマップで動作させることができる。しかしながら、PCBの型番によって搭載されているマイコンも異なる場合があるので、QMK toolbox側でそれを指定してやる仕組みになっている。
現在PCBで最も採用されている(と思われる)マイコンはATmega32u4である。PCBを用いない自作キーボードを設計する場合には、このATmega32u4をコントローラーに選択することによってQMK firmwareを用いることが可能となり、キーマトリクスの理論や電気回路の知識を持たずともソフトウェア的な開発が可能である。
実はこのATmega32u4はもうひとつ有名な採用実績があり、それこそがArduinoと呼ばれる電子工作用のハードウェアなのである。実際には、Arduinoと呼ばれる製品群の中の一部のモデルにATmega32u4が採用されている。Arduinoはキーボードに限らず、様々な電子工作に用いられている。更にArduinoはオープンソースであるため、特に中華系の互換デバイスが格安で販売されており、その中にPro Microというモデルがある。自作キーボードについて調べていてPro Microという謎のデバイスを見かけることが多いのはそういう理由である。
次回から、キーマップの変更について解説したい。
*1:表面の画像を見るとプロファイルがXD60のdefaultから若干変更されているが、今回の話の中では関係ない。