v4.2.2

v4.2.2 voegt PNG-afbeeldingsondersteuning toe (decoderen/coderen via lodepng), een tabelgestuurde loader voor ingebouwde modellen, Portenta OV5640-ondersteuning, een Edge-Impulse TensorFlow-update en ulab 4.0. De RPC CAN-configuratie-API is gewijzigd — lees de baanbrekende wijzigingen hieronder.

Hoogtepunten

  • PNG-ondersteuningImage.to_png(), image.PNG en het lezen/schrijven van PNG-bestanden.

  • tf.load_builtin_model() — tabelgestuurde ingebouwde modellen die tijdens het bouwen kunnen worden vervangen of toegevoegd.

  • Portenta H7 — OV5640-cameraondersteuning (met autofocus).

  • MicroPython/ulab — ulab bijgewerkt naar 4.0.0.

  • Baanbrekend: de RPC CAN-configuratie-API is gewijzigd — zie de baanbrekende wijzigingen.

Nieuwe functies

  • PNG-afbeeldingsformaat — een nieuwe Image.to_png()-methode, een image.PNG / PIXFORMAT_PNG-constante, het laden/opslaan van PNG-bestanden (lezen/schrijven van .png) en PNG-uitvoer bij image.to()-conversies, via de geïntegreerde lodepng-codec.

  • tf.load_builtin_model(path) — laadt een in de firmware ingebouwd model en retourneert een (labels, net)-tuple; ingebouwde modellen zijn nu tabelgestuurd zodat ze tijdens het bouwen kunnen worden vervangen of toegevoegd.

Overige wijzigingen en verbeteringen

  • TensorFlow / Edge Impulse — de meegeleverde inferentiebibliotheek is bijgewerkt naar Edge Impulse ei-V2.5.0, het person_detection-model is verplaatst naar de tabel met ingebouwde modellen, en ontbrekende TensorFlow-operatoren zijn toegevoegd aan alle Cortex-M0+/M4/M7/M55-builds zodat meer Edge Impulse-modellen draaien.

  • ulab bijgewerkt naar 4.0.0.

  • Het openen van de virtuele USB-seriële poort op 1200 bps activeert nu een Arduino-achtige touch-reset naar de bootloader.

  • De firmware van de WINC1500 WiFi-module is bijgewerkt naar 19.7.6 (met het updater-script), en deze rapporteert nu de daadwerkelijke versie van de host-driver.

  • De RP2-poort drukt nu “MPY: soft reboot” af en heeft UART init/de-init gekregen.

Bugfixes

  • De grootte van de ruwe framebuffer van de Arduino Nano RP2040 Connect en de USB Product ID van de Arduino Nicla Vision zijn gecorrigeerd (correcte USB-enumeratie).

Hardware- en boardondersteuning

  • Arduino Portenta H7 — OV5640-cameraondersteuning (met autofocus); de GC2145 is uitgeschakeld op de Portenta.

  • Arduino Nano RP2040 Connect — geheugenconfiguratie en sjablonen voor een vers bestandssysteem.

  • WiFi Shield (WINC1500) — firmware bijgewerkt naar 19.7.6.

Baanbrekende API-wijzigingen

Voor gebruikers zichtbare API-breuken tussen v4.2.1 en v4.2.2. Reikwijdte: Python C-modules in modules/ en Python-bibliotheken in scripts/libraries/.

Elke wijziging is voorzien van een label dat de impact aangeeft:

  • minor — beperkte API; treft alleen scripts die deze gebruikten.

  • behavior — dezelfde API, andere resultaten; controleer afgestemde scripts opnieuw.

De wijzigingen zijn in die volgorde gegroepeerd op impact. Elke commit-hash verwijst naar de bijbehorende diff op GitHub.

RPC CAN-configuratie-API (minor)

In de rpc-bibliotheek is het CAN-keyword-argument sampling_point van rpc_can_master / rpc_can_slave hernoemd naar sample_point (om overeen te komen met upstream MicroPython), en is de handmatige helper voor CAN-bittiming verwijderd — de CAN-bus wordt nu geconfigureerd via CAN(..., baudrate=, sample_point=). Scripts die sampling_point doorgaven of die op de oude bittiming-berekening vertrouwden, moeten worden bijgewerkt.

Commits: b565eca58, 06d716986

image.format() en gecomprimeerde afbeeldingen (behavior)

Met het uniforme pad voor gecomprimeerde afbeeldingen dat voor PNG is toegevoegd, retourneert image.format() nu PIXFORMAT_INVALID voor een onbekend formaat, en omvat het indexeren / itereren / afdrukken van gecomprimeerde afbeeldingen nu naast JPEG ook PNG. Code die de vorige retourwaarde voor onbekende formaten inspecteerde, moet opnieuw worden gecontroleerd.

Commit: f12a4659c

Migratiechecklist

Voor een schone overstap naar v4.2.2: hernoem RPC CAN sampling_pointsample_point en verwijder eventuele handmatige instellingen voor CAN-bittiming (de RPC CAN-wijziging), en controleer opnieuw alle code die image.format() inspecteerde op onbekende formaten (de format()-wijziging).