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
imagecopy=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
imageoperationcopy=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).