.. _changelog_v4_4_0: 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. .. contents:: On this page :local: :depth: 1 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``/``tv`` modules 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** — :func:`sensor.set_auto_exposure` and :func:`sensor.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. - :class:`machine.Pin` — the ``USB_VBUS`` pin 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 ``nn`` module 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 :ref:`migration checklist ` at the end. Each commit hash links to its diff on GitHub. .. _v4_4_0_board: 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. *Commits:* `f78d191e3 `__, `ddf01cb09 `__ .. _v4_4_0_behavior: 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 :mod:`display` now raises ``ValueError`` ("Vertical flip requires triple buffering!") when a negative ``y_scale`` is requested without triple buffering enabled. *Commits:* `1dc4bea88 `__, `7e52cf751 `__ .. _v4_4_0_migration: 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 (:ref:`the board module changes `). #. Update WINC1500 socket code to expect ``EWOULDBLOCK`` on timeout, and enable triple buffering for vertically-flipped LCD output (:ref:`the behavior changes `).