v1.7.0¶
v1.7.0 introduces the cpufreq module (CPU frequency / overclocking
control), the MicroPython os module, MLX thermal-sensor refresh /
resolution control, and initial OpenMV Cam M7 (STM32F7) board bring-up.
The fir.init() signature, oversized-frame handling, and the default JPEG
quality changed — read the breaking changes below.
Highlights¶
cpufreqmodule — query / set the CPU frequency, with an overclocking example.MLX thermal —
fir.init()accepts a refresh rate and ADC resolution.OpenMV Cam M7 — initial STM32F7 board bring-up.
Breaking:
fir.init()is now keyword-only, oversized frames auto-crop, and the default JPEG quality dropped — see the breaking changes.
New features¶
cpufreq— added thecpufreqmodule withcpufreq.get_frequency()/cpufreq.set_frequency()and theCPUFREQ_120MHZ/144/168/192/216MHZconstants, plus anoverclocking.pyexample.MLX / FIR —
fir.init()now accepts a refresh rate and ADC resolution, with matchingrefresh/resolutioncontrols for the MLX thermal sensor.
Other changes and improvements¶
Tuned the OV7725 AGC/AEC region (less motion blur), enabled the DSP solid colorbar for the OV7725, and fixed IDE framebuffer streaming (no stale / duplicate frames).
Bug fixes¶
Fixed a DCMI/DMA transfer-size overflow in
sensor.snapshot(), cleaned up JPEG-compression buffer-overflow handling, improved the OV7725 AEC/AGC operating region for better auto exposure/gain, and corrected the colorbar / self-test scripts for the OV7725.
Hardware and board support¶
OpenMV Cam M7 (STM32F7 / OPENMV7) — initial board and bootloader support.
OpenMV 2 — sensor clock driven by the MCO output.
Breaking API changes¶
User-visible API breaks between v1.6.0 and v1.7.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 that used it.
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.
fir.init() is now keyword-only (minor)¶
fir.init() was reworked to take keyword arguments
(type= / refresh= / resolution=, default refresh 64 Hz, max
512 Hz) instead of positional arguments. Update positional
fir.init(...) calls to the keyword form.
Commits: 958c5b7f7
Oversized frames auto-crop to QVGA (behavior)¶
sensor.snapshot() no longer raises when the raw frame exceeds the board’s
maximum raw frame size — oversized raw frames are now windowed/cropped to
QVGA instead (only JPEG-mode raw is still rejected). Choose a supported
framesize if you relied on the previous error.
OpenMV 2 max framesize lowered to QVGA (behavior)¶
On the OpenMV 2, the maximum integral-image / raw / blob framesize was lowered from VGA to QVGA. Requesting VGA for grayscale / RGB565 / blob / integral-image operations on the OpenMV 2 now crops to QVGA — redesign scripts that depended on VGA processing on that board.
Commits: 7499062bd
Default JPEG quality reduced (behavior)¶
The default JPEG quality was reduced (default 50 → 35, with lower IDE
subsample thresholds) for more reliable streaming. Captured/streamed JPEGs
are visibly lower quality by default — pass an explicit quality to
image.compress() if you need the previous quality.
Commits: d9c8b1535
Migration checklist¶
For a clean port to v1.7.0 the typical work is:
Convert positional
fir.init(...)calls to the keyword form (the fir.init change).Use a supported framesize instead of relying on the old oversized-frame error (the oversized-frame change), and redesign VGA processing on the OpenMV 2 (the OpenMV 2 framesize change).
Pass an explicit
qualitytoimage.compress()if you need the previous JPEG quality (the JPEG-quality change).
All other scripts run unchanged.