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-ondersteuning —
Image.to_png(),image.PNGen 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, eenimage.PNG/PIXFORMAT_PNG-constante, het laden/opslaan van PNG-bestanden (lezen/schrijven van.png) en PNG-uitvoer bijimage.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.
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_point → sample_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).