|
| 1 | +.. _changelog_v1_0_0: |
| 2 | + |
| 3 | +v1.0.0-beta |
| 4 | +=========== |
| 5 | + |
| 6 | +v1.0.0-beta is the **initial (beta) release of the OpenMV firmware** — the |
| 7 | +first public build of the OpenMV Cam. It establishes the foundation everything |
| 8 | +since builds on: a **MicroPython** scripting runtime on the STM32F4 OpenMV |
| 9 | +Cam, a camera ``sensor`` API, an ``image`` machine-vision library, and the |
| 10 | +OpenMV IDE for live development. As the first release there is nothing to |
| 11 | +migrate from — this entry summarizes what the initial firmware shipped with. |
| 12 | + |
| 13 | +.. contents:: On this page |
| 14 | + :local: |
| 15 | + :depth: 1 |
| 16 | + |
| 17 | +Highlights |
| 18 | +---------- |
| 19 | + |
| 20 | +- **MicroPython on the OpenMV Cam** — run Python scripts on the camera over |
| 21 | + USB with an interactive REPL and IDE debug interface. |
| 22 | +- **Camera capture** — the ``sensor`` module: configure pixel format / |
| 23 | + resolution / frame rate and grab frames with ``snapshot()``. |
| 24 | +- **Machine vision** — the ``image`` library: color blob detection, drawing, |
| 25 | + filters, template matching, Haar-cascade face detection, and keypoints. |
| 26 | +- **OpenMV IDE** — a desktop IDE with a live framebuffer viewer, code editor, |
| 27 | + and in-IDE firmware update. |
| 28 | +- **Hardware** — the original OpenMV Cam (STM32F4) with OmniVision OV9650 / |
| 29 | + OV2640 cameras, SD-card and WiFi-shield support. |
| 30 | + |
| 31 | +New features |
| 32 | +------------ |
| 33 | + |
| 34 | +Scripting and modules: |
| 35 | + |
| 36 | +- A MicroPython runtime as the firmware base, with on-camera script execution |
| 37 | + over a USB debug interface and an interactive REPL. |
| 38 | +- A ``sensor`` module — ``set_pixformat()`` / ``set_framesize()`` / |
| 39 | + ``set_framerate()``, gain ceiling / brightness / contrast / gain controls, |
| 40 | + ``reset()``, ``snapshot()``, and horizontal-mirror / vertical-flip — plus |
| 41 | + sensor and resolution constants. |
| 42 | +- An ``image`` machine-vision module (imlib) exposing image objects (with the |
| 43 | + Python buffer protocol) and the image-processing surface below. |
| 44 | +- A ``time`` / ``clock`` module for timing and FPS measurement. |
| 45 | +- Early peripheral modules — ``led`` (RGB LED), ``spi``, ``gpio`` (pin I/O |
| 46 | + with external-interrupt registration), ``uart``, hardware ``rng``, a |
| 47 | + systick timer, and ``file`` / ``select`` for the filesystem. |
| 48 | +- Networking via ``socket`` / ``wlan`` (CC3000 WiFi), an ``lcd`` display |
| 49 | + driver, an ``mlx90620`` thermal-sensor module, and AVI/MJPEG video |
| 50 | + recording. |
| 51 | + |
| 52 | +Image processing: |
| 53 | + |
| 54 | +- Camera frames captured into a dynamically allocated framebuffer. |
| 55 | +- Color blob detection (flood-fill) and LAB/XYZ-color-space thresholding |
| 56 | + (with RGB↔LAB conversion tables). |
| 57 | +- Drawing primitives (line, string/font, circle), filters |
| 58 | + (erode / dilate / median / invert / binary / threshold), image scaling |
| 59 | + (bilinear), sub-image extraction, blit, and alpha blending. |
| 60 | +- Template matching (with template save/load), Viola-Jones Haar-cascade |
| 61 | + face/object detection (loadable cascades + an OpenCV cascade converter), an |
| 62 | + LBP cascade and eye detector, FAST / SURF / FREAK keypoint detection and |
| 63 | + descriptor matching, integral images, and motion detection. |
| 64 | +- JPEG encoding (with quality control), PPM / PGM / PNG / raw image saving, |
| 65 | + and AVI/MJPEG video encoding. |
| 66 | + |
| 67 | +IDE and tooling: |
| 68 | + |
| 69 | +- The OpenMV IDE desktop application — live framebuffer viewer with FPS, a |
| 70 | + code editor (open / new / save / save-as, recent files, bundled Examples |
| 71 | + menu), connect / reset / auto-connect, and configuration load/save. |
| 72 | +- In-IDE firmware update over DFU, a pure-Python ``pydfu`` utility, and a |
| 73 | + force-into-bootloader USB command; the ``openmv.py`` host library/protocol; |
| 74 | + a standalone framebuffer viewer and cascade tool; and Linux udev rules. |
| 75 | + |
| 76 | +Other changes and improvements |
| 77 | +------------------------------ |
| 78 | + |
| 79 | +- Bundled example scripts: blob detection, face detection / tracking, SURF / |
| 80 | + keypoints, template matching, LCD, framebuffer viewer, blit, MJPEG |
| 81 | + streamer, AVI recording, echo server, FPS, and JPEG / image-write demos. |
| 82 | + |
| 83 | +Hardware and board support |
| 84 | +-------------------------- |
| 85 | + |
| 86 | +- **OpenMV Cam** — STM32F4xx (STM32F407 / F429) across the early hardware |
| 87 | + revisions, with CMSIS + STM32 peripheral/Cube HAL and CMSIS-DSP. |
| 88 | +- **Cameras** — OmniVision OV9650 and OV2640 (SCCB/I2C, regulator control) |
| 89 | + via a sensor HAL, plus the MLX90620 thermal IR sensor; resolutions from |
| 90 | + QQCIF/QCIF up to SVGA/UXGA at up to 30 FPS. |
| 91 | +- **Storage / connectivity** — SD card (SPI and SDIO) with FatFS, an internal |
| 92 | + flash filesystem, SDRAM (framebuffer in SDRAM), USB OTG FS (debug + DFU), |
| 93 | + CC3000 WiFi (WiFi / BLE shields), an IR LED, and soft/hardware I2C and |
| 94 | + DMA-driven SPI. |
| 95 | + |
| 96 | +Breaking API changes |
| 97 | +-------------------- |
| 98 | + |
| 99 | +None. v1.0.0-beta is the **initial (beta) release of the OpenMV firmware** — |
| 100 | +there is no prior release to break compatibility with. Subsequent releases |
| 101 | +document their breaking changes against their predecessor; see the rest of |
| 102 | +:ref:`the changelog <changelog>`. |
0 commit comments