今回のお題は BM43a です。
前の記事はこちら 40%キーボードプロジェクト その22 - Re: The history of "M&Y"
第一部完となった40%キーボードプロジェクトですが・・・今度は QMK firmware に挑戦します。
やりたいことは、いろいろあるのですが、「LAYERを変えると、LEDの色が変わる」をやりたいなぁ、と思っています。
ゼロから勉強するのは厳しいので、先駆者の方々の解説を参考にさせて頂いて、作業をなぞってみます。
以下、メモ的なものです・・・
参考にしたページはこれです。
https://docs.qmk.fm/#/ja/newbs_getting_started
まず
https://msys.qmk.fm/
から最新版のMSYSをダウンロードします。
https://github.com/qmk/qmk_distro_msys/releases/tag/1.5.2
QMK_MSYS.exe
をダウンロードします。
ダウンロードしたファイルを実行してインストールします。
インストールが完了したら、一旦PCを再起動します。
QMK MSYS を起動します。
qmk setup を入力します。
QMK is ready to go が表示されたらセットアップ完了です!
とりあえず、動作確認として・・・
qmk compile -kb clueboard/66/rev3 -km default
と入力すると、Clueboard 66% のデフォルトのキーマップの .hex ファイルができます。
start .
と入力すると、エクスプローラが開くので、qmk_firmware のディレクトリの中に
clueboard_66_rev3_default.hex
が、できています。
というのを確認して、練習は終了です。(笑)
自分に関係ない .hex ファイルを作ってもしょうが無いので、真面目に BM43a のデフォルトキーマップを作ってみます。
qmk compile -kb kprepublic/bm43a -km default
で BM43a のデフォルトのキーマップが作成できます。(結構、時間がかかる)
最後に
* The firmware size is fine - 21188/28672 (73%, 7484 bytes free)
こんな感じのメッセージが表示されます。
ファイルは C:\Users\(ユーザー名)\qmk_firmware に kprepublic_bm43a_default.hex が作成されました。
作成した .hex ファイルを取り出して、QMK Toolbox でキーボードに書き込むことができます。
以下は、QMK Toolbox を使わずに、QMK MSYSで書き込む方法です。
qmk flash -kb kprepublic/bm43a -km default
これを入力した後に、キーボードをリセットします。(設定してあれば、FN + ESC、設定していなければ、基盤裏側のRESET端子をショート)
Validating... Success
0x5300 bytes written into 0x7000 bytes memory (74.11%).
こんな感じの表示が出たら書き込み終了です。
さて、とりあえずコンパイル(.hexファイルを作成する)と書き込みができました。
次は肝心のキーマッピングの変更の作業です。
default の定義ファイルを残して、変更用のファイルを作成します。
qmk new-keymap
と入力すると新しい keymap名を聞かれるので、keymap名を入力します。(私は test と入れました)
C:\Users\(ユーザー名)\qmk_firmware\keyboards\kprepublic\bm43a\keymaps\test
というディレクトリが作成されて、そのディレクトリの中に新しい keymap.c が格納されます。
(default の keymap.c がコピーされた)
この keymap.c をエディタ(私は「メモ帳」)で開きます。
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
の部分がキー割り当ての部分なので、ここを変更します。
今回は、LAYER1の左上に部分に数字の 1~3を割り当ててみます。
[1] = LAYOUT(
RESET, _______, _______, _______, _______,
↓
[1] = LAYOUT(
RESET, KC_1 , KC_2 , KC_3 , _______,
変更をしたら、keymap.c のファイルに上書きして
ついでに、デフォルトキーボードを設定します。
qmk config user.keyboard=kprepublic/bm43a
さらに、デフォルトのキーマップも設定してしまいます。
qmk config user.keymap=test
これで、コンパイルや書き込みの時に「-kb kprepublic/bm43a -km default」を打たなくて済みます。
それではコンパイルします。
qmk compile
コンパイルが終了して .hex ファイルが作成されたら、再度書き込みをします。
qmk flash
これを打ち込んで、キーボードのリセットをすれば、変更されたキーマップ情報が書き込まれます。
さて、今度は・・・
数字の1,2,3が入力できるようになりました。(bm43a は、 デフォルトのキーマップだと数字が入力できない)
ということで、QMK firmware の基本はできました。
(ただ、これで作成した Firmware だと、RGB-LEDやBL(バックライト)が点灯しません)
さて、ここまで進んだところで、 bm43a/keymap の下に stevexyz というディレクトリがあるのを見つけました。
その下にある、rules.mk の中を見たら・・・
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
というのがありました。(defaultには、そもそも rules.md が無い)
もしかしたら、LEDが光らないのはこれじゃないの !?
ということで、 stevexyz ディレクトリの rules.mk を testディレクトリにコピーして、コンパイルと書き込みをやったら・・・バックライトのコントロールと、背面の RGB-LED のコントロールができるようになりました。
なるほど!
本日は、2歩も3歩も前進した気分です。
続きの記事はこちら 40%キーボードプロジェクト その24 - Re: The history of "M&Y"