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 sensor module: configure pixel format / resolution / frame rate and grab frames with snapshot().

  • Machine vision — the image library: 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 sensor module — 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 image machine-vision module (imlib) exposing image objects (with the Python buffer protocol) and the image-processing surface below.

  • A time / clock module for timing and FPS measurement.

  • Early peripheral modules — led (RGB LED), spi, gpio (pin I/O with external-interrupt registration), uart, hardware rng, a systick timer, and file / select for the filesystem.

  • Networking via socket / wlan (CC3000 WiFi), an lcd display driver, an mlx90620 thermal-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 pydfu utility, and a force-into-bootloader USB command; the openmv.py host 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.