見出し画像

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のコネクタを乗せる部分だけ基盤をカットする形で対応してる。ノギスがないので全く同じ厚みかは不明。

縦横はほぼ同じ
基盤自体の厚みはErite Piの方がある
左がErite Pi,右がPro Micro。Erite PiはUSBコネクタ部分の基盤が切り取られている

ファームビルド環境構築

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利用ガイドに書いてありました。

Can I use this on just one half of a split keyboard and use a Pro Micro on the other half?
No, you can not mix the Elite-Pi with a non-RP2040 controller like the Pro Micro or Elite-C.
However, another RP2040 controller can be used with it.

https://docs.keeb.io/elite-pi-guide#additional-info

スプリットキーボードの片方だけにこれを使い、もう片方にはプロマイクロを使うことはできますか?
いいえ、Elite-PiとPro MicroやElite-CのようなRP2040以外のコントローラを混ぜることはできません。
ただし、別のRP2040コントローラーを併用することは可能です。

Deeplによる翻訳

ProMicro互換のRP2040コントローラって他にどんなものがあるのでしょうか。色々試してみたいですね。

追記:これめっちゃかっこよくないですか?Keyball39これで作りたいな。
https://www.nullbits.co/bit-c-pro/

参考サイト

この記事が気に入ったらサポートをしてみませんか?