v4.2.2

v4.2.2 lägger till stöd för PNG-bilder (avkodning/kodning via lodepng), en tabelldriven inläsare för inbyggda modeller, OV5640-stöd för Portenta, en uppdatering av Edge-Impulse TensorFlow samt ulab 4.0. Konfigurations-API:t för RPC CAN ändrades — läs om de brytande ändringarna nedan.

Höjdpunkter

  • PNG-stödImage.to_png(), image.PNG och läsning/skrivning av PNG-filer.

  • tf.load_builtin_model() — tabelldrivna inbyggda modeller som kan ersättas eller läggas till vid bygget.

  • Portenta H7 — stöd för OV5640-kameran (med autofokus).

  • MicroPython/ulab — ulab uppdaterad till 4.0.0.

  • Brytande: konfigurations-API:t för RPC CAN ändrades — se de brytande ändringarna.

Nya funktioner

  • PNG-bildformat — en ny metod Image.to_png(), en konstant image.PNG / PIXFORMAT_PNG, in- och utläsning av PNG-filer (läs/skriv .png) samt PNG-utdata i konverteringar med image.to(), via den integrerade lodepng-codecen.

  • tf.load_builtin_model(path) — läser in en inbyggd modell ur den fasta programvaran och returnerar en (labels, net)-tupel; inbyggda modeller är nu tabelldrivna så att de kan ersättas eller läggas till vid bygget.

Övriga ändringar och förbättringar

  • TensorFlow / Edge Impulse — det medföljande inferensbiblioteket uppdaterades till Edge Impulse ei-V2.5.0, modellen person_detection flyttades in i tabellen över inbyggda modeller, och saknade TensorFlow-operatorer lades till i samtliga Cortex-M0+/M4/M7/M55-byggen så att fler Edge Impulse-modeller fungerar.

  • ulab uppdaterad till 4.0.0.

  • Att öppna den virtuella USB-serieporten i 1200 bps utlöser nu en återställning till startladdaren i Arduino-stil.

  • WINC1500:s WiFi-moduls fasta programvara uppdaterades till 19.7.6 (med uppdateringsskriptet), och den rapporterar nu den faktiska versionen av värddrivrutinen.

  • RP2-porten skriver ut ”MPY: soft reboot” och fick stöd för UART init/de-init.

Buggfixar

  • Rättade storleken på den råa bildbufferten för Arduino Nano RP2040 Connect samt USB-produkt-ID:t för Arduino Nicla Vision (korrekt USB-uppräkning).

Maskinvaru- och kortstöd

  • Arduino Portenta H7 — stöd för OV5640-kameran (med autofokus); GC2145 är inaktiverad på Portenta.

  • Arduino Nano RP2040 Connect — minneskonfiguration och mallar för ett nytt filsystem.

  • WiFi Shield (WINC1500) — fast programvara uppdaterad till 19.7.6.

Brytande API-ändringar

Användarsynliga API-brott mellan v4.2.1 och v4.2.2. Omfattning: Python C-moduler i modules/ och Python-bibliotek i scripts/libraries/.

Varje ändring är märkt med sin påverkan:

  • minor — smalt API; påverkar bara skript som använde det.

  • behavior — samma API, andra resultat; kontrollera trimmade skript på nytt.

Ändringarna är grupperade efter påverkan i den ordningen. Varje commit-hash länkar till sin diff på GitHub.

Konfigurations-API för RPC CAN (minor)

I biblioteket rpc döptes nyckelordsargumentet sampling_point för CAN i rpc_can_master / rpc_can_slave om till sample_point (för att matcha MicroPython uppströms), och hjälpfunktionen för manuell CAN-bittiming togs bort — CAN-bussen konfigureras nu via CAN(..., baudrate=, sample_point=). Skript som skickade sampling_point eller förlitade sig på den gamla bittimingberäkningen måste uppdateras.

Commits: b565eca58, 06d716986

image.format() och komprimerade bilder (behavior)

Med den enhetliga vägen för komprimerade bilder som lades till för PNG returnerar image.format() nu PIXFORMAT_INVALID för ett okänt format, och indexering/iteration/utskrift av komprimerade bilder omfattar nu PNG såväl som JPEG. Kod som inspekterade det tidigare returvärdet för okända format bör kontrolleras på nytt.

Commit: f12a4659c

Migreringschecklista

För en ren övergång till v4.2.2: byt namn på RPC CAN sampling_pointsample_point och ta bort eventuell manuell uppsättning av CAN-bittiming (RPC CAN-ändringen), och kontrollera all kod som inspekterade image.format() för okända format (format()-ändringen).