5.Micropython for Pico2W
公開情報からの改造が若干あります
交換した pico2Wはクリーンな状態なので micropython を入れる
公式の github
https://github.com/clockworkpi/PicoCalc
の Bin/MicroPython から、picocalc 用ドライバを組み込んである micropython のファームをインストール。
https://github.com/zenodante/PicoCalc-micropython-driver
picocalcには2つのUSBコネクタが上下に並んでいる不思議な設計。
電源用の USB typeC と ラズパイ Pico 本体実装の microUSB コネクタ。
ファーム書き込みは、Pico本体の電源投入時に基板ボタンを押す必要があるので以下の手順にしてる。
・PicoのmicroUSB側にケーブルをつなぐ。 本体の USB-C には何もつながない。
・本体をひっくり返して、基板のボタンを押しながら、USBケーブルをPCにつなぐ。(これで Picoに電源が入る)
冷静に考えると、テスト用の複数のファームをあらかじめSDカードに書いておき、切り替えつつテストした方が時短になった気がするが、そのうちやろう。
micropython を動かす目標は「jpegデコーダを組み込んで連番画像を動画プレイヤー風に表示する」に設定。
それを前提に作業していったのだが。
ハマリ1
picocalcのキーボードがショボいのでプログラムを編集するのは厳しい。
従来の pico 同様に、PC上の開発ツール(Thonny)を使うことにした。
ただ電源が2系統あるので、ハングアップしたときの手間が面倒。
ファイル書き込みで頻繁にハングアップするのが厄介。
手順
・microUSBをPCから外し、picocalcの電源をOFFする。(完全電源OFF)
・picocalcの電源をONする。(システム全体が起動)
・microUSBをPCにつなぎ、Thonnyを起動して認識させる
より確実な手順
・microUSBをPCから外し、picocalcの電源をOFFする。
・microUSBをPCにつなぎ、Thonnyを起動して認識させる(Picoだけが動作)
・picocalcの電源をONする(LCD, SDなどが動作)
・Thonny の Stop/Restart ボタンで認識させる。(最初の起動時は LCD ドライバなどがエラーで起動してないのでRestart必要)
ハマリ2
LCDドライバは画面モードにRGB565を選択できるが、初回に選択しないとならない。(framebufferが確保できないし、そもそも Pico2 じゃないとメモリ不足)
画面モードは boot.py で設定してるがファイルシステム上見当たらない。
ファームウェアに内蔵してるので、micropythonをソースからビルドしてboot.py を普通にROMFSに置いて boot.py を書き換えた
ハマリ3
RGB565モードにするとターミナル画面の文字が崩れる
ドライバのソースを見ながら悩んだ結果、ドライバを改造する必要があると判明。
ハマリ4
環境依存かもしれないが、書いてある cmake を使うビルド手順ではうまく行かなかった。
親ディレクトリに以下の micropython.cmake を作成して、 make した
include(${CMAKE_CURRENT_LIST_DIR}/picocalcdisplay/micropython.cmake)
include(${CMAKE_CURRENT_LIST_DIR}/vtterminal/micropython.cmake)
make USER_C_MODULES="$HOME/PicoCalc-micropython-driver/micropython.cmake" BOARD=RPI_PICO2_W