v4.4.0¶
v4.4.0 adds a tf.regression() API, FLIR Lepton support on the OpenMV Cam
H7 Pro, Cortex-M4 coprocessor support on the Arduino Nicla Vision, and
MicroPython 1.19. A few board-specific modules and WiFi/LCD behaviors changed
— read the breaking changes below.
Highlights¶
tf.regression()— run 1D-input/1D-output TensorFlow Lite regression models.FLIR Lepton thermal sensor support on the OpenMV Cam H7 Pro.
Arduino Nicla Vision — Cortex-M4 coprocessor support, working MicroSpeech, LPUART1.
MicroPython updated to 1.19; ulab updated to 5.1.1.
Breaking: the Nicla Vision
lcd/tvmodules were disabled and the RP2040 Connect WiFi driver changed — see the breaking changes.
New features¶
tf.regression(model, input_array)— a new function for 1D input/output TensorFlow Lite regression models, returning a list of float outputs.GC2145 controls —
sensor.set_auto_exposure()andsensor.set_auto_whitebal()are now functional on the GC2145 (auto exposure / white balance can be disabled; explicit exposure/gain not yet supported).Arduino Nicla Vision — Cortex-M4 (CM4) coprocessor support and the LPUART1 peripheral were enabled.
machine.Pin— theUSB_VBUSpin is now exposed to user scripts.
Other changes and improvements¶
MicroPython updated to 1.19; ulab to 5.1.1; the bundled cyw43 WiFi driver was updated.
The RP2 (Arduino Nano RP2040 Connect) and nRF (Arduino Nano 33 BLE Sense) ports switched to the new TinyUSB-based debugger for the IDE/host connection.
The OV7670 XCLK was raised from 12 MHz to 24 MHz (updated register set).
Bug fixes¶
Camera and sensors:
OpenMV Pure Thermal blob temperature statistics now use the IR image instead of the color image, so per-blob mean temperature is correct.
Fixed
draw_image()ROI handling and area scaling for more accurate scaled output.The IMU is re-initialized after a soft-reset so it keeps working when the IMU SPI bus is enabled.
System:
Fixed signed/unsigned comparison issues across FAST/AGAST feature detection, blob detection, CLAHE, and the LCD/TV drivers; fixed STM32 camera-GPIO / SPI / DAC de-initialization, H7 LPUART pin mapping, and the STM32Cube.AI
nnmodule registration.
Arduino Nicla Vision:
MicroSpeech now works (doubled PDM buffer, added example) and low-power standby mode was fixed.
Hardware and board support¶
OpenMV Cam H7 Pro — FLIR Lepton thermal sensor support.
Arduino Nicla Vision — CM4 coprocessor, LPUART1, MicroSpeech, low-power standby.
Breaking API changes¶
User-visible API breaks between v4.3.3 and v4.4.0. Scope: Python C-modules in
modules/ and Python libraries in scripts/libraries/.
Each change is tagged with its impact:
minor — narrow API; only affects scripts on a specific board.
behavior — same API, different results; re-check tuned scripts.
Changes are grouped by impact in that order. If you just want to port your code, jump to the migration checklist at the end. Each commit hash links to its diff on GitHub.
Nicla Vision modules and RP2040 WiFi (minor)¶
On the Arduino Nicla Vision, the lcd and tv modules were disabled to
free memory for CM4 coprocessor support — scripts using those modules on the
Nicla Vision will no longer find them. The Arduino Nano RP2040 Connect
switched from the OpenMV-custom WiFi/nina implementation to the upstream
MicroPython NINA-W10 driver/module, whose API differs.
WiFi socket timeout and LCD vertical flip (behavior)¶
A WINC1500 socket timeout now returns a non-blocking error (EWOULDBLOCK)
instead of ETIMEDOUT, so timed-out sockets are no longer unexpectedly
closed — code that caught ETIMEDOUT must be updated. The SPI LCD shield
display now raises ValueError (“Vertical flip requires triple
buffering!”) when a negative y_scale is requested without triple
buffering enabled.
Migration checklist¶
For a clean port to v4.4.0 the typical work is:
On the Nicla Vision, stop using
lcd/tv; on the Nano RP2040 Connect, port WiFi code to the upstream NINA-W10 driver (the board module changes).Update WINC1500 socket code to expect
EWOULDBLOCKon timeout, and enable triple buffering for vertically-flipped LCD output (the behavior changes).