ProMicroの代替としてElitePiを利用するメモ(QMK firmware)
前提
キーボードのファームウェアを書き込むコントローラボードの話。
対象読者
黒いコンソール画面にはさして抵抗はない
キーボードのファームウェアとか常識はわからない
ProMicro前提のキーボードを互換ボードで作りたくなった
実行環境
今回はサリチル酸さんが販売しているGuide68のビルドにElitePiを利用する。もともとビルドガイドで推奨されているのはProMicro。(無線対応しない前提)
基本的にQMK firmwareのデバイスは全部手順同じと思われ。コントローラボードもElitePiじゃなくて他のProMicro互換コントローラでも参考になると思います。たぶん。
ファームのビルドにはQMKのCLIツールを使う。
今回Windows11+WSL2(Ubuntu20)で実行してるけどCLIツールならMacでもLinuxでも対して手順変わらないと思われ。
今回やること
ProMicro用に作成されたファームをElitePi用にビルドしなおす
ビルドしたファームウェアをコントローラボードに書き込む
外観比較
縦横の寸法は全く同じ。
microUSBよりもTypeCの方がそもそも厚みがある問題についてはTypeCのコネクタを乗せる部分だけ基盤をカットする形で対応してる。ノギスがないので全く同じ厚みかは不明。
ファームビルド環境構築
QMK CLIツールのインストール
gitとPython3(pip)のインストール
(インストール済であれば飛ばしてOK)ここのガイド見て各環境に適した方法でインストールする
QMKのインストール
python3 -m pip install --user qmk
ubuntuはpipでインストールしたツールのパスが通らないバグがあるらしいのでqmkコマンドが通らなそうであれば以下のような感じでパスを通す
echo 'PATH="$HOME/.local/bin:$PATH"' >> $HOME/.bashrc && source $HOME/.bashrc
QMKのセットアップ
qmk setup
なにか聞かれたら適宜返事する。
これで準備完了。
ファームコンバータの実行
ここにガイドがある。多分前章からのコンテクストがあってここだけ読んでもよくわからない。というか多分不親切。→ちゃんとチュートリアル序盤に書いてあった。読もうね。
qmk flash -c -kb keebio/bdn9/rev1 -km default -e CONVERT_TO=proton_c
ガイドを読むと例えばこんな感じだよ、という案内がある。私は`keebio/bdn9/rev1`がどこから来たの?と思った。
答えはQMKのセットアップの時に作られた`qmk_firmware`というディレクトリの中を見る。
`qmk_firmware/keyboards`の中にキーボードのファームウェアのパッケージがずらずらと入っている。前述のqmkコマンドで指定しているパスは`qmk_firmware/keyboards`以下の相対パスが指定されることになるっぽい。
つまり今回は以下のようなコマンドを流す。
guide68のファームをelite_pi向けにビルドする
qmk compile -c -kb salicylic_acid3/guide68 -km default -e CONVERT_TO=elite_pi
※20230507 コマンド修正
すると多分デフォルトで`qmk_firmware/.build`以下に`salicylic_acid3_guide68_default_elite_pi.uf2`というファイルができる。今回これを使う。
以下のリポジトリで管理されているぽく、ファーム開発者はコントリビュータとしてファームのPRを出してるぽい。たぶん。(きっとQMKのガイドのどこかに書いてある)
ElitePiへファームの書き込み
前章で記載したコマンドに`flash`とか入っているように、ファームのビルドが完了した後何やら書込み待ちの体制になる。私の環境がWSLな為か(あまりよくわかってないんだけど)、このフローではデバイス(ElitePi)が発見できないので一旦Ctrl+Cで終わらせる。※flashコマンドではなくbuildコマンドで行うとファームのビルドしか行われない
PCとElitePiをケーブルで接続する
多分RP2040として認識される
ElitePi(RP2040)へファームを書き込む
先ほど作ったuf2ファイルをRP2040のドライブへドラッグアンドドロップする。
するとPCからUSBドライブが外されたようなアラートが鳴り、ドライブ一覧からRP2040が消える。これでOK。
追記:キーマップのカスタマイズ
ElitePiやるぞって時に完全に意識できてなかったのですが、コントローラにインストールされるファームのフォーマットが違うのでREMAPはおろかQMK toolsでもキーマップの変更はできません…。
何をやる必要があるかというと始めにコントローラボードへファームをインストールしたようにファームを書き込み直す必要がある。
コントローラのリセット
まずコントローラボードに物理的にアクセスする必要がある。
BOOT SELボタンのあるキットであればBOOT SELボタンを押しながらUSBに接続、接続後にBOOT SELボタンを2回押す。そうするとボードがリセットされてPCにドライブとして再度認識される。
ファームの再書き込み
ファームのキーマップを書き換え、ビルドし直してまたドラッグアンドドロップ。
(ファームの書き換えについては元気があるときに書きます、多分雰囲気でいける!)
余談
今回Guide68を組み立てるにあたってなんと私ってば、ProMicroとElitePiと1個ずつコントローラボードを購入したりしました。ProMicroの方が安いので、片手だけTypeCになれば良いかなって。
駄目らしいです。
丁寧にElitePi利用ガイドに書いてありました。
ProMicro互換のRP2040コントローラって他にどんなものがあるのでしょうか。色々試してみたいですね。
追記:これめっちゃかっこよくないですか?Keyball39これで作りたいな。
https://www.nullbits.co/bit-c-pro/
参考サイト
ElitePi利用ガイド
https://docs.keeb.io/elite-pi-guideQMK firmware
https://docs.qmk.fm/#/