v3.6.0¶
v3.6.0 brings full OV5640 5 MP camera support with new high-resolution
framesizes (HD / FHD / QHD / QXGA / WQXGA), updates the core to MicroPython
1.12, heavily optimizes the software JPEG encoder and AprilTag / line
detection, adds UVC (USB video) on the OpenMV Cam H7 Plus, and supports
QSPI flash up to 32 MB. MicroPython behavior and get_histogram() changed —
read the breaking changes below.
Highlights¶
OV5640 5 MP — full camera driver with new HD / FHD / QHD / QXGA / WQXGA / WQXGA2 framesizes.
MicroPython 1.12 — the bundled core was updated.
Faster pipeline — heavily optimized software JPEG encoding, AprilTag detection, LSD line detection,
histeq(), and QR-code decoding.UVC on H7 Plus — the OpenMV Cam H7 Plus can act as a USB video device.
Breaking: MicroPython behavior,
image.get_histogram()normalization, and the OpenMV 3 JPEG/grayscale output changed — see the breaking changes.
New features¶
OV5640 — added full support for the OV5640 5 MP camera (external clock configuration in sensor init) and the new
sensor.HD/FHD/QHD/QXGA/WQXGA/WQXGA2framesize constants.TIM4 — freed up so it is usable from MicroPython.
Added a DAC timed-write example (
dac_write_timed.py) and renameddac_control.pytodac_write.py.
Other changes and improvements¶
Updated the bundled MicroPython to 1.12; heavily optimized the software JPEG encoder (VGA path, grayscale/binary paths, integer instead of floating-point math, optimized MCU capture), LSD
find_line_segments(), AprilTag detection,Image.histeq(), and QR-code / RGB-to-gray conversion; added QSPI flash support for chips up to 32 MB; removed the obsolete CMSIS-CNNcnn.pyexample.
Bug fixes¶
Camera and imaging:
Fixed JPEG encoding corruption at HQQQVGA, binary (1-bit) image → JPEG compression, a
find_line_segments()regression (re-enabled theNOTDEFnon-aligned check), and minor OV2640 driver issues.
System and boot:
Fixed self-test / filesystem corruption (
selftest.pynow runs before USB MSC is enabled, and USB MSC is enabled on a fatal error so the host can read the error log), thepyb.DACwrite_timed(), the H7machine.I2Ctimings, F7 overdrive re-enable after stop mode, and thestop_mode.pyrtc.wakeup()interval.
Hardware and board support¶
OV5640 — full 5 MP camera driver with high-resolution framesizes.
OpenMV Cam H7 Plus — UVC (USB video) support; the
OPENMV4Rboard target was renamedOPENMV4P.QSPI flash — chips up to 32 MB are now supported.
Breaking API changes¶
User-visible API breaks between v3.5.2 and v3.6.0. Scope: Python C-modules in
modules/ and Python libraries in scripts/libraries/.
All three breaking changes are behavior changes (same API, different results) — re-check affected scripts. Each commit hash links to its diff on GitHub.
MicroPython updated to 1.12 (behavior)¶
The bundled MicroPython core was updated to 1.12. Standard-library and
language behavior follows upstream MicroPython 1.12; re-check scripts that
depend on version-specific micropython / standard-module behavior.
Commits: eafd431ea
image.get_histogram() threshold normalization changed (behavior)¶
image.get_histogram() (and get_statistics()) with color thresholds now
normalizes by the number of thresholded pixels rather than the whole ROI, and
uses floor instead of round for bin indexing. Histogram/statistics values for
thresholded calls differ from previous releases — re-tune code that compared
against absolute histogram values.
Commits: 7cf0f8089
OpenMV 3 JPEG/grayscale output changed (behavior)¶
To save flash, the OpenMV 3 (M7) YUV lookup table was disabled, so JPEG and grayscale output pixel values are computed slightly differently on the OpenMV 3. Output is still valid but differs marginally from prior releases; re-check pixel-exact comparisons on the OpenMV 3.
Commits: 0e4b46e41
Migration checklist¶
Re-validate scripts that depend on version-specific MicroPython behavior
against 1.12 (the MicroPython bump), re-tune code
that compared against absolute get_histogram() / get_statistics()
values when using color thresholds
(the histogram change), and re-check pixel-exact
comparisons on the OpenMV 3 (the OpenMV 3 output change). All other scripts run unchanged.