v4.4.2

v4.4.2 adds SPI-LCD byte-reversal and MT9V0xx clock override, more robust script execution and WiFi socket handling, and fixes a notable image copy= bug. JPEG compression argument order and camera clock selection changed — read the breaking changes below.

Highlights

  • SPI LCD byte reversal and MT9V0xx external clock override.

  • More robust script execution and exception handling, plus WiFi socket fixes.

  • Fixed an image copy= bug that modified the original object.

  • Breaking: JPEG compression positional-argument order and camera clock selection changed — see the breaking changes.

New features

  • SPI LCD byte reversal — the STM32 SPI LCD path gained byte-reversal support.

  • MT9V0xx clock override — the MT9V0xx external clock frequency can now be overridden (the Portenta overrides its default MT sensor clock).

Other changes and improvements

  • Script execution and exception handling were made more robust across the nRF, RP2, and STM32 ports.

  • Optimized MT9M114 sensor patch loading (faster initialization).

Bug fixes

Image processing:

  • Fixed an image operation copy= argument bug where the original object was modified instead of a copy.

Camera and sensors:

  • Added Nicla Vision sensor readout control and fixed its image orientation.

Networking and USB:

  • WINC1500 now keeps the listening socket open on an accept timeout and correctly clears the NIC when closing sockets; fixed the RTSP library.

  • The audio module now uses static scheduler nodes for more reliable callback scheduling; the USB debugger is disabled before exceptions are raised, improving IDE-connection stability on script errors.

Hardware and board support

  • Arduino Nicla Vision — sensor readout control and corrected image orientation.

  • Arduino Portenta — overrides its default MT sensor clock.

Breaking API changes

User-visible API breaks between v4.4.1 and v4.4.2. Scope: Python C-modules in modules/ and Python libraries in scripts/libraries/.

Both breaking changes are behavior changes (same API, different results) — re-check tuned scripts. Each commit hash links to its diff on GitHub.

JPEG compression argument order (behavior)

The positional-argument handling for the JPEG compression family (compress() / compressed() / JPEG save()) was corrected so that quality is the first positional argument, with a default of 90. Scripts that passed compression arguments positionally against the previous (incorrect) order must be updated.

Commit: 509b094a5

Camera clock frequency selection (behavior)

STM32 camera external-clock selection now picks the closest available frequency under the requested value instead of failing or overshooting. The actual pixel clock for a given request may differ from previous releases — re-check timing-sensitive captures.

Commit: 39ba1a7f5

Migration checklist

For a clean port to v4.4.2: pass JPEG quality as the first positional argument (or as a keyword) (the JPEG argument change), and re-check any timing-sensitive camera clock settings (the clock-selection change).