v1.0.0-beta¶
v1.0.0-beta is the initial (beta) release of the OpenMV firmware — the
first public build of the OpenMV Cam. It establishes the foundation everything
since builds on: a MicroPython scripting runtime on the STM32F4 OpenMV
Cam, a camera sensor API, an image machine-vision library, and the
OpenMV IDE for live development. As the first release there is nothing to
migrate from — this entry summarizes what the initial firmware shipped with.
Highlights¶
MicroPython on the OpenMV Cam — run Python scripts on the camera over USB with an interactive REPL and IDE debug interface.
Camera capture — the
sensormodule: configure pixel format / resolution / frame rate and grab frames withsnapshot().Machine vision — the
imagelibrary: color blob detection, drawing, filters, template matching, Haar-cascade face detection, and keypoints.OpenMV IDE — a desktop IDE with a live framebuffer viewer, code editor, and in-IDE firmware update.
Hardware — the original OpenMV Cam (STM32F4) with OmniVision OV9650 / OV2640 cameras, SD-card and WiFi-shield support.
New features¶
Scripting and modules:
A MicroPython runtime as the firmware base, with on-camera script execution over a USB debug interface and an interactive REPL.
A
sensormodule —set_pixformat()/set_framesize()/set_framerate(), gain ceiling / brightness / contrast / gain controls,reset(),snapshot(), and horizontal-mirror / vertical-flip — plus sensor and resolution constants.An
imagemachine-vision module (imlib) exposing image objects (with the Python buffer protocol) and the image-processing surface below.A
time/clockmodule for timing and FPS measurement.Early peripheral modules —
led(RGB LED),spi,gpio(pin I/O with external-interrupt registration),uart, hardwarerng, a systick timer, andfile/selectfor the filesystem.Networking via
socket/wlan(CC3000 WiFi), anlcddisplay driver, anmlx90620thermal-sensor module, and AVI/MJPEG video recording.
Image processing:
Camera frames captured into a dynamically allocated framebuffer.
Color blob detection (flood-fill) and LAB/XYZ-color-space thresholding (with RGB↔LAB conversion tables).
Drawing primitives (line, string/font, circle), filters (erode / dilate / median / invert / binary / threshold), image scaling (bilinear), sub-image extraction, blit, and alpha blending.
Template matching (with template save/load), Viola-Jones Haar-cascade face/object detection (loadable cascades + an OpenCV cascade converter), an LBP cascade and eye detector, FAST / SURF / FREAK keypoint detection and descriptor matching, integral images, and motion detection.
JPEG encoding (with quality control), PPM / PGM / PNG / raw image saving, and AVI/MJPEG video encoding.
IDE and tooling:
The OpenMV IDE desktop application — live framebuffer viewer with FPS, a code editor (open / new / save / save-as, recent files, bundled Examples menu), connect / reset / auto-connect, and configuration load/save.
In-IDE firmware update over DFU, a pure-Python
pydfuutility, and a force-into-bootloader USB command; theopenmv.pyhost library/protocol; a standalone framebuffer viewer and cascade tool; and Linux udev rules.
Other changes and improvements¶
Bundled example scripts: blob detection, face detection / tracking, SURF / keypoints, template matching, LCD, framebuffer viewer, blit, MJPEG streamer, AVI recording, echo server, FPS, and JPEG / image-write demos.
Hardware and board support¶
OpenMV Cam — STM32F4xx (STM32F407 / F429) across the early hardware revisions, with CMSIS + STM32 peripheral/Cube HAL and CMSIS-DSP.
Cameras — OmniVision OV9650 and OV2640 (SCCB/I2C, regulator control) via a sensor HAL, plus the MLX90620 thermal IR sensor; resolutions from QQCIF/QCIF up to SVGA/UXGA at up to 30 FPS.
Storage / connectivity — SD card (SPI and SDIO) with FatFS, an internal flash filesystem, SDRAM (framebuffer in SDRAM), USB OTG FS (debug + DFU), CC3000 WiFi (WiFi / BLE shields), an IR LED, and soft/hardware I2C and DMA-driven SPI.
Breaking API changes¶
None. v1.0.0-beta is the initial (beta) release of the OpenMV firmware — there is no prior release to break compatibility with. Subsequent releases document their breaking changes against their predecessor; see the rest of the changelog.