一度分かってしまえば簡単なことでも、最初は心がくじけそうになるほどの難題だというのは何にでも当てはまること。キーボードの自作においてもそのことは当てはまります。今回は忘備録として、表題の作業でのポイントを残しておきます。
QMK のスタートガイド(英文)の流れに沿ってのメモなので、必要なリンクなどは下記英語ページを参照してください。なお自分には必要ないと思った部分は割愛しています。
https://docs.qmk.fm/#/newbs_getting_started
使ったパソコンは MacbookAir、macOS High Sierraバージョン10.13.6です。
作業は「ターミナル」上でキーボードに配列データを書き込む作業を行うため、まずマック上での「ホームブリュー」環境を整えます。
アプリケーションの「ターミナル」を開き、ホームブリューのトップページ上に表示されているコマンドをコピペして実行。終わるまで何度もダウンロードとインストールを自動的に繰り返し、完了までには1時間以上かかってしまいました。
「ターミナル」上でQMKをダウンロードします。ここにはキーボードをプログラムする基本ソフトウエア(ファームウエア)の他に各キーボードの配列データが揃っています。
ダウンロードが終わったら、どこか分かりやすい場所にダウンロードデータを移しておいても良いと思います。私はデスクトップに「qmk_firmware」としてフォルダごと移動させました。
「cd」と「ls」コマンドを使ってこのフォルダまで移動し、セットアップのコマンドをコピペして実行します。と書きますが、コマンドラインなんてやったことないのが普通ですから、どのようになるのかイメージがつきずらいです。
例として、今ダウンロードしたばかりの「qmk_firmware」フォルダ内でコマンドを実行してみます。「cd」と「ls」のコマンドが意味する動作は、
・qmk_firmware フォルダ内で「ls」コマンドでフォルダ内を表示
・「keybords」フォルダに「cd」コマンドで移動
・「ls」コマンドでフォルダ内を表示
こういうことです。この3つを下記に実行してみました。
実行後には必ず「$」が表示されてカーソル(四角)が点滅します。これがコマンド待機中の合図。常に「qmk_firmware」にいることが大事で、ここでセットアップ用のコマンドを実行します。実行後インストールとダウンロードを何度も繰り返し、終了します。
QMKの環境が正しくセットされたかどうかをテストするためにコマンドを実行します。私の場合は Gherkin なので、
make gherkin:default
と打ちます。このコマンドは、QMKの中にある基本となるキー配列データが呼び出され、ProMicroに書き込める形式のデータが生成する仕組み。最初はとっつきにくいですが、シンプルなコマンドなのですぐに慣れます。
元ファイルを何も触らずに操作した場合、最初はこんな風な画面になり問題なく終わるはずで、その場合は正しく環境がインストールされたことになります。
次にキーボードを制御する ProMicro へデータを書き込むわけですが、そのタイミングでエラーが出て先に進めなくなります。当時の私は慣れないはんだ付けなどを終えてようやく辿り着いた状態で、エラーが出たのを見て正直心が折れました。(そういう音が聞こえた)。
これまでやってきたことを無駄にしたくはないと意地になって調べると、これはマックOSに限った問題らしく、以下の場所で解決方法が議論されているのを知った時は嬉しかったです。
https://www.reddit.com/r/olkb/comments/939tz6/lets_split_socketsvitamins_failing_with_default/
この通りに5つのコマンドを実行すると、問題は解決します。これでようやく心も元の戻り、キー配列データを処理し書き込む環境が整い、最後の大きなハードルを超えたことを知ったというわけです。
この環境さえ整えば、デフォルトの配列を自分好みに変えることができます。最初に、使っているキーボードのフォルダ階層の一番深いところにある「keymap.c」ファイルを見つけます。
この「default」フォルダをそっくりコピーし、作業用に名前をかえて(この場合 makoto というフォルダ)同じ階層に置きます。念のため名前を変えた状態で一度 make して問題なく終了するかどうか確認しておきます。
ファイルはプログラム用のテキストエディタ(私の場合「mi」)で開きます。
ファイルには3X10 という配列でこのような形のデータが保存されているので、この画面の配列を崩さないように記号を入れ替えてゆきます。キーは例えば「A」なら「KC_A」というように記号で指定するようになっています。記号の一覧は、下記に詳しく載っていますのでこれを参照しながら何度も組んではインストールし、実際に使っては修正をしを繰り返します。
https://docs.qmk.fm/#/keycodes
ちょっと原始的ですが、これがもっとも簡単で確実な方法だと思います。
テキストエディタでファイルができたら保存します。「ターミナル」に戻り、qmk_firmware フォルダ内に cd を使って移動したら、
make キーボードデータのある親フォルダ名:実際の keymap.c ファイルが入っているフォルダ名:avrdude
make gherkin:makoto:avrdude
これを実行します。するとファイルの準備を行い [OK] という文字が次々出てきて、準備が終わると
Detecting USB port, reset your controller now……………
こんな表示に切り替わります。これは、キーボードが刺さっているUSBポートを見つけるために ProMicro をリセットしてください、という指示。点々が伸びていくのは待っているということですので、この状態でPCBボードのリセットボタンあるいは直接 ProMicro の端子(左の2・3番)をピンセットなどでつまみます。
うまくゆくと USBポートを自動的に探し、データを書き換えてくれます。
avrdude: verifying …
avrdude: 16902 bytes of flash verified
avrdude: safemode: Fuses OK (E:CB, H:D8, L:FF)
avrdude done. Thank you.
問題が起きるとエラーメッセージで返してきますが、仕組みを完全に分かっているわけではないので、元ファイルの形を守りながらごく単純なところだけを変更するにとどめていますので、エラーが出たとしてもカンマを抜いちゃったとかという単純ミスが主です。