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).