v3.1.0

v3.1.0 introduces the fir thermopile module (MLX90620 / MLX90640 / AMG8833), WiFi IDE debugging and discovery over the WINC1500, a UVC webcam firmware, sensor.shutdown(), image.selective_search(), and the uctypes and pyb.CAN modules. Some image methods were dropped on the OpenMV Cam M4 — read the breaking changes below.

Highlights

  • fir module — MLX90620 / MLX90640 / AMG8833 thermopile thermal-camera support.

  • WiFi IDE — debug and program over WiFi (WINC1500) with UDP broadcast discovery (no hardcoded IP needed).

  • UVC webcam — a USB Video Class firmware to use the cam as a webcam.

  • New APIssensor.shutdown(), image.selective_search(), and the uctypes / pyb.CAN modules.

  • Breaking: image.mean() and image.morph() are no longer available on the OpenMV Cam M4 — see the breaking changes.

New features

  • fir — added the thermopile module with MLX90620 / MLX90640 / AMG8833 support: fir.init(), fir.snapshot(), fir.read_ir(), fir.draw_ir() and the FIR_MLX90640 / FIR_AMG8833 constants, with per-sensor Thermopile-Shield examples.

  • WiFi IDE — WiFi programming/debug over the WINC1500 with UDP broadcast discovery so OpenMV IDE can auto-find cameras (firmware reads STA/AP settings from the IDE).

  • UVC webcam — added a USB Video Class webcam firmware.

  • sensor.shutdown() — power the camera down via the PWDN pin.

  • image.selective_search() — region-proposal rectangles, with a selective_search.py example.

  • Modules — enabled the uctypes module, re-enabled pyb.CAN, and enabled additional MicroPython modules; added a USB-HID example and a function to check whether the IDE is connected.

Other changes and improvements

  • Added a per-socket receive buffer for more reliable WiFi socket recv; the image math methods (top_hat / black_hat / negate / replace / add / sub / mul / div / min / max / difference / blend) are now behind an IMLIB_ENABLE_MATH_OPS build flag (enabled by default on standard firmware).

Bug fixes

Imaging and camera:

  • Fixed image.save() not closing the file after writing raw images (truncated/corrupt saves) and the FLIR Lepton SPI GPIO configuration.

System and connectivity:

  • Worked around the STM32F7 SPI BUSY-flag errata (2.11.2), fixed the WiFi IDE-debug broadcast interval / socket cleanup / debug timer, the openmv.ini integer parsing, and H7 flash latency.

Hardware and board support

  • MLX90620 / MLX90640 / AMG8833 thermopile (FIR) sensors.

  • UVC webcam — USB Video Class firmware.

  • WINC1500 — WiFi IDE debugging and discovery.

Breaking API changes

User-visible API breaks between v3.0.0 and v3.1.0. Scope: Python C-modules in modules/ and Python libraries in scripts/libraries/.

The breaking changes are behavior changes scoped to the OpenMV Cam M4 — re- check affected scripts. Each commit hash links to its diff on GitHub.

image.mean() / image.morph() removed on the OpenMV Cam M4 (behavior)

To fit flash/RAM on the OpenMV Cam M4 (OMV2), image.mean() and image.morph() were compiled out on that board; calling them now raises an “unavailable” error. Use a different filter (e.g. image.median() / image.midpoint()) or run the morphology / mean filtering on a newer camera (M7 / H7). Other boards are unaffected.

Commits: abe97a73b, 4e34b32ec

Migration checklist

On the OpenMV Cam M4, replace image.mean() / image.morph() with another filter or move that processing to an M7 / H7 camera (the M4 method removal). All other scripts run unchanged.