v4.3.0

v4.3.0 dodaje sprzętowo akcelerowane dekodowanie JPEG, tryb wysokich temperatur i wykrywanie modelu FLIR Lepton, nowe konwersje przestrzeni kolorów JPEG oraz MicroPython 1.18, a także zestaw poprawek RTC i WiFi. Zmieniło się API trybu pomiaru Lepton — przeczytaj poniższe zmiany łamiące zgodność.

Najważniejsze zmiany

  • Sprzętowe dekodowanie JPEG na STM32 (H7) — szybsza dekompresja JPEG.

  • Tryb wysokich temperatur FLIR Lepton (do ~600 °C na Lepton 3.5) oraz automatyczne wykrywanie modelu (1.5–3.5).

  • Nowe konwersje JPEG — dekodowanie JPEG YCbCr do skali szarości oraz JPEG w skali szarości do RGB565.

  • MicroPython zaktualizowany do 1.18.

  • Zmiana łamiąca zgodność: zmienił się ioctl trybu pomiaru Lepton — zobacz zmiany łamiące zgodność.

Nowe funkcje

  • Sprzętowo akcelerowane dekodowanie JPEG — wbudowany w STM32 kodek JPEG jest teraz używany do dekompresji.

  • Konwersje przestrzeni kolorów JPEG — dekoder potrafi dekodować JPEG YCbCr do GRAYSCALE oraz JPEG GRAYSCALE do RGB565.

  • Tryb wysokich temperatur Lepton — nowy tryb pomiaru high_temp używa niskiego wzmocnienia, aby rozszerzyć zakres do około 600 °C na Lepton 3.5.

  • Arduino Nano RP2040 Connect — moduły sterowników onewire, dht oraz neopixel są teraz wbudowane (frozen) w oprogramowanie układowe.

Inne zmiany i usprawnienia

  • MicroPython zaktualizowany do 1.18.

  • Sterownik FLIR Lepton wykrywa teraz i raportuje konkretny model Lepton (1.5 / 1.6 / 2.0 / 2.5 / 3.0 / 3.5) do IDE.

Poprawki błędów

Przetwarzanie obrazu:

  • Image.to_grayscale() / konwersja kanału L nie zwraca już ujemnych wartości L dla ciemnych pikseli RGB565; dekoder JPEG nie powoduje już błędu (MemManage) na obrazach o nieparzystych wymiarach.

Kamera i sensory:

  • Naprawiono współczynniki podpróbkowania okna GC2145 oraz kolejność pikseli Bayera dla poprawnej jakości obrazu w rozdzielczościach poniżej QVGA oraz w trybie BAYER.

Sieć i pamięć masowa:

  • Poprawiono obsługę limitu czasu nieblokujących gniazd WINC1500 oraz dodano właściwe mapowanie errno MicroPythona dla błędów gniazd; naprawiono obsługę plików dysku USB OpenMV na STM32.

Zegar czasu rzeczywistego:

  • Naprawiono wybór źródła zegara RTC / LSE vs LSI oraz erratę oscylatora LSE na płytkach OpenMV Cam H7 Plus i Pure Thermal.

Obsługa sprzętu i płytek

  • STM32 (H7) — sprzętowe dekodowanie JPEG.

  • OpenMV Cam H7 Plus / Pure Thermal — poprawki źródła zegara RTC.

  • Arduino Nano RP2040 Connect — wbudowane (frozen) sterowniki onewire / dht / neopixel.

Zmiany API łamiące zgodność

Widoczne dla użytkownika zmiany API łamiące zgodność między v4.2.3 a v4.3.0. Zakres: moduły C Pythona w modules/ oraz biblioteki Pythona w scripts/libraries/.

Każda zmiana jest oznaczona swoim wpływem:

  • minor — wąskie API; dotyczy tylko skryptów, które go używały.

  • behavior — to samo API, inne wyniki; sprawdź ponownie dostrojone skrypty.

Obie zmiany łamiące zgodność dotyczą wyłącznie sensora termicznego FLIR Lepton. Każdy skrót commita prowadzi do jego diffa na GitHubie.

ioctl trybu pomiaru Lepton (minor)

sensor.ioctl(SET_MEASUREMENT_MODE, ...) przyjmuje nowy opcjonalny argument high_temp, a GET_MEASUREMENT_MODE zwraca teraz 2-elementową krotkę (enabled, high_temp) zamiast pojedynczej wartości logicznej. Kod, który odczytywał poprzednią zwracaną wartość logiczną, musi zostać zaktualizowany, aby rozpakować krotkę.

Commit: 6b2cd1008

Domyślny zakres temperatur Lepton (behavior)

Domyślny zakres temperatur FLIR Lepton zmienił się z −17.78 °C…37.78 °C na −10.0 °C…40.0 °C. Mapowanie kolorów i raportowane temperatury dla scen, które polegały na starym domyślnym zakresie, będą się różnić — ustaw jawny zakres, jeśli potrzebujesz poprzedniego zachowania.

Commit: bc07e0131

Lista kontrolna migracji

Dotyczy to tylko skryptów FLIR Lepton: rozpakuj nową krotkę GET_MEASUREMENT_MODE (enabled, high_temp) (zmiana trybu pomiaru) oraz ustaw jawny zakres temperatur, jeśli polegałeś na starym domyślnym (zmiana zakresu domyślnego). Wszystkie pozostałe skrypty działają bez zmian.