v4.5.4

v4.5.4 adds PAG7920 sensor support and STM32 YUV422 hardware-JPEG with controllable subsampling, speeds up JPEG encoding and morphology, and fixes the MQTT, RTSP, and BLE libraries.

Highlights

  • PAG7920 PixArt image sensor support.

  • YUV422 hardware JPEG on STM32, with controllable JPEG subsampling.

  • Faster JPEG YUV sub-sampling and SIMD-accelerated erode/dilate.

  • Breaking: erode()/dilate()/binary() argument parsing was standardized (see the breaking change).

New features

  • STM32 YUV422 hardware JPEG — the hardware JPEG encoder now accepts YUV422 input.

  • JPEG subsampling control — a new option to control JPEG chroma subsampling.

  • PAG7920 — added support for the PixArt PAG7920 image sensor.

Other changes and improvements

  • Faster JPEG YUV422/420 UV sub-sampling and SIMD-accelerated erode() / dilate().

  • ucryptolib (crypto/TLS) re-enabled on the i.MX RT (mimxrt) port.

  • The pid.py library now uses ticks_ms() instead of the deprecated millis().

Bug fixes

Libraries:

  • Fixed MQTT SSL parameters; fixed the RTSP library to work with VLC.

System and sensors:

  • Fixed the OpenMV RT1060 BLE baud rate and STM32 SPI slave-mode CS handling (the CS pin is no longer driven in slave mode).

  • Fixed an out-of-bounds crash in set_pixel() anti-aliased drawing.

Hardware and board support

  • PAG7920 PixArt image sensor.

  • Arduino GIGA — enabled the camera RESET/PEN pin and GC2145 rotation.

Breaking API changes

User-visible API breaks between v4.5.3 and v4.5.4.

The only breaking change is the standardized argument parsing for the binary morphology methods.

erode / dilate / binary argument parsing (behavior)

Image.erode(), Image.dilate() and Image.binary() were moved onto the standardized mp_arg_parse_all argument parser. Calls that relied on the previous positional/keyword ordering may need adjusting.

Commits: f52360271, e63fbc7c2

Migration checklist

Re-check the argument order in any erode() / dilate() / binary() calls (the morphology parsing change). All other scripts run unchanged.