v4.3.1

v4.3.1 добавляет поддержку многозонного времяпролётного датчика VL53L5CX, улучшенный CAN FD, автоматически закрывающийся финализатор ImageIO и широкий набор исправлений надёжности камеры, USB и программной перезагрузки.

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

  • VL53L5CX — поддержка многозонного времяпролётного датчика (модуль Python + примеры).

  • Улучшенный CAN FD на STM32.

  • Автозакрытие ImageIO — потоки теперь закрываются сами при сборке мусора.

  • Несовместимое изменение: stdout теперь буферизуется — см. описание несовместимого изменения.

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

  • VL53L5CX — новый модуль Python для многозонного датчика ToF VL53L5CX, драйвер ST и примеры скриптов ToF.

  • Финализатор ImageIO — поток ImageIO теперь закрывается автоматически при сборке мусора объекта.

  • CAN FD — улучшена поддержка CAN FD на STM32.

  • Многоустройственные шины I2C — сканирование шины камеры может возвращать несколько устройств, а тепловые датчики FIR поддерживают шины, разделяемые с другими устройствами; порт RP2 получил поддержку общего вызова (general-call) I2C.

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

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

  • Исправлены утечка памяти quad_segment_maxima (обнаружение AprilTag/четырёхугольников), SIMD-преобразование цвета YCbCr→RGB, чёрные линии на первом кадре и использование кэша LCD на OpenMV Pure Thermal.

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

  • Исправлены синхронизация чтения кадров MLX9064x, обработка VSYNC EXTI на Portenta H7 / STM32, а также режим питания и значение тактовой частоты HSE для Arduino Nicla Vision.

Система и USB:

  • Исправлены смещение дескриптора конечной точки USB High-Speed, деинициализация модулей при переходе main.py → IDE, очистка при программной перезагрузке (mp_deinit() и сброс буфера CDC), инициализация sys.path на nRF и частота режима fast-mode-plus I2C на RP2.

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

  • VL53L5CX — многозонный датчик ToF.

  • OpenMV Cam H7 — больший линейный буфер кадра (обрабатывает более широкие изображения).

  • Arduino Nicla Vision — исправления питания и тактирования.

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

Заметные пользователю изменения API между v4.3.0 и v4.3.1.

Единственное несовместимое изменение — это изменение behavior (тот же API, иной тайминг).

Буферизованный stdout (behavior)

Стандартный вывод теперь буферизуется. Вывод print() может появиться на хосте/в IDE не сразу — он сбрасывается при переводе строки или при заполнении буфера. Скрипты, полагавшиеся на посимвольный небуферизованный вывод, должны добавить явный сброс (или вывод перевода строки) там, где требуется немедленный вывод.

Коммит: 8cddada54

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

Затронут только тайминг вывода: добавьте явный сброс там, где вы полагаетесь на немедленный вывод print() (изменение буферизации stdout). Все остальные скрипты работают без изменений.