v4.8.1¶
v4.8.1 is built on Qt Creator 14.0.2 and centers on a new high-reliability OpenMV V2 camera protocol, a built-in Code Profiler, and a save workflow that keeps the camera mounted instead of ejecting it. Bundled firmware and the full example set are updated to 4.8.1. There are no scripting API breaks, but the save-no-longer-ejects behavior and the removal of a few launch-time serial flags are user-visible workflow changes.
Highlights¶
OpenMV Protocol V2 is a new high-reliability camera stack (
OMVCamera/OMVTransport/OMVDebug) with CRC32, sequencing, ACK/NAK, retransmission, events, and fragmentation. It is auto-negotiated at connect time and drives reset, boot, streaming, script execution, and stats.Code Profiler is a new window (
Window>Show Code Profiler) that polls per-function profiling records from the camera and shows calls, min/max/total/average microseconds (μs), average cycles, percentage, and event counters in a sortable table.Save in place no longer ejects the camera drive; the IDE now writes
main.pyand flushes the volume to disk so the device stays mounted.Multi-sensor detection reports every camera on a board, shown in the status bar as
Sensors: X, Ywith the main sensor listed first.Dynamic Frame Reading recomputes the best-fit raw streaming resolution per pixel format and reconfigures the stream automatically.
Bundled firmware and examples are updated to 4.8.1 across all boards, adding new GenX320 event-camera, TensorFlow ML, Alif OLED, and LCD/Touch-LCD shield examples.
New features¶
Added the OpenMV V2 communication protocol: a full transport and transaction layer with CRC32, sequencing, ACK/NAK, retransmission, events, and fragmentation, plus an
OMVCameraclass auto-negotiated on connect and integrated into the serial driver (2fde9eb3f, fff1bf2ba, 8c41fcfad, 7fc7ed4bc, 84c3956af, 669039adf, a49259852, 07af1922a, 85f0c7c87, 5070cc213, e314459cc, e0367ca95, 0da2f79d0, 2b6fc9866, 534ecffbe).Added the Code Profiler window (
Window>Show Code Profiler), which polls per-function profiling records and displays calls, min/max/total/average microseconds (μs), average cycles, percentage, and event counters, resolving addresses to symbols via a bundled ELFIO ELF parser (019d3cd2c, 57cd9e1cc).Added a Debug Protocol Settings dialog showing live System Info, Host Stats, and Device Stats refreshed every second, exposing per-channel polling rates plus combined vs split polling controls (5220a6125, 0da2f79d0).
Added multi-sensor detection: a board with more than one camera reports all of them in the status bar as
Sensors: X, Y, main sensor first (cebc79ce7).Added Dynamic Frame Reading (default on), which recomputes the best-fit raw streaming resolution per pixel format (
BINARY,GRAY,RGB565,ARGB8,JPEG,PNG) and reconfigures the stream (75c073bdb, 0da2f79d0).Added framebuffer decoding for
BINARY(1-bpp mono) andARGB8(32-bit alpha) raw pixel formats so those image types now render in the viewer (dabb82062).On Windows, Connect now scans for USB devices flagged with a problem by the OS and warns with a list of the bad devices that may block connection (1a5beb081, 1b59cd78e).
Added a status-bar registration indicator: a green
Registeredor coralUnregisteredbutton for the connected camera, clickable to register the board (a8c98a4b9).The framebuffer viewer can now display a centered text message sent from the running script via a new
FB_MESSAGEescape code instead of an image (530048201).Added new model-zoo entries: ST FastDepth depth-estimation models (224/256/320), an ST head-landmarks pose model, palm-detection and hand-landmarks hand models, and a BlazeFace front face-detection model (551668410, 4d64556d4, fadd6c4ed, b8277bb88, a8c98a4b9).
Added a factory-build-only self-test script (camera, IMU, ToF, WiFi, LAN) that is bundled and auto-opened on launch in the factory IDE variant (0db7fbbb0); the RT1060 LAN portion of the test is currently disabled (48370d022).
Other changes and improvements¶
Save in place: saving a script no longer ejects the camera drive; the IDE writes
main.pyand flushes the volume to disk (FlushFileBufferson Windows,syncfson Linux,sync_volume_np/F_FULLFSYNCon macOS) so the device stays mounted (1614c572f, 6928b51ea, 35ed53967).Toolbar actions clicked while the camera is busy (disable framebuffer, JPEG compress, save script, configure settings) are now queued and run automatically when the device is free instead of showing a Busy error dialog (f4315f0a4).
The framebuffer viewer now defaults to fit-in-view so the image auto-scales to the window on startup, and the serial terminal output pane is now shown by default at startup (f3ce4dc75).
Compiled model files with the
.liteextension are now recognized everywhere: model-zoo browser filtering and display, firmware ROMFS alignment, and the Vela/STEdge AI compilers now emit.liteoutput (f3ce4dc75).The STEdge AI (N6) model compile dialog now parses and reports NPU RAM and hyperRAM usage percentages and copies the relocated network output to a file matching the model’s extension (f3ce4dc75).
The model-zoo browser now shows the file Size column and stretches the name column to fit, instead of hiding size (f3ce4dc75).
The new-script template was updated to the new
csimodule API and defaults to VGA framesize, and the bundled Hello World example was switched from QVGA to VGA framesize (f3ce4dc75).The Convert Video dialog was rewritten to use the shared loader dialog with colored output, success/failure messages, an OK-to-close button, and a clear error when FFMPEG is unavailable on the platform (f56efc7be).
The framebuffer viewer now shows a blinking warning when a
JPEG/PNGimage is too big to buffer and send, via a newFB_BUFFER_ERRORescape code (fda826126).DFU bootloader entry now forces the bootloader to stay resident on V2-protocol firmware, with version detection that falls back to a plain reset on older bootloaders (<1.0.2) that could get stuck when forced (975857221).
Renamed and reorganized ST object-detection model folders (
st_yolo_lc_v1toyolo_lc,tiny_yolo_v2toyolo_v2,yolov8nperson models to plain size-named files) and removed the largetiny_yolo_v2int8 variants (34240cc3c).Serial timing is now tuned through the firmware
settings.jsonprotocoloverride keys (overrideReadTimeout,overrideReadStallTimeout,overridePerCommandWait, and the V2overrideCRC/overrideSEQ/overrideACKkeys) instead of launch-time command-line flags (019d8bf1d).Set the Python language-server line-length limit to 120 columns for flake8 and pycodestyle so long lines are no longer flagged at the default 79 (dabb82062).
Reduced the bundled machine-learning model set by moving the Qualcomm model collection and
google/mobilenet_v1intomodels_unusedto shrink the installer (c44ddba20).
Bug fixes¶
Firmware-download and resource-update progress dialogs were made crash-safe using
QPointerguards so they no longer use a deleted dialog if it closes mid-download (f3ce4dc75).Drive scanning now keeps rescanning until the camera’s USB drive is found and clears stale drive entries on disconnect, removing the previous one-shot timer hack (a31d41b4e).
Several connection and serial fixes: hidden sensors (e.g.
SoftCSI) no longer clutter the displayed sensor type, a Windows serial keep-alive timer prevents USB stalls, Start no longer restarts an already-running script, and the camera channel is disconnected cleanly on port close (a8e467be6).The profiler view restored its per-column PMU event-counter selection (checkable event menus) and saved counter/header state that had been temporarily disabled (40c679e90).
Platform and tool support¶
Qt Creator base: 14.0.2.
Bundled firmware: updated from 4.7.0 to 4.8.1, rebuilding firmware for OPENMV2/3/4/4P/PT, OPENMV_N6, OPENMV_AE3, OPENMV_RT1060, and the Arduino GIGA/Nicla Vision/Portenta H7 boards (2657818ca).
Fixed the protocol-version handshake on macOS for RT1062 and AE3 boards by splitting the multi-command USB transfer into
USBDBG_LEN-sized pieces those boards can handle (6b9d5f842).Reworked the bundled Windows driver package: added per-board signed
.cat/.infdriver files (AE3, H7, H7Plus, M4, M7, N6, Pico/PT, RT1062) and moved the CDC serial drivers into a newopenmvcdcfolder with a dpinst-based auto-installer (439557829, ba3b01bfb).Added support for older MT9V032 camera sensor revisions by registering sensor IDs
0x1311and0x1312(alongside existing0x1313) asMT9V0X2(eaaa624e3).
Breaking changes¶
This release has no scripting API breaks, but there are a few user-visible workflow changes:
Saving a script no longer ejects or unmounts the camera’s USB drive. The IDE now flushes the volume buffers in place, so the device stays mounted after a save.
The launch-time serial flags
-override_read_timeout(default 5000 ms),-override_read_stall_timeout(default 1000 ms), and-override_per_command_wait(default 1 ms, 2 ms on macOS) were removed; serial timing is now configured through theprotocoloverride keys in the firmwaresettings.json(019d8bf1d).Bundled bootloaders are now shipped as
.binonly; the per-board.dfufirmware and bootloader files were removed.