v4.1.2¶
v4.1.2 adds advanced pixel formats with full debayering, YUV image
processing, a new imu module (LSM6DSOX), DFSDM digital-microphone audio,
and FrogEye2020 event-sensor support. erode()/dilate() behavior and
the desktop RPC library changed — read the breaking changes below.
Highlights¶
Advanced pixel formats with full debayering support.
YUV image processing.
New
imumodule — LSM6DSOX support (configurable orientation, MLC).DFSDM audio — digital-microphone input.
FrogEye2020 event-sensor support.
Breaking:
erode()/dilate()now operate on non-white pixels and a desktop RPC class was renamed — see the breaking changes.
New features¶
Advanced pixel formats — new pixel-format handling with full debayering support (Bayer → RGB/grayscale across formats).
YUV image processing — added YUV image-processing support.
imumodule — a new IMU module with the LSM6DSOX driver, configurable IMU orientation, and machine-learning-core (MLC) support.Audio — added DFSDM digital-microphone support to the
audiomodule.FrogEye2020 — new FrogEye2020 event-sensor driver, with event-camera example scripts.
Other changes and improvements¶
Software JPEG encoding is ~10 % faster (improved bit handling).
machine.I2Cnow uses the hardware I2C peripheral on STM32 H7.find_apriltags(),find_line_segments(), and the TensorFlow input path were moved onto the unifieddraw_imagebackend.
Bug fixes¶
Fixed software-JPEG-encoding overflow situations,
imagecompress, and theIS_JPEGformat detection.
Hardware and board support¶
FrogEye2020 event sensor.
Arduino Nicla Vision (BORMIO) — updated pinout and USB VID/PID.
Arduino Portenta H7 — default sensor clock set to 12 MHz.
Breaking API changes¶
User-visible API breaks between v4.1.1 and v4.1.2. Scope: Python C-modules in
modules/ and Python libraries in scripts/libraries/.
Each change is tagged with its impact:
minor — narrow API; host-side tooling only.
behavior — same API, different results; re-check tuned scripts.
Changes are grouped by impact in that order. Each commit hash links to its diff on GitHub.
Desktop RPC library class renamed (minor)¶
In the host-side desktop RPC library (tools/rpc/rpc.py), the
rpc_wifi_or_ethernet_master class was renamed to rpc_network_master,
and the RTSP/RPC host scripts were switched to use the standard network
libraries. This affects host-PC programs only; on-camera scripts are
unaffected.
erode() / dilate() operate on non-white pixels (behavior)¶
Image.erode() and Image.dilate() were fixed to operate on non-white
pixels instead of only white pixels. Results differ from previous releases
for non-binary / non-white-only images — re-check tuned morphology pipelines.
Commit: 899f80759
Migration checklist¶
For a clean port to v4.1.2: in host-PC RPC programs, rename
rpc_wifi_or_ethernet_master to rpc_network_master
(the RPC rename), and re-check any erode() /
dilate() results on non-binary images
(the morphology change). On-camera scripts otherwise run
unchanged.