v4.2.2

v4.2.2 では PNG画像サポート(lodepng によるデコード/エンコード)、テーブル駆動型のビルトインモデルローダー、Portenta OV5640 サポート、Edge Impulse の TensorFlow 更新、ulab 4.0 が追加されました。RPC CAN 構成 API が変更されています — 以下の破壊的変更をお読みください。

ハイライト

  • PNGサポートImage.to_png()image.PNG、および PNG ファイルの読み書き。

  • tf.load_builtin_model() — ビルド時に置き換えや追加が可能なテーブル駆動型のビルトインモデル。

  • Portenta H7 — OV5640 カメラサポート(オートフォーカス対応)。

  • MicroPython/ulab — ulab を 4.0.0 に更新。

  • 破壊的変更: RPC CAN 構成 API が変更されました — 破壊的変更を参照してください。

新機能

  • PNG画像フォーマット — 統合された lodepng コーデックにより、新しい Image.to_png() メソッド、image.PNG / PIXFORMAT_PNG 定数、PNG ファイルのロード/セーブ(.png の読み書き)、および image.to() 変換での PNG 出力が追加されました。

  • tf.load_builtin_model(path) — ファームウェアに組み込まれたモデルをロードし、(labels, net) タプルを返します。ビルトインモデルはテーブル駆動になったため、ビルド時に置き換えや追加ができます。

その他の変更と改善

  • TensorFlow / Edge Impulse — バンドルされた推論ライブラリが Edge Impulse ei-V2.5.0 に更新され、person_detection モデルがビルトインモデルテーブルに移動し、すべての Cortex-M0+/M4/M7/M55 ビルドで不足していた TensorFlow 演算子が追加されたため、より多くの Edge Impulse モデルが動作します。

  • ulab を 4.0.0 に更新。

  • USB 仮想シリアルポートを 1200 bps で開くと、Arduino スタイルのタッチリセットによりブートローダーに入るようになりました。

  • WINC1500 WiFi モジュールのファームウェアが(アップデータースクリプトとともに)19.7.6 に更新され、実際のホストドライバーのバージョンを報告するようになりました。

  • RP2 ポートが "MPY: soft reboot" を表示するようになり、UART の初期化/終了処理が追加されました。

バグ修正

  • Arduino Nano RP2040 Connect の生フレームバッファサイズと、Arduino Nicla Vision の USB プロダクト ID を修正しました(正しい USB 列挙)。

ハードウェアとボードのサポート

  • Arduino Portenta H7 — OV5640 カメラサポート(オートフォーカス対応)。Portenta では GC2145 は無効化されています。

  • Arduino Nano RP2040 Connect — メモリ構成と新規ファイルシステムのテンプレート。

  • WiFi Shield (WINC1500) — ファームウェアを 19.7.6 に更新。

破壊的 API 変更

v4.2.1 と v4.2.2 の間でユーザーに見える API 破壊。範囲: modules/ 内の Python C モジュールと scripts/libraries/ 内の Python ライブラリ。

各変更には影響度のタグが付いています:

  • minor — 狭い API。使用していたスクリプトにのみ影響します。

  • behavior — 同じ API でも結果が異なる。調整済みスクリプトを再確認してください。

変更はこの順序で影響度別にグループ化されています。各コミットハッシュは GitHub 上の差分にリンクしています。

RPC CAN 構成 API (minor)

rpc ライブラリにおいて、rpc_can_master / rpc_can_slave の CAN キーワード引数 sampling_point が(アップストリームの MicroPython に合わせて)sample_point に名前変更され、手動の CAN ビットタイミングヘルパーが削除されました — CAN バスは CAN(..., baudrate=, sample_point=) で構成するようになりました。sampling_point を渡していた、または古いビットタイミング計算に依存していたスクリプトは更新が必要です。

コミット: b565eca58, 06d716986

image.format() と圧縮画像 (behavior)

PNG のために追加された統合圧縮画像パスにより、image.format() は未知のフォーマットに対して PIXFORMAT_INVALID を返すようになり、圧縮画像のインデックス/反復/表示が JPEG だけでなく PNG にも対応するようになりました。未知のフォーマットに対する以前の戻り値を検査していたコードは再確認してください。

コミット: f12a4659c

移行チェックリスト

v4.2.2 へのクリーンな移植のために: RPC CAN の sampling_pointsample_point への名前変更を行い、手動の CAN ビットタイミング設定を削除し(RPC CAN の変更)、未知のフォーマットに対して image.format() を検査していたコードを再確認してください(format() の変更)。