この記事は前回の記事の続きです。
前回は、はんだ付けをしたところでした。今回はキーボードの頭脳に当たるファームウェアの書き込みをしていきます。
そもそもファームウェアとはなにか
市販のキーボードや、ノートパソコンについているキーボードで「Aを押すとAを入力できる」のは当たりまえだと思います。
しかし、これは「Aの印字がされているキーが押されたら、Aの信号を送る」という設定が、キーボードにされているからなんです。
この「このキーが押されたら、この信号をパソコンに送る」という設定がファームウェアです。
自作キーボードはキーボードのサイズから形状まで、多種多様なものがあります。よくあるキー配置だけでなく、全てのキーが上下左右きれいに並ぶ配置や、そもそも左と右に分割されているキーボードなどなど、何でもあります。
そのため、どのキーを押すとどの信号が送信されるかを、自分好みに設定する必要があるんですね。(一応デフォルト設定はあるので、最悪しなくてもつかえる。かも。)
ファームウェアの作り方
設定とか、信号とかちょっと難しそうな言葉が出てきましたが、やり方は簡単です。
QMK Configuratorというサイトで作成できます。やり方は簡単で、
- PCB(キーボード)の種類を選択
- レイアウトを選択
- デフォルトのキー配置をお好みで編集
- ファームウェアを生成、ダウンロード
の簡単4ステップです。
PCB(キーボード)の種類を選択、レイアウトを選択
まず、PCBの選択ですが、これは買ったキーボード、もしくはPCBの名前を探して選択しましょう。
僕が今回買ったPCBは「YMDK64MQ」というPCBだったので、これを選択します。
また、レイアウトについては基本は初期のLAYOUT ALLみたいな選択肢で良いと思います。
デフォルトのキー配置をお好みで編集
キーボードとレイアウトを選択すると、下にキーボードと、たくさんのキーが表示されると思います。
変更したいキーに、下からドラッグ・アンド・ドロップでキーを持っていくと、キーの設定を上書きできます。
普通に好きなようにキーを設定していけばOKなんですが、いくつかテクニックと言うか、大事な要素があるので紹介しておきます。
レイヤー
キーマップの左に、レイヤーというリストがあることに気づいたかもしれません。
レイヤーとは、キーボードの設定のまとまりのようなもので、レイヤーが切り替わることで、同じキーでも違った動作をすることができます。
例えば、60%レイアウトのキーボードにはF1,F2などのファンクションキーはありませんが、Fnキーを押しながら数字の1を押すと、F1キーとして動作します。
これは、Fnキーが押されている間は、レイヤーが切り替わり、そのレイヤーでは数字のキーはファンクションキーとして設定されているためです。
これを使うことで、本来必要な2つ以上のキーを1つのキーに割り振る事ができるので、結果的にキーの数を減らして、キーボード自体を小さくすることができるんですね。
もちろん、小さくすることだけが目的ではないので、自分の使いやすいようにレイヤーを設定して、ショートカットを入力しやすくしたり、擬似的なテンキーを作ることも可能です。
ちなみに僕のレイヤー1はこんな感じ。
Homeキーたちや、右側にテンキーのように数字キーを配置してたりします。
タップとホールドで動作を変える
レイヤーに加えてもう一つ重要なのが、タップとホールドでの動作切り替えです。これがめっちゃ大事。(だと思う。個人的に。)
60%レイアウトでは、素直に矢印キーを配置すると、?キーの配置がとても変なところになります。
↑キーの右という謎の場所にいますね。何してるんだそんなところで!
自作キーボードを作成する猛者たちは、「矢印キーなんて要らない」「レイヤー1でWASDを矢印キーにしとけばおk」みたいな感じっぽいです。いや矢印キー普通に要るだろ。
矢印キーはほしいけど、?キーの位置も通常通りであってほしい。これを叶えるのが、タップとホールドで動作を変える設定です。
このRSft_Tというキー設定は、「ホールドすると右シフト(RShift)だけど、タップすると設定しているキーとして動作する」というものです。
Shiftキーは、ほとんど長押しして他のキーと一緒に押すことになるので、これはとても合理的です。
こうすることで、キーの形は違えど矢印キーは今までの指の感覚で使えるし、?キーの位置も一般的なものになりました!
似たようなもので長押しでAltとか、長押しで⌘/Winとかもあるので、色々ためして最強の設定を作り上げてください。
ちなみに僕は左Shiftのタップには`キーを
Zキーは長押しでレイヤー切り替えとして動作するようにしてます。(テンキーを右手で使いたいため)
ちなみに、キーボードのリセットをキーに割り当てる事ができます。後述するファームウェアの書き込み時にあると便利なので、どこかに設定しておくのをおすすめします。
ファームウェアの生成、ダウンロード
編集の話が長くなりましたが、お好みの配置ができたらファームウェアを作ってダウンロードしましょう。
右上のCOMPILEをクリックしてコンパイルします。回転するじゃがいもを見て待ちましょう。(なんでこのサイトじゃがいも推しなんだろうね)
終わったら右下のボタンからファームウェアをダウンロードします。.hexというファイルです。
ファームウェアの書き込み
ファームウェアが準備できたので、キーボードに書き込みます。
QMK Toolboxをインストール
ファームウェアを書き込むためのアプリケーションであるQMK Toolboxをインストールします。
ここからインストーラーをダウンロードできます。OSや環境に合わせてダウンロード、インストールします。
ファームウェアをセット、書き込み準備
QMK Toolboxを開いて、Openから先ほどダウンロードしたファームウェアを開きます。
また、Auto Flashにチェックを入れておきましょう。キーボード側のリセットを検知して、自動的に書き込んでくれるようになります。
キーボードをリセットする
最後に、キーボード側のリセットを行います。QMK ToolsのAuto Flashを有効にしているので、リセットを行うと自動的にファームウェアが書き込まれます。
リセットの方法はPCBによって様々です。説明書を読みましょう。(関係ないけど「僕説明書読まないタイプなんですよね」って言う人いるよね。)
ちなみに、今回使っているYMDKのPCBは、ショートさせるとリセットされる回路が準備されていたので、そこにピンセットをあててショートさせることでリセットできました。
ファームウェアでリセットが割り当てられていれば、PCBをショートさせる必要はないので、ケースに入れた後もファームウェアの書き込みはできます。
ここにピンセットを当ててショートさせるとリセットされました
(はんだ付けがヘッタクソですがこの後修正しました。ごめんなさい。)
QMK Toolboxになんか色々とログが出て、Completeって表示されればOKです。たぶん。
キーボードをポチポチして、設定どおりになっているか確認しましょう。
頭で考えるのと、実際に使ってみるのではかなり感覚が違うので、書き込んで使ってみて、だめだったら修正して書き込んで、と繰り返すことで、理想のキー配置になっていくと思います。
これでファームウェアの作業はおしまいです。なんだか難しそうですが、やってみるととても簡単で、自分だけのキーボードを作っている感じがして楽しいです。ぜひやってみてください。
最後に、僕の今の時点でのキーマップを置いておきます。何かの参考(?)にしてください。
次回 組み立て
もうキーボードはできたようなものです。見た目や利便性を無視するとすでにキーボードとして使えます。
記事の投稿はTwitterでお知らせするので良かったらフォローしてください。そんなにつぶやきません。