Diary of Engineering

@edf_player

自作キーボード製作記 ~ファームウェア編~

自作キーボード第4回、今回は製作しているキーボードのファームウェアをQMK firmwareというツールを用いて作っていく。

 

QMK firmwareは以下のページのtutorial->setupの部分の説明に従ってインストールすることができる。QMK MSYSというコマンドツールがインストールされるので"4"の項目まで行えば環境の構築は完了。

docs.qmk.fm

 

./util/new_keyboard.sh

上のコマンドで新しくキーボードのファームウェアを一から作ることもできるが、ファイル構成やキーマップなどを変えることを考えるとすでにあるファームウェアをコピーしてキーマップを書き換えるの方が断然早そうなのでそうすることにした。

 

QMK MSYS上でqmk farmwareをインストールしたフォルダまでカレントディレクトリを移動させてから

qmk setup

でセットアップを開始。

 

製作したキーボードのファームウェアを作成する

qmk firmwareで作られるファームウェアのファイルの構成は以下のようになっている

<keyboard_name>(folder)

  ∟keymaps(folder)

     ∟<keymaps_name>(folder)

        ∟keymap.c

  ∟config.h

  ∟<keyboard_name>.c

  ∟<keyboard_name>.h

  ∟matrix.h

 

赤字で示しているmatrix.cはqmk firmwareにある他のfirmwareとは異なり、今回特別に使用しているプログラムである。以前の記事で書いた倍マトリックスを行うためのソースファイルである。

 

config.hではキーボードマトリクスに使用しているピンの指定やLEDに関する設定などを指定する。

f:id:edf_player:20210908000514p:plain

config.h

<keyboard_name>.c は <keyboard_name>.hをインクルードしているだけなので特にいじらず、 <keyboard_name>.hでは製作したキーマトリックス通りのキーが認識されるよう行列を指定する。

f:id:edf_player:20210908002450p:plain

<keyboard_name>.h

keymap.cは<keyboard_name>.hで行列となったキーの番号とキー入力を対応させる行列を入力したファイルである。

f:id:edf_player:20210908003120p:plain

keymap.c

上記のファイルたちを画像の通り104キーに対応するよう書き換えることでファームウェアを作成した。

 

これらのファイルをqmk firmwareをインストールしたフォルダ、\qmk_firmware\keyboards\<keybord_name>

に格納し、QMK MSYS上で

qmk compile -kb <keyboard> -km <keymap>

のコマンドを実行。

もしすでに製作したキーボードのpro microと接続されているのであれば

qmk flash -kb <my_keyboard> -km <my_keymap>

このコマンドで書き込みも行うことができる。

 

 

これでキー通りの入力ができていれば完成。

お疲れさまでした。

 

[追記]

最後まで読んでいただきありがとうございました

ここで紹介しました104キーのフルキーボードのKiCADデータ、qmk firmwareデータ

はご要望に応じて公開いたします。ご希望の方は下記TwitterのDMまでご連絡いただければと思います

twitter.com