WaveShareが提供するPocketTerm35のキーボードコントローラはRP2040である
ファームウェアをカスタマイズすることで任意のキーマップを実装できる
そこで、サポートに、ファームウェアのソースを公開してほしいと連絡すると、Circuit Pythonだから、code.pyを変更すればキーマップをカスタマイズできるよ、といわれた
なるほど、それならばそれでやってみよう
Circuit Pythonのデバイスは、CIRCUITPYというUSBマスストレージとターミナルにつながるUSBシリアルデバイスを提供する
なので、ホスト端末からは CIRCUITPYが見えるはずだが、PocketTerm35には存在していない
サポート曰く「(RP2040の)リセットボタンを押せばみえるよ」とのことだが、リセットを押したとて出てこない
のちにわかるのだが、boot.pyのなかでCIRCUITPYを無効化しているので、基本的に出てこないのだ
import storage sotrage.disable_usb_drive()
ではどうするのか
いい感じにRESETボタンを連打する
これしかないので、いい感じにRESETボタンを連打してください
この問題についても、改造の過程で解消していきたいと思う
Circuit Pythonの改造は比較的難易度は低いが、不完全なコードをデプロイすると PocketTerm35のキーボードが一切効かないなどということになりかねないリスクがある
なので、必ず以下の準備をする
できれば以下のものもあるとよい
不便であると感じているのは以下の点
の なので、以下のようにキーマップを変更することにする
デフォルトのファームウェアとして入っている Circuit Pythonは Adafruit hidを利用しているが、なぜかhidという名前になっている
互換性を鑑みて adafruit_hid と入れ替えたい
Circuit Python LibirariesからVersion 10.x用のライブラリを取得し、中にある adafruit_hid のフォルダを丸ごと CIRCUITPY/libの下にコピーする
hidは消してしまっても構わない
hid_gamepad.pyはAdafruit CircuitPython_HIDのexamplesの中にある
これを同じく CIRCUITPY/libにコピーしておく