v2.4.0¶
v2.4.0 is built on Qt Creator 4.0.2 and centers on the new V3 bootloader (QSPI flash layout query during firmware loading and erase during a full onboard-data-flash erase), live sensor and board reporting in the status bar, and a new 32-bit USB debug protocol that matches the bundled firmware. It also adds a first-run LED guide and a large set of new TensorFlow, Modbus, and WiFi examples. Because the debug protocol changed, cameras must run the new bundled firmware to connect.
Highlights¶
V3 bootloader support queries the layout of a board’s external QSPI flash during firmware loading and erases it during a full onboard-data-flash erase (d953df62f).
Sensor and board reporting queries the connected camera’s sensor module on connect and shows it in the status bar (OV2640, OV5640, OV7690, OV7725, OV9650, MT9V034, LEPTON) alongside a new board type label (0ffa82958).
TensorFlow model copy lets you copy
.tflitemodels to the cam, not just.networkneural-network files (ad1aa98f0).Erase Onboard Data Flash is a new
Toolscommand that erases only the cam’s onboard filesystem flash, after a confirmation prompt, without reflashing firmware (d953df62f, 98686ac46).First-run LED guide is a new
OpenMV Cam LED Colorsdialog that explains the onboard LED states and can be dismissed permanently (c2d00422f).
New features¶
V3 bootloader queries the QSPI flash layout during firmware loading and erases the external QSPI flash only during a full onboard-data-flash erase;
connectClickedalways drivesbootloaderQSPIFLayouton V3 boards but runsbootloaderQSPIFEraseonly whenforceFlashFSEraseis set (QSPI write/memtest commands are implemented in the IO layer but are not exercised by the loader) (d953df62f).Sensor and board status queries the camera’s sensor module on connect and displays it (OV2640, OV5640, OV7690, OV7725, OV9650, MT9V034, LEPTON) in the status bar, along with a new board type label, using a new
sensors.txtid-to-name map (0ffa82958).First-run LED guide adds a new
OpenMV Cam LED Colorsdialog that pops up after a short delay whenhelloworld_1.pyis the open document on first run, explaining the onboard LED states (blinking green = bootloader running, blue = runningmain.py, white = hardware-failure panic); a “Don’t show this message again.” checkbox persists the dismissal via aDONT_SHOW_LED_STATES_AGAINsetting (c2d00422f).Open OpenMV Cam Drive folder is a new
Toolsmenu item that opens the camera’s mounted drive in the system file browser (a49f54305).Erase Onboard Data Flash is a new
Toolscommand that erases only the onboard filesystem flash, after a confirmation prompt, without reflashing firmware (d953df62f, 98686ac46).TensorFlow model copy lets the model-copy dialog copy
.tflitemodels to the cam in addition to.networkneural-network files; the dialog filter also gainedLabel Files (*.txt)andAll Filesentries (ad1aa98f0, 0ffa82958, c0dbdd9e5).Debug-protocol version switch breaks up
GetAttribute,SetAttribute,FBEnable, andJPEGEnableserial commands when talking to firmware 3.5.3+ for reliability (83b9ca18f).New bundled examples add TensorFlow Lite mobilenet and person-detection sliding-window scripts plus an STM32Cube.AI (
nn_stm32cubeai.py) MNIST example, a new32-modbusfolder (modbus_rtu_slave.py,modbus_apriltag.py), WiFi shield additions (http_client_ssl,static_ip,mqtt_pub/mqtt_sub), Arduino UART/SPI-slave, and CAN (e26b90d79, 42ba8f5c4).
Other changes and improvements¶
Updated the USB debug protocol to the new firmware: attribute reads use the new 32-bit
ATTR_READ_2(0xCA) command, and attribute, value, and framebuffer-enable payloads are sent as 32-bit longs instead of 16-bit words (55d7cfe70).Relabeled Save open script to OpenMV Cam to Save open script to OpenMV Cam (as main.py) to clarify it writes
main.py(a49f54305).Relabeled Run Bootloader to Run Bootloader (Load Firmware) to clarify its purpose (ad1aa98f0).
Example menus are now sorted by their numeric folder/file prefix, and the leading
NN-digits are stripped from the displayed names (ad1aa98f0).Output and serial terminals now render tabs as spaces using a configurable serial-terminal tab width from the text-editor settings instead of a hardcoded width of 8 (98686ac46).
Linux drive detection now also accepts
fuseblk-mounted filesystems (for example exFAT/NTFS volumes) when associating the camera drive (c0dbdd9e5).Updated the bundled MicroPython HTML documentation set (library reference, esp8266/esp32 tutorials, generated pages and images) shown in the IDE help (e69d71f7c, 90b5c6eb5, 97b0f645a).
Bug fixes¶
Fixed a numeric overflow in the histogram statistics (mean, quartiles, median, standard deviation) by widening the accumulators from
intto 64-bit, preventing wrong stats on large images (55d7cfe70).Reworked disconnect/eject on Linux: the unreliable
syncfs/closedirflush was removed and the drive is now unmounted with a plainumountcommand, with no progress dialog (b86d5c62c, c0dbdd9e5, 30d4a7d2d).The board’s USB drive is now only associated when the firmware is new enough or a
.openmv_diskmarker file is present, preventing the IDE from grabbing the wrong removable drive (e464eaed4).Fixed reconnect logic so triggering a bootloader/erase operation while connected now cleanly disconnects first and then retries, avoiding a stuck working state (d953df62f).
Rewrote the comment/whitespace stripper used when sending scripts to the cam as a string-aware state machine, so
#characters inside strings are no longer mistaken for comments, and trailing whitespace and docstrings are handled (24dff1b2f).Fixed translation-string handling for several connection/terminal dialog messages so the embedded shell commands (
sudo adduser,pydfuinstall steps) are no longer part of the translatable text and render correctly (b5705a57e).
Platform and tool support¶
Qt Creator base: 4.0.2.
Renamed the OpenMV Cam H7 Plus board/firmware from
OPENMV4RtoOPENMV4P(OMV4P_H7_32768_SDRAM) and bundled its firmware under the new name (c0dbdd9e5).Corrected the H7 Plus board display name to use underscores instead of spaces (
OpenMV_Cam_H7_Plus_(STM32H743_w/_SDRAM)) (75764132c).Bundled firmware was updated across the release, ending at version 3.5.2 for OPENMV2/3/4/4P (final bump in 15c07498c; earlier cumulative bumps in 42ba8f5c4 to 3.4.2, a99c2e3e1 to 3.4.3, e26b90d79 to 3.5.0, and 97b0f645a to 3.5.1).
Bundled firmware versions: OPENMV2 (Cam M4) 1.4.11, OPENMV3 (Cam M7) 1.4.11, OPENMV4 (Cam H7) 1.2.15, OPENMV4P (Cam H7 Plus) 1.2.15.
OpenMV IDE version bumped from 2.2.1 to 2.4.0.
Breaking changes¶
The USB debug attribute-read protocol was switched from the old 16-bit
ATTR_READ (0x8A) command to the new 32-bit ATTR_READ_2 (0xCA)
command, and attribute, value, and enable payloads are now sent as 32-bit
longs; the IDE also queries the camera sensor ID on connect. This requires
firmware that implements the new protocol. The bundled 1.2.15 / 1.4.11
firmware provides it, so older cameras must be flashed to the new firmware to
connect.