v4.3.0

v4.3.0 adaugă decodare JPEG accelerată hardware, modul de temperatură ridicată și detectarea modelului pentru FLIR Lepton, conversii noi de spațiu de culoare JPEG și MicroPython 1.18, plus un set de remedieri RTC și WiFi. API-ul modului de măsurare Lepton s-a schimbat — citiți modificările incompatibile de mai jos.

Aspecte importante

  • Decodare JPEG hardware pe STM32 (H7) — decompresie JPEG mai rapidă.

  • Modul de temperatură ridicată FLIR Lepton (până la ~600 °C pe Lepton 3.5) și detectarea automată a modelului (1.5–3.5).

  • Conversii JPEG noi — decodarea JPEG-urilor YCbCr în tonuri de gri și a JPEG-urilor în tonuri de gri în RGB565.

  • MicroPython actualizat la 1.18.

  • Incompatibil: ioctl-ul modului de măsurare Lepton s-a schimbat — vedeți modificările incompatibile.

Funcționalități noi

  • Decodare JPEG accelerată hardware — codecul JPEG integrat în cipul STM32 este acum folosit pentru decompresie.

  • Conversii de spațiu de culoare JPEG — decodorul poate decoda JPEG-uri YCbCr în GRAYSCALE și JPEG-uri GRAYSCALE în RGB565.

  • Modul de temperatură ridicată Lepton — un nou mod de măsurare high_temp folosește amplificare redusă pentru a extinde intervalul la aproximativ 600 °C pe Lepton 3.5.

  • Arduino Nano RP2040 Connect — modulele de driver onewire, dht și neopixel sunt acum integrate în firmware.

Alte modificări și îmbunătățiri

  • MicroPython actualizat la 1.18.

  • Driverul FLIR Lepton detectează și raportează acum modelul Lepton specific (1.5 / 1.6 / 2.0 / 2.5 / 3.0 / 3.5) către IDE.

Remedieri de erori

Procesare de imagini:

  • Image.to_grayscale() / conversia canalului L nu mai returnează valori L negative pentru pixeli RGB565 întunecați; decodorul JPEG nu mai generează erori (MemManage) la imaginile cu dimensiuni impare.

Cameră și senzori:

  • S-au corectat rapoartele de subeșantionare a ferestrei GC2145 și ordinea pixelilor Bayer pentru o calitate corectă a imaginii la rezoluții sub-QVGA și în modul BAYER.

Rețele și stocare:

  • S-a corectat gestionarea timeout-ului socket-urilor non-blocante WINC1500 și s-a adăugat o mapare corectă a codurilor errno MicroPython pentru erorile de socket; s-a remediat gestionarea fișierelor pe discul USB OpenMV STM32.

Ceas de timp real:

  • S-a corectat selecția sursei de ceas RTC / LSE-vs-LSI și errata oscilatorului LSE pe plăcile OpenMV Cam H7 Plus și Pure Thermal.

Suport hardware și plăci

  • STM32 (H7) — decodare JPEG hardware.

  • OpenMV Cam H7 Plus / Pure Thermal — remedieri ale sursei de ceas RTC.

  • Arduino Nano RP2040 Connect — drivere onewire / dht / neopixel integrate.

Modificări incompatibile de API

Modificări de API vizibile pentru utilizator între v4.2.3 și v4.3.0. Domeniu: module C Python din modules/ și biblioteci Python din scripts/libraries/.

Fiecare modificare este etichetată cu impactul său:

  • minor — API restrâns; afectează doar scripturile care l-au folosit.

  • comportament — același API, rezultate diferite; reverificați scripturile reglate.

Ambele modificări incompatibile afectează doar senzorul termic FLIR Lepton. Fiecare hash de commit trimite la diff-ul său pe GitHub.

ioctl-ul modului de măsurare Lepton (minor)

sensor.ioctl(SET_MEASUREMENT_MODE, ...) acceptă un nou argument opțional high_temp, iar GET_MEASUREMENT_MODE returnează acum un tuplu de 2 elemente (enabled, high_temp) în loc de o singură valoare booleană. Codul care citea valoarea booleană de retur anterioară trebuie actualizat pentru a despacheta tuplul.

Commit: 6b2cd1008

Intervalul implicit de temperatură Lepton (comportament)

Intervalul implicit de temperatură al FLIR Lepton s-a schimbat de la −17.78 °C…37.78 °C la −10.0 °C…40.0 °C. Maparea culorilor și temperaturile raportate pentru scenele care se bazau pe vechiul interval implicit vor diferi — setați un interval explicit dacă aveți nevoie de comportamentul anterior.

Commit: bc07e0131

Listă de verificare pentru migrare

Sunt afectate doar scripturile FLIR Lepton: despachetați noul tuplu GET_MEASUREMENT_MODE (enabled, high_temp) (modificarea modului de măsurare) și setați un interval explicit de temperatură dacă depindeați de vechiul implicit (modificarea intervalului implicit). Toate celelalte scripturi rulează neschimbate.