われがわログ

最適化アルゴリズムとかプログラミングについて書きたい

QMK Firmwareが焼けるマクロパッド「YMD09」を買った

自分でファームウェア(QMK Firmware)を焼けるマクロパッド「YMD09」を購入したのでメモしておく。

ja.aliexpress.com

Teamsのミュートショートカット(Ctrl+Shift+M)を押せるマクロパッドを探しており、最初はStream DeckかKoolertronのマクロパッドを買おうかと思っていた。だが、Stream Deckは値段が高く、かつ設定がPCに保存されるそうなので却下した。リモートワーク用のPCにも使いたいので、通常のキーボードとして認識してくれることが望ましい。

Koolertronのマクロパッドはその点申し分ないが、設定ソフトウェアがプロプライエタリなため購入に踏み切れなかった。

その後見つけたのがYMD09だ。YMD09は9キーのマクロパッドであり、キーボード向けのオープンソースファームウェア「QMK Firmware」をインストールできる。しかも、QMKの設定を簡単に変更できるVIA(or Remap)にも対応しており、使い勝手もよい。 さらに、完成品にもかかわらず約3000円と値段も安く、購入に踏み切った次第だ。

手元に届いた状態でキーボード用ファームウェアが既に焼かれていたが、今となっては何が入っていたのかよくわからない。 分解した後、Reset用のスルーホールをショートさせてブートローダーを起動し、以下のページからダウンロードできるVIAのファームウェアQMK ToolboxでYMD09にインストールした。

caniusevia.com

あとは、以下のページを読みつつ設定を進めた。

salicylic-acid3.hatenablog.com

salicylic-acid3.hatenablog.com

設定をしていく中で一つ問題が生じた。レイヤーのインジケータとしてRGB LEDを使いたかった(レイヤー1だったら青く光らせるなど)のだが、VIA、Remapでは設定不可だった。ググったところ、QMKの設定を変更すれば対応できるとのことだった。QMKの設定変更というと難しく感じるが、QMKの内部機能に手を入れる必要はない。設定ファイルを編集すればよいだけだ。具体的には、VIAが有効になっているファームウェアのkeymap.cを編集すればよい。詳細は下記ページに譲るが、レイヤー変更のたびに呼ばれる関数 layer_state_set_userの中で、LEDカラー設定関数rgblight_set_layer_stateを呼ぶ。上記設定の場合、LED(正確にはRGBLIGHT_LAYER_SEGMENTSで指定したLED)の色以外はVIAで(すなわちファームウェアの再インストールなしに)設定できるので、VIAによる柔軟性を維持できる。

beta.docs.qmk.fm

ymotongpoo.hatenablog.com

参考のため、編集したファイルを以下のgistにおいておく。 qmk_firmware/keyboards/ymdk/ymd09/keymaps以下に新しくディレクトリを作成し、以下のファイルを置いて書き込めば使用可能だ。デフォルトだとLEDがまぶしすぎたため、RGBLIGHT_LIMIT_VAL を128に設定している。

ymd09

言うまでもないが、マクロパッドはAutoHotkeyと親和性が高い。 マクロパッドを買うような人は既にインストールしていることと思うが、念のため宣伝しておく。

www.autohotkey.com

参考

f:id:estshorter:20210323202539j:plain 画像:https://mechboards.co.uk/shop/kits/ymd09-macropad/