v3.8.0

v3.8.0 werkt de kern bij naar MicroPython 1.13, bevriest een grote set hulpbibliotheken in de firmware, voegt Portenta Ethernet toe (met netwerkvoorbeelden), HDMI CEC-ondersteuning aan de lcd-module, configuratie van baudrate/sampling-point voor pyb.CAN, en een reeks H7 low-power- en HAL-fixes. De modules time / utime werden samengevoegd en de F4 pyb.DAC DMA werd uitgeschakeld — lees hieronder de wijzigingen die niet achterwaarts compatibel zijn.

Hoogtepunten

  • MicroPython 1.13 — de meegeleverde MicroPython-kern is bijgewerkt.

  • Bevroren bibliothekenuasyncio, mqtt, rpc, rtsp, modbus, bno055, pid, ssd1306 en meer zijn nu bevroren in de firmware.

  • Portenta Ethernet — Ethernet-ondersteuning plus HTTP-/SSL-/peer-to-peer-voorbeelden.

  • HDMI CEC — nieuwe CEC-API in de lcd-module (Pure Thermal).

  • pyb.CAN — bittiming uit de sleutelwoorden baudrate / sampling_point.

  • Niet achterwaarts compatibel: de modules time / utime werden samengevoegd en de F4 pyb.DAC DMA-functies werden uitgeschakeld — zie de wijzigingen die niet achterwaarts compatibel zijn.

Nieuwe functies

  • Bevroren manifestuasyncio, mqtt, rpc, rtsp, modbus, bno055, mutex, pid, ssd1306, tb6612 en vl53l1x zijn nu bevroren in de firmware op OpenMV 3 / 4 / 4 Plus / Pure Thermal / Portenta.

  • Portenta Ethernet — Ethernet ingeschakeld met de voorbeelden http_client, http_client_ssl en peer_to_peer.

  • HDMI CEC — een HDMI CEC-API toegevoegd aan de lcd-module (Pure Thermal).

  • pyb.CAN — de constructor / init() leidt de bittiming nu af uit de sleutelwoorden baudrate en sampling_point (de handmatige prescaler-vorm werkt nog steeds); de CAN-voorbeelden zijn dienovereenkomstig bijgewerkt.

Overige wijzigingen en verbeteringen

  • De REPL-banner bevat nu de HAL-versietekst; het Audio FFT-voorbeeld is bijgewerkt voor de nieuwere ulab-API.

Bugfixes

Camera en sensoren:

  • De OV2640-sensorklok en de OV5640 PCLK-frequentieschaling op STM32H7 rev Y-apparaten gerepareerd; herstel de FIR I2C-bus uit een arbitrage-verloren toestand door SCL te pulsen, en probeer de AMG8833-init opnieuw bij een F7 soft-reset.

Voeding en timers:

  • De H7 low-power (stop/standby)-toegang gerepareerd — voltageschaling voor rev V, het opnieuw inschakelen van de oscillator/PLL bij het ontwaken, SDRAM low-power met DRAM-retentie, het uitschakelen van Systick bij stop-toegang, en het alleen inschakelen van DBGMCU in debug-builds. De HAL-status van de machine.Timer gerepareerd na de H7 HAL-update en de wijziging van de SD-lees-/schrijf-IRQ-prioriteit teruggedraaid.

Display en connectiviteit:

  • De F4 SPI LCD 8/16-bits datagrootteconfiguratie gerepareerd (verkeerde MCU_SERIES-definitie), een fout teruggegeven bij een mislukte WINC1500 SPI-bus-init in plaats van stilzwijgend door te gaan, en een statische SPI-handle gebruikt om WINC1500 SPI-busconflicten te vermijden. Een MicroPython GC-collect-bug gerepareerd.

Systeem:

  • unittests.py markeert de suite niet langer als mislukt wanneer een test is uitgeschakeld of niet beschikbaar; de defecte Thermopile-shield camera_lcd-voorbeelden verwijderd.

Hardware- en boardondersteuning

  • OpenMV Pure Thermal — board bijgewerkt en hernoemd (OPENMVPURETHERMALOPENMVPT), met HDMI CEC.

  • OpenMV 2 — OV2640-camerastuurprogramma ingeschakeld.

  • Arduino Portenta H7 — Ethernet-ondersteuning.

Niet achterwaarts compatibele API-wijzigingen

Voor gebruikers zichtbare API-breuken tussen v3.7.0 en v3.8.0. Bereik: Python C-modules in modules/ en Python-bibliotheken in scripts/libraries/.

Elke wijziging is gemarkeerd met de impact ervan:

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

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

Wijzigingen zijn in die volgorde per impact gegroepeerd. Als je alleen je code wilt porteren, spring dan naar de migratiechecklist aan het einde. Elke commit-hash linkt naar zijn diff op GitHub.

Modules time / utime samengevoegd (minor)

De modules time en utime werden samengevoegd en de OpenMV clock-klasse verplaatste naar utime. Alle meegeleverde voorbeelden zijn bijgewerkt naar import utime / clock = utime.clock(). Scripts die voor de clock-klasse op import time vertrouwden, moeten in plaats daarvan utime importeren.

Commits: 20587f308

F4 pyb.DAC DMA-functies uitgeschakeld (minor)

Op F4-gebaseerde boards werden pyb.DAC-functies die DMA vereisen uitgeschakeld, omdat de F4-heap zich in CCM bevindt, dat niet DMA-toegankelijk is. F4-scripts die DAC DMA-bufferschrijfacties gebruikten, moeten die functies vermijden.

Commits: d61f236f2

MicroPython bijgewerkt naar 1.13 (behavior)

De meegeleverde MicroPython-kern is bijgewerkt naar 1.13. Het gedrag van de standaardbibliotheek en de taal volgt upstream MicroPython 1.13; controleer scripts opnieuw die afhankelijk zijn van versiespecifiek micropython- / standaardmodulegedrag.

Commits: fb0a5e26d

De door cpufreq ondersteunde frequenties zijn revisieafhankelijk (behavior)

Er zijn meer CPU-frequenties toegevoegd en bewust gemaakt van de siliciumrevisie: cpufreq.get_supported_frequencies() geeft nu een revisieafhankelijke lijst terug op de H7 (50/100/200/400 MHz op rev X/Y, 60/120/240/480 MHz op rev V). Scripts die een frequentie uit de oude vaste lijst hard codeerden, moeten de ondersteunde lijst tijdens runtime opvragen.

Commits: 825dd0742

Migratiechecklist

Voor een schone overgang naar v3.8.0 is het typische werk:

  1. Wijzig import time in import utime waar je de clock-klasse gebruikt (de time/utime-samenvoeging).

  2. Stop op F4-boards met het gebruik van pyb.DAC DMA-bufferfuncties (de F4 DAC-wijziging).

  3. Valideer scripts die afhankelijk zijn van versiespecifiek MicroPython-gedrag opnieuw tegen 1.13 (de MicroPython-upgrade) en vraag cpufreq.get_supported_frequencies() tijdens runtime op in plaats van hard te coderen (de cpufreq-wijziging).

Alle andere scripts draaien ongewijzigd.