v4.1.0

v4.1.0 biedt volledige ondersteuning voor de Arduino Nano RP2040 Connect / Raspberry Pi Pico (WiFi, Bluetooth, cameraopname, jump-to-bootloader), directe JPEG-afbeeldingsdecodering, een ingevroren urequests HTTP-client, ondersteuning voor de OV7670-sensor en gestandaardiseerde rapportage van sensorfouten. De WiFi-API en sensor-excepties zijn gewijzigd — lees de breaking changes hieronder.

Hoogtepunten

  • RP2-boards — de Arduino Nano RP2040 Connect / Pico krijgen WiFi (NINA-W10), Bluetooth (NimBLE), camera-/DCMI-opname en jump-to-bootloader.

  • JPEG-decodering — afbeeldingsbewerkingen accepteren nu rechtstreeks gecomprimeerde JPEG-afbeeldingen.

  • urequests HTTP-client ingevroren in de firmware.

  • Ondersteuning voor de OV7670 camerasensor.

  • Breaking: de NINA/RP2 WiFi-API is herzien en diverse sensorfouten genereren nu een RuntimeError — zie de breaking changes.

Nieuwe functies

  • Arduino Nano RP2040 Connect / Raspberry Pi Pico — WiFi via de NINA-W10 network-driver, Bluetooth/NimBLE, cameraopname (DCMI PIO-programma) en een jump-to-bootloader-commando.

  • JPEG-afbeeldingsdecoderingfind_apriltags(), lcd.display(), tv.display() en verwante afbeeldingsbewerkingen accepteren nu rechtstreeks gecomprimeerde JPEG-afbeeldingen (decoderen naar binair/grijswaarden/RGB565).

  • urequests — de HTTP-client (GET/POST/PUT/…) is nu ingevroren op de OpenMV 4 / 4 Plus / Portenta / Nicla, met een http_post.py-voorbeeld.

  • ble_advertising-hulpbibliotheek, ingevroren op de Nano RP2040 Connect.

  • Host/debugpyopenmv.reset_to_bl() en een nieuw USBDBG_SYS_RESET_TO_BL (0x0E)-commando om in de bootloader te resetten; jump-to-bootloader op de Arduino Nano 33 BLE Sense.

  • OV7670 — nieuwe ondersteuning voor de OV7670-camerasensor, selecteerbaar op de OpenMV 4.

Overige wijzigingen en verbeteringen

  • RP2 UDP-sockets binden automatisch aan een vluchtige poort wanneer ze ongebonden worden gebruikt; de meegeleverde MicroPython-submodule is bijgewerkt.

Bugfixes

Netwerken:

  • Verholpen: de afhandeling van accept/close/send/recv/bind van NINA WiFi-sockets en bewerkingstime-outs, en een RP2-debugtekstbuffer-race die de IDE-uitvoer kon corrumperen.

Camera en systeem:

  • Verholpen: de HM01B0-reset, de camera-I2C-bus die vastliep na een mislukte sensorscan op de OpenMV H7, de H7 ULPI low-power-ingang bij USB-loskoppeling, de H7 ADC-pingeneratie en de Portenta camerapinout / shield SPI-CS.

Hardware- en boardondersteuning

  • Arduino Nano RP2040 Connect / Raspberry Pi Pico — WiFi, Bluetooth, camera, groter flashbestandssysteem, MSC-bootloader.

  • OV7670-camerasensor (OpenMV 4).

  • Arduino Portenta H7 — breakout I2C4, extra PWM-/klokpinnen, OV7725 / MT9V034-sensoren.

Breaking API-wijzigingen

Voor de gebruiker zichtbare API-breaks tussen v4.0.2 en v4.1.0. Bereik: Python C-modules in modules/ en Python-bibliotheken in scripts/libraries/.

Elke wijziging is gemarkeerd met de bijbehorende impact:

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

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

Wijzigingen zijn in die volgorde gegroepeerd op impact. Wil je alleen je code porten, ga dan naar de migratiechecklist aan het einde. Elke commit-hash linkt naar de bijbehorende diff op GitHub.

NINA / RP2 WiFi-API herzien (minor)

De NINA / RP2 WLAN-driver is herzien om aan te sluiten op de upstream MicroPython / CYW43 network-interface: een WLAN(interface)-constructor (STA/AP-modus), een nieuwe active([bool])-methode, config / start_ap als aliassen van connect, het hernoemen van het ssid-argument van connect() naar essid, een nieuw channel-keyword, en nina.fw_version() retourneert nu een (major, minor, patch)-tuple in plaats van ruwe bytes. Een NINA-firmwareversiemismatch is nu een niet-fatale waarschuwing in plaats van een OSError.

Commits: eb2f98277, e14470f68, 0c40f4832

Sensorfouten genereren nu een RuntimeError (behavior)

De rapportage van sensorfouten is gestandaardiseerd rond een uniforme foutcodetabel: camerafouten (opnametime-out, ongeldige framesize/pixformat/window/framerate, framebufferfout, JPEG-overflow, niet-gedetecteerde sensor, …) genereren nu consistente, beschrijvende meldingen, en diverse situaties die voorheen een ValueError genereerden, genereren nu een RuntimeError (inclusief sensor.reset()). Code die voor deze gevallen ValueError opving, moet in plaats daarvan RuntimeError opvangen.

Commits: 0491a6a88, c8bf0af6f, 2fb226562

Migratiechecklist

Voor een schone port naar v4.1.0 bestaat het typische werk uit:

  1. Port NINA/RP2 WiFi-code naar de standaard network.WLAN-interface (WLAN(interface), active(), essid=) en verwacht een tuple van nina.fw_version() (de WiFi-API-wijziging).

  2. Wijzig except ValueError in except RuntimeError rond camera- / sensor.reset()-foutafhandeling (de sensorfout-wijziging).