ProMicroをPICO Microに置き換えよう(Windows11環境)
最初に
sekigonさん設計によるPICO Microは、ProMicroのフットプリント互換のRP2040ブレークアウトボードです。採用しているMCUの性能が圧倒的に高いため、これまで以上に凝ったことが出来ます。 また、5V仕様であるRGBシリアルLEDを3.3V信号で動かすためのVCC出力など痒い所に手が届く設計も素晴らしいです。
すでにsekigonさんはQMKのRP2040対応を非公式に実装してくれているので、各キットのProMicroからの置き換えは容易になっています。
PICO用QMKを開発するためには、まずsekigonさんの下記のノートを読みます。それほど難しくありません。
なお、わたしの方針は以下の通りです。
QMKを使いたい。自分のキットのハード構成に合わせていろいろと作り込んでいるので、他のファームに移すのは面倒
WindowsでのQMKの標準的環境と思われるQMK MSYSを使用。面倒はいや
とにかくできるだけ面倒は避ける
基本的に上述のsekigonさんのノート通りにやっていきます。ここではWin特有の部分のみ触れます。
picotoolのビルド
picotoolのビルドにはlibusb1.0のアーカイブが必要
DownloadsからLatest Windows Binariesをダウンロードして展開
ビルドのためにDeveloper Command Propmpt for VS 2019を起動(環境がない場合は別途インストール)
picotoolのディレクトリに入って
mkdir build
cd build
set LIBUSB_ROOT=<libusbの展開先>\include\libusb-1.0;<libusbの展開先>\VS2019\MS32\static
cmake -G "NMake Makefiles" ..
nmake
ビルドしたpicotool.exeをパスの通っているところに置きます。わたしは/usr/binに置いちゃいましたが、各自ポリシーに合わせてください。
また、冒頭で解凍したlibusb1.0のexamplesディレクトリ中にあるlistdevs.exeを同じくパスの通っているところに置いてください。
picotoolの使用にあたってzadigでドライバを選択する必要があります。PICO Microを接続した状態でzadigを起動し、デバイス選択欄からRP2 Boot(Interface 1)を選び、ドライバをWinUSBに変更。
RP2040対応非公式QMKの使い方
sekigonさんのrp2040ブランチをクローンします。
表示されるバージョンは執筆時点で以下のものです。
QMK Firmware bmp-0.9.5
基本的にProMicroベースのキーボードであれば、そのままのコードでPICO Micro用にビルド可能です。
PICO用(RP2040用)にビルドするためには、makeコマンドにCTPIM=yesを加えてあげるだけです。ピン設定などは自動でProMicro→PICO Microに変換してくれます。
(例)cassette42をviaキーマップ指定でPICO用にビルドし、uf2ファイルを出力
make cassette42:via:uf2 CTPIM=yes
(例)cassette42をviaキーマップ指定でPICO用にビルドし、PICOに書き込む
make cassette42:via:flash CTPIM=yes
Windows(QMK MSYS)では後者のflash指定の際にエラーとなります。lsusbがないためです。
WSLならありそうですが、msys系だと簡単には入りそうにないです。解決策としては、先にパスを通したlistdevs.exeが必要な機能を持っていますので、lsusbの替わりとしてこれを使うようにします。
export LSUSB=listdevs.exe
以上でビルドから書き込みまで正常に出来ることを確認しています。
sekigonさんに感謝!