CircuitPythonが出てるじゃんっていうのは一個前の記事に書きましたが、預かっているサンプル品に実際に入れてみたのでテストします。なお、サンプル品は製品版とは異なる古いリビジョンのため、製品版とは結果が異なる可能性がある点はあらかじめご了承ください。また、前の記事にも書きましたが、Pico2サンプル品はたぶんお見せできないデザインのため、この記事にも登場しません。ただ、この記事でのテストでは、拡張ボードの接続の都合上どのみち見えません。許せ。
ストレージがいっぱい
まず動かし始めてすぐに気づいたのは、ストレージ領域がめちゃくちゃ増えたところ。CircuitPythonがシステムに1MB程度持っていくようで、Picoでは2MB中1MBをユーザーが使えるところ、Pico2は4MB中3.1MBもユーザーが使えます。これは非常に嬉しい。PicoWでは500KBとか言う鬼のような容量で頑張らないといけなかったので、今後のPico2W登場が待ち遠しいところです。
ちょっと画像をおいたらおしまいだとか、Picoでは日本語フォントをおいたら他に何もできないので実施無理みたいな状態だったのが、もしかすると改善できそうな予感ですね。
RAMもいっぱいなので、RAMをたくさん使うプロジェクトで試す
Pico2ではRAMも倍増しています。おそらくこちらもCircuitPythonの取り分が一定数あるとすれば、結構な量のRAMが使えるようになっていそうです。作品の中で一番RAM残量に苦労していた「田園都市線の列車走行位置表示機(LCD版)」をPicoとPico2にそれぞれ用意して、RAMの残量を計測してみました。
まず、表示機はPicoW向けに書いており、Pico/Pico2とも無線LANがないため、WIZnetのEthernet HATを使用して有線LANに対応するように書き換えました。WIZnetのCircuitPythonのライブラリではHTTPS通信ができないようなので、自宅サーバーのURLをローカルのIPアドレスでたたいて対応しています。
物理結線はこのとおり。Display HAT MiniをuHAT Porter Picoに乗せていたので、普通にピンを付けたPico2で試すには、PimoroniのPico OmnibusにuHAT Porter Picoのピンソケット取り付けバージョンを乗せて、無理やりHATを積む必要がありました。また、WIZnetのHATは違うピン番号を使ってSPI1に接続する必要があったため、ジャンパピンを使って配線した結果、次のようなカオスな物体になりました。
さて、起動をした後のメインループ内で、毎分メモリの残量を表示するようにして、平均的なメモリ残量を取得しました。結果は以下の通りで、Picoが
残り35KB、Pico2が残り320KBほどとなり、10倍近いRAMが余るようになりました。素晴らしすぎる……なにかの間違いかと思って引き算をしたら、CircuitPython使用分に大きな差はなさそうだったので、こんなもんな気がします。ふーむ、ますますPico2Wが待ち遠しくなりました。
RAM容量-RAM残量=CircuitPython使用分 Pico2: 520,000 - 322,656 = 197,344 Pico : 264,000 - 35,568 = 228,432
SPIの速度が早い
SPIの速度が早くなったと言うか、CPUが早くなったからと言うか、どちらが正しいかはわかりませんが、とにかくSPIが早くなったようで、ディスプレイの描画速度が目視でわかるくらい変化しています。
比較動画がこちら。左がPico、右がPico2です。前半が通常速度、後半に10%まで遅くしたリプレイをしています。描画完了までに時間がかかっているのは、ネットワークの都合(DHCP取得待ち)とかがあるかも知れませんが、ここもSPIが早くてとか処理が早くなっててとかがあれば、やはりPico2のほうが早くなっているという可能性もあるかもしれません。そこまでは見ていない。
消費電力は変わらなかった
一応消費電力も見てみましたが、何もしてないメインループ中は3mAしか変わらず(Pico2のほうが低い)、ほぼ誤差となりました。もっと常にディスプレイをしばいているとか、負荷をかけた状態を見るべきのような気もしますが、そこまで気合も出ないので今日のところは許してほしい(いま1時45分や……なんでこんな時間に書いてるんや)。