.. _changelog_v4_1_2: v4.1.2 ====== v4.1.2 adds advanced pixel formats with full debayering, YUV image processing, a new :mod:`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. .. contents:: On this page :local: :depth: 1 Highlights ---------- - **Advanced pixel formats** with **full debayering** support. - **YUV image processing.** - New :mod:`imu` module — 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. - :mod:`imu` module — 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 :mod:`audio` module. - **FrogEye2020** — new FrogEye2020 event-sensor driver, with event-camera example scripts. Other changes and improvements ------------------------------ - Software JPEG encoding is ~10 % faster (improved bit handling). - :class:`machine.I2C` now uses the hardware I2C peripheral on STM32 H7. - ``find_apriltags()``, ``find_line_segments()``, and the TensorFlow input path were moved onto the unified ``draw_image`` backend. Bug fixes --------- - Fixed software-JPEG-encoding overflow situations, :mod:`image` ``compress``, and the ``IS_JPEG`` format 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. .. _v4_1_2_rpc: 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. *Commits:* `a2f016ba0 `__, `a4858015c `__ .. _v4_1_2_morph: ``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`` (:ref:`the RPC rename `), and re-check any ``erode()`` / ``dilate()`` results on non-binary images (:ref:`the morphology change `). On-camera scripts otherwise run unchanged.