QMK Firmwareに悩まされる日々
最近は体調不良と忙しさの隙間を縫い(?)、『自作キーボードを設計してみよう』なんて記事を書いていたのですが、案の定というかQMK Firmwareのところで躓いています。
説明が難しい、というのがまあ分かりやすい理由なのですが、そもそも自分がファームウェアを作成できない状態という理解力がその原因です。
作例にしているAct-JP52の試作、零式では奇跡的にというか、試行錯誤の末にようやく機能するファームウェアが出来上がったのですが。それはまあ様々な方が書かれたブログ記事を参考にし、QMK Firmwareに登録されている数々のキーボードのファームウェアを確認した末に「あぁ、ここが駄目なのか!」と完成させたものでした。ぶっちゃけ、色々な意味で公開できる代物ではない状態のものでした。そういうこともあり、今回の企画では自分も最初からファームウェアを作り直そうと取り組んでいました。
しかし、QMK Firmwareはアップデートしてより良いものを目指している状態。以前は通用した記述が通用しなかったり等、正直なところ参考にしている文献が古くなってしまう(下地としては参考になるものの、新しい要素に対応できない)ところがあり、自分自身の理解力を深めることがなかなかに困難です。しかも、どうにか自分レベルの人間でもファームウェアが作れるようにと諸々対策されたバージョンのKeyboard Firmware Builder(堕落猫さんが公開されたもの)も最近の記述ルールに適応できていないようで、記述の変更、削除が必要でした。あるだけでありがたいものですが、やはり理解が浅いと対応できません。
(元々のKeyboard Firmware Builderが古いサービスであり、有志がそれに対してベンダーID周りで機能追加を行っているというのが現状であり、それは盛んな活動ではなさそうです。この対策だけでもありがたいですから、贅沢な悩みですね)
とりあえず試行錯誤しながらその内容を反映させたものを記事にしている最中ですが、どうにもわかりにくい……。これを書いている段階ではとりあえずエラーを吐かずにmake出来たので、状態をチェックして検証という感じですね……。ひとまず、この記事を書いている感じでは深刻なトラブルは無さそうです。……無いと良いな(願望)。
とりあえず、暫定でconfig.hに関して対応を求められた部分について触れておきますが、
#define DEBOUNCING_DELAY 5
この表記は有効ではなくなったそうなので、
#define DEBOUNCE 5
に書き換えました。
#define DESCRIPTION Keyboard
/* prevent stuck modifiers */
#define PREVENT_STUCK_MODIFIERS
上記の記述も有効ではなくなったそうなのですが、代替記述は無いようなのでそのまま削除しました。これによりエラーは解消されています(正しいかどうかはわかりませんが……)。
色々と機能改善、追加されているQMK Firmwareですが、その進化に完全に置いていかれてしまっています(苦笑)。Remapでキーマップ変更は出来ましたが、認識したキーマップがおかしかったりしましたし……まだまだQMK Firmwareとの和解は先になりそうですね。
コメント
コメントを投稿