v4.7.0¶
v4.7.0 is a large NPU- and ROMFS-focused release built on Qt Creator 14.0.2. It introduces an on-device ROM filesystem workflow with integrated ARM Ethos-U (Vela) and ST Edge AI model compilers, adds STM32CubeProgrammer-based factory programming for the OpenMV N6, and bundles OpenMV firmware 4.7.0 across every board. Note that upgrading any camera from a pre-4.7.0 firmware now forces a FAT filesystem erase and ROMFS reset, which wipes files stored on the device’s internal flash; see Breaking changes below.
Highlights¶
ROM File System workflow lets you create, edit, flash, and reset an on-device read-only filesystem so ML models can be stored on the camera, integrated across the DFU, IMX, Bossac, Picotool, and Arduino-DFU bootloaders. (efcc52fd8, f2cbcc802, a7e52424a, 60b05326d, 7140fc2aa)
ARM Ethos-U Vela and ST Edge AI model compilers are now integrated so
.tflite/.onnxmodels are automatically compiled to the NPU when loaded onto Ethos-U55 (OpenMV AE3) or Neural-ART (OpenMV N6) boards. (411f708ea, 3064411ad)STM32CubeProgrammer is now bundled to enable factory programming of the OpenMV N6 (STM32N657) bootloader via a
FlashLayout.tsv. (334b04dbd, 54fea4d57, 28cc94a6e)Model Zoo browser gains a “Filter models by board type” checkbox driven by a new
models/index.csvtable that hides models incompatible with the connected board. (80adb2079)Per-extension ROMFS alignment: the ROMFS image editor now sorts files alphabetically and packs them using byte-alignment rules from
settings.json(e.g..tflitemodels aligned to 16 bytes). (e87b2bf06)Bundled firmware updated to 4.7.0 across all OpenMV and Arduino boards. (6d04b1b50, d0bbb1fe7, d7d3120b3)
New features¶
ROM File System submenu (
New/Open/Edit ROMFS on OpenMV Cam/Reset ROMFS on OpenMV Cam) replaces the old singleEdit ROM File Systemaction. (0bc275a0a, 958f732b5)Open Model Zoo browser with persistent selected-model state and a selection-change preview, including bundled STMicroelectronics, Qualcomm, DeGirum, Edge Impulse, and Google model libraries. (58033c5df, 2a1fb071a, 48c5b96fe, c0959833c)
Convert Model for NPU menu item under
Machine Vision Toolscompiles a TensorFlow Lite (.tflite) or ONNX (.onnx) model for the board’s NPU accelerator (Vela for Ethos-U.tflite, ST Edge AI for the N6 Neural-ART.tflite/.onnx) and saves the converted model to disk or the camera. (3913f5b8b)Copy/Convert Python File tool copies a Python script to the camera or disk and optionally cross-compiles it to MicroPython
.mpybytecode viampy-cross; it lives in a newMicroPython Toolssubmenu underTools. (e9d7fa143, 47188c0e3)Wrap Text toggle buttons were added to the OpenMV serial terminal and the
General Messagesoutput pane; both word-wrap their output and persist the setting across sessions. (8c052845a, 51d3e1ad6)mpy-cross ROMFS cross-compilation with per-board architecture flags (
armv7emsp/armv7emdp) lets MicroPython scripts be frozen into ROMFS images. (8c71548df)The firmware bootloader dialog now accepts
*.imgROMFS files alongside*.binand*.dfu, validates per-bootloader extensions, and disables the existingReset ROMFS file systemcheckbox when loading an*.imgfile. (79f348b36)Pre-4.7.0 upgrades now force the FAT-erase and ROMFS reset/update checkboxes on and warn that upgrading requires erasing the FAT filesystem. (f6f3355b0)
Other changes and improvements¶
Reorganized the bundled Qualcomm model zoo into task-based folders (
image_classification,object_detection,pose_estimation,semantic_segmentation,depth_estimation), removed unsupported large models (YOLOv7, YOLOv8, deeplabv3, mobilenet_v2), and addedresnet18anddensenet_121(with broader board compatibility), plusfacemap_3dmmandFFNet_40S(AE3/N6 only). (300ce2fc2)Added a new Edge Impulse model vendor (FOMO face-detection model) and new Google models (
micro_speech,mnist_lstm,person_detection) to the bundled model zoo, and added aView/Editaction to the ROMFS editor context menu. (80adb2079)Cleaned up model-zoo links: added the Qualcomm
face_attrib_netmodel (AE3/N6), removed the broken YOLO-NAS entry, and corrected board compatibility filters for several STMicroelectronics object-detection models. (fd639bda0)Added more model labels, switched one model’s NPU accelerator config from
staitostedgeai, and broadened thest_yolo_xboard-compatibility filter (now also OPENMV_RT1060, OPENMV4P, ARDUINO_GIGA, PORTENTA_H7, and NICLA_VISION in addition to AE3/N6). (1515631ce)Adding a
.tflitemodel to ROMFS now skips Vela/Ethos-U compilation if the model is already Ethos-U compiled (it is just copied), and the dialog action was renamed fromAdd ModeltoModel Zoo. (9c0b178fa)ST Edge AI compilation skips conversion for models already in the
NBINformat. (3064411ad)The Vela compiler dialog parses the model’s reported SRAM usage against each board’s configured heap size and shows a percentage with warnings/errors when the model exceeds 90% or 100% of available heap. (7140fc2aa)
The Vela compiler now reports a clear “not supported on this platform” error instead of failing silently, and dropping a model into the model zoo no longer requires Vela to be present. (c736dd54d, 0ad7fd705)
The Vela Ethos-U compiler now runs via the bundled embedded Python runtime (
python -m ethosu.vela) instead of a standalone binary. (52f9b8820)Long-running ST Edge AI and Vela model-compilation dialogs now show a “This command takes a while to execute. Please be patient.” notice. (fc9ac2ab5)
Opening examples or new scripts on PAG7936 (N6/AE3) and PS5520 sensors now automatically bumps
sensor.set_framesize(QVGA)toVGAfor the higher-resolution sensors. (dfc27dd25)Added auto-fixup of example scripts for FLIR Boson 320/640 thermal cameras, PixArt PAG7920/PAJ6100, FROGEYE2020, and the Prophesee GENX320 event camera. (1f54ad01b)
Downloadable IDE resources (firmware/models/docs) now install to a shared all-users application-data directory via a new
ICore::allUsersResourcePath()API, with the resource version manifest stored in anOpenMVIDE.jsonfile one level above the all-users resource folder. (be308ace2, 7c7dddb87)During Alif system-package firmware updates the IDE now prompts the user to power-cycle (disconnect and reconnect) the camera before continuing. (162d128f9, 756611696)
Reworked the Alif (Ensemble) bootloader/firmware download flow to be ROMFS-compatible: it generates the App TOC after writing the bootloader, copies bin/sign images into an
images/subfolder, and flashesfirmware_pad.toc. (f623c9231)Simplified board display names in the firmware selector by dropping the redundant chip-in-parentheses suffixes and the “Legacy” tags (e.g. “OpenMV Cam H7 (STM32H743)” becomes “OpenMV Cam H7”). (334b04dbd)
Renamed two Tools-menu actions for clarity:
Run Bootloader (Load Firmware)is nowLoad Custom Firmware, andErase Onboard Data Flashis nowErase Internal FAT File System(the confirmation dialog now refers to the camera’s internal FAT file system). (0bc275a0a)Restored the
Ctrl+Shift+L(Load Custom Firmware) andCtrl+Shift+E(Erase Internal FAT File System) keyboard shortcuts, and moved thePreferencesitem back into theEditmenu. (dabb6f7d9, b5daf59a6)Disabled automatic C/C++ compiler and toolchain auto-detection at startup, since the IDE targets MicroPython. (f42fcc8f2)
Added the Alif Semiconductor partner logo (light/dark) to the
Aboutdialog partners section. (4878781bb)Reading the connected board’s firmware can now flush stale serial-port data before issuing the command, improving reliability of firmware/version queries. (c15a46f5b)
Improved ROMFS connection reliability by forcing a reconnect/refresh on ROMFS read, write, and reset operations. (f9bc83007)
Bug fixes¶
Fixed model/script save dialogs and ROMFS add-file/add-model to use the simple file suffix instead of the complete suffix, preventing mangled extensions when renaming files with dots in their names. (52c6820d2)
Fixed a DFU upload progress-bar overflow on large transfers by computing the percentage with 64-bit arithmetic. (4b91ff2ba)
Fixed flashing of older OpenMV firmware/bootloaders by guarding flash erase and program steps against invalid (non-positive) flash sector ranges and showing an explicit error instead of crashing, and fixed the ROMFS-access guard during old-firmware upgrade. (ae2cc15b4, 235dbdb10)
Fixed serial-port board detection so the serial-number inverse filter is only applied during port validation (not during connection), and added inverse filters for the i.MX board so bootloader-mode serial numbers are excluded. (ae2cc15b4)
Fixed board-type persistence so a previously saved board mapping is no longer overwritten when a manual board-type selection is made. (c42d36001)
Bootloader repair now resolves a hidden board’s display name to its architecture string so reconnect/firmware-repair maps the correct board. (a1de7a09c)
Board detection now matches board architecture strings case-insensitively. (7a2e0e93f)
Fixed the device disk failing to mount on quick disconnect/reconnect by persisting the drive-scan thread and retrying drive scans up to three times, and made drive scanning reliably run on the scan thread. (455dbe967, 58c0e5456)
Fixed the model compiler (ST Edge AI and Vela) failing to run on Intel Macs by allowing the ARM64 tool path when running under Rosetta. (32e309e86)
Fixed Python tool and language-server cache issues by routing all bundled Python
__pycache__into a shared resource directory and pre-warming the i.MXblhostpycache before the time-limited bootloader connect so flashing no longer times out. (f64f3330f)Fixed the MicroPython header path used by the Python language server (for autocompletion) to resolve from the all-users resource path, and made the all-users resource path lookup more robust when username filtering finds nothing. (5f2648565, fc1938818)
Fixed broken ST Edge AI documentation links in the compiler-options dialog by converting local file paths to proper
file://URLs. (3ac136444)Fixed Python editor auto-indentation so lines are no longer incorrectly dedented after a colon-ending (electric) line, e.g. after
if/for/defheaders. (6555f44ba)Fixed ROMFS directory record alignment so folder offsets account for the directory name record size, and increased the inter-file delay when unpacking/creating ROMFS and model-zoo files to ensure distinct creation timestamps. (9bf7e1d9e, d968a6e46)
Fixed an integer-overflow in the Vela graph optimiser’s mean-to-depthwise-conv conversion by computing the output multiplier in 64-bit, and fixed the basename used in the Vela compiler dialog title/output. (d217a46e9, 8376490eb)
Fixed restoring the model zoo browser’s expanded folders and selected model on reopen, and switched the dialog to heap allocation to avoid GUI lifetime issues. (84a63ef4c)
Fixed the Model Zoo save-as path so the remembered directory is stored as a folder rather than a full filename. (be877f7af)
Kept the legacy user resource path instead of deleting it on startup, avoiding a “close any programs viewing OpenMV IDE data” error when the old folder is locked. (775656775)
Fixed the Windows driver installer scripts and catalog/inf files so OpenMV DFU, dfuse, FTDI, Arduino, pybcdc and VCR drivers install reliably and report success codes correctly, hardened the dfuse/vcr DFU driver install scripts, and re-signed the bundled OpenMV DFU driver catalogs. (48a0a21e3, b7b607250, b4221a884, e4f3bb8f8, 62e869c0b, 583576f2a)
Fixed the Linux installer to install
pyusbvia the distropython3-usbpackage and addbuild-essentialinstead of runningpip install pyusb, and to detect the OS via/etc/os-release. (c471ddc42, 4014a0ba5)The Windows installer now enables long path support so deeply nested ST Edge AI files install correctly. (0b3ca6945)
Platform and tool support¶
Qt Creator base: 14.0.2.
Bundled OpenMV firmware: updated to 4.7.0 across all OpenMV and Arduino boards (OPENMV2/3/4/4P/PT, RT1060, GIGA, Portenta H7, Nicla Vision, Nano 33 BLE/RP2040, AE3, N6); firmware was rebuilt with ROMFS support (
romfs0.img). (6d04b1b50, c44e33d70, a1de7a09c)OpenMV N6 ROMFS: increased from 16MB to 24MB, with the romfs image moved to DFU alt-setting 3. (d0bbb1fe7, d7d3120b3)
OpenMV AE3 ROMFS: increased from 16MB to 24MB, with 16/32-byte alignment rules added for bundled
.binmodel files across all boards. (746da8914)STM32CubeProgrammer (STM32_Programmer_CLI) bundled for macOS, Linux, and Windows with the full STM32 device database and external loaders for N6 factory programming; the install was trimmed of unused external-loader and per-MCU database files to shrink size. (334b04dbd, 54fea4d57, 28cc94a6e, 2522c900f)
ST Edge AI (stedgeai) compiler 2.1.0 bundled (Windows) for the N6 Neural-ART NPU. (3064411ad)
ARM Ethos-U Vela compiler 4.2.0 (with numpy 2.2.4) bundled for Linux x86-64, macOS (Apple silicon), and Windows. The Windows bundle was first added at Vela 4.1.0 / numpy 2.2.3 and later bumped to the final 4.2.0 / numpy 2.2.4. (f9323a1d6, 5f551a5c5, 6506497c6, bcda7d1f0)
mpy-cross 1.25.0.post2 bundled (macOS/Windows). (8c71548df, 3ab42d58a)
Alif Security Toolkit: updated to v1.104.0 (signed setools binaries and v1.104.0 User Guide PDF) for Alif Ensemble-based boards. (43260719c, 75a58e61b)
Added OPENMV_AE3 (Alif Ensemble) NPU configs targeting ethos-u55-256 and ethos-u55-128 accelerators with RTSS HP/HE SRAM/MRAM/OSPI system configurations. (1f5fc546d, 411f708ea)
Added pinout diagrams for the OpenMV N6 and AE3 cameras (PAG7936 sensor) to the pinout selector, and a new Genx320 grayscale event-camera example demonstrating anti-flicker filter configuration. (60184bbc5, 6d04b1b50)
Updated Arduino Nicla Vision USB PID matching to recognize a new application PID (0x055F) alongside the original (0x045F). (91ce4007c)
Updated NXP/blhost secure-bootloader flashing parameters to use explicit FCB address/length and an MBR disk size, aligning with the latest spsdk toolkit. (16b66c3e2)
The Windows installer now bundles a dedicated STM32 DFU bootloader driver and the Microsoft Visual C++ 2015+ redistributables. (cdcd4a5a6, 0cdebfc4c, a02b1f21a)
Removed the bundled DeGirum YOLOv5/YOLOv8 model zoo from the IDE. (26710be1c)
Breaking changes¶
User-visible workflow and behavior breaks in v4.7.0. There is no scripting API break, but note the following:
FAT filesystem erased on pre-4.7.0 upgrade. Upgrading any OpenMV Cam from a pre-4.7.0 firmware now forces erasing the FAT filesystem and resetting/updating the ROMFS during the firmware update (the dialog checkboxes are forced on and cannot be disabled), so user files stored on the device’s internal flash will be wiped on upgrade. (f6f3355b0)
UVC firmware and Portenta H7 bootloader binaries removed. The prebuilt UVC webcam firmware images (
uvc.bin/dfu/elf) were removed for all boards, and the Arduino Portenta H7 bootloader binaries were removed from the bundle; these prebuilt images can no longer be flashed from the IDE. (c44e33d70)Resource directory relocation. Downloadable IDE resources (firmware, model zoo, documentation) now install into a shared all-users application-data directory instead of the per-user resource path, and the version manifest moved from QSettings to an
OpenMVIDE.jsonfile stored one level above the all-users resource folder (with backward-compatible QSettings mirroring). A resource re-download is triggered on first run after upgrade. (be308ace2, 7c7dddb87)