v4.3.0

v4.3.0 добавляет аппаратно-ускоренное декодирование JPEG, режим высоких температур и определение модели FLIR Lepton, новые преобразования цветового пространства JPEG и MicroPython 1.18, а также набор исправлений RTC и WiFi. Изменился API режима измерений Lepton — см. описание несовместимых изменений ниже.

Основные изменения

  • Аппаратное декодирование JPEG на STM32 (H7) — более быстрая распаковка JPEG.

  • Режим высоких температур FLIR Lepton (до ~600 °C на Lepton 3.5) и автоматическое определение модели (1.5–3.5).

  • Новые преобразования JPEG — декодирование JPEG YCbCr в оттенки серого и JPEG в оттенках серого в RGB565.

  • MicroPython обновлён до 1.18.

  • Несовместимое изменение: изменился ioctl режима измерений Lepton — см. описание несовместимых изменений.

Новые возможности

  • Аппаратно-ускоренное декодирование JPEG — для распаковки теперь используется встроенный в STM32 кодек JPEG.

  • Преобразования цветового пространства JPEG — декодер может декодировать JPEG YCbCr в GRAYSCALE и JPEG GRAYSCALE в RGB565.

  • Режим высоких температур Lepton — новый режим измерений high_temp использует низкое усиление для расширения диапазона примерно до 600 °C на Lepton 3.5.

  • Arduino Nano RP2040 Connect — модули драйверов onewire, dht и neopixel теперь встроены (заморожены) в прошивку.

Прочие изменения и улучшения

  • MicroPython обновлён до 1.18.

  • Драйвер FLIR Lepton теперь определяет и сообщает IDE конкретную модель Lepton (1.5 / 1.6 / 2.0 / 2.5 / 3.0 / 3.5).

Исправления ошибок

Обработка изображений:

  • Image.to_grayscale() / преобразование L-канала больше не возвращает отрицательные значения L для тёмных пикселей RGB565; декодер JPEG больше не вызывает сбой (MemManage) на изображениях с нечётными размерами.

Камера и датчики:

  • Исправлены коэффициенты оконного субсэмплинга GC2145 и порядок байеровских пикселей для корректного качества изображения на разрешениях ниже QVGA и в режиме BAYER.

Сеть и хранилище:

  • Исправлена обработка тайм-аута неблокирующих сокетов WINC1500 и добавлено корректное сопоставление errno MicroPython для ошибок сокетов; исправлена работа с файлами USB-диска OpenMV на STM32.

Часы реального времени:

  • Исправлены выбор источника тактирования RTC / LSE-vs-LSI и ошибки (errata) генератора LSE на платах OpenMV Cam H7 Plus и Pure Thermal.

Поддержка оборудования и плат

  • STM32 (H7) — аппаратное декодирование JPEG.

  • OpenMV Cam H7 Plus / Pure Thermal — исправления источника тактирования RTC.

  • Arduino Nano RP2040 Connect — встроенные (замороженные) драйверы onewire / dht / neopixel.

Несовместимые изменения API

Заметные пользователю изменения API между v4.2.3 и v4.3.0. Область охвата: C-модули Python в modules/ и библиотеки Python в scripts/libraries/.

Каждое изменение помечено степенью влияния:

  • minor — узкий API; затрагивает только скрипты, которые его использовали.

  • behavior — тот же API, иной результат; перепроверьте настроенные скрипты.

Оба несовместимых изменения затрагивают только тепловой датчик FLIR Lepton. Каждый хэш коммита ведёт к его diff на GitHub.

ioctl режима измерений Lepton (minor)

sensor.ioctl(SET_MEASUREMENT_MODE, ...) принимает новый необязательный аргумент high_temp, а GET_MEASUREMENT_MODE теперь возвращает кортеж из двух элементов (enabled, high_temp) вместо одного логического значения. Код, который считывал прежнее логическое возвращаемое значение, необходимо обновить для распаковки кортежа.

Коммит: 6b2cd1008

Диапазон температур Lepton по умолчанию (behavior)

Диапазон температур FLIR Lepton по умолчанию изменён с −17.78 °C…37.78 °C на −10.0 °C…40.0 °C. Цветовое отображение и сообщаемые температуры для сцен, полагавшихся на прежний диапазон по умолчанию, будут отличаться — задайте явный диапазон, если вам нужно прежнее поведение.

Коммит: bc07e0131

Чек-лист миграции

Затронуты только скрипты FLIR Lepton: распакуйте новый кортеж GET_MEASUREMENT_MODE (enabled, high_temp) (изменение режима измерений) и задайте явный диапазон температур, если вы полагались на прежнее значение по умолчанию (изменение диапазона по умолчанию). Все остальные скрипты работают без изменений.