15.4.1.3. Flashing the firmware

Once you have a firmware.bin (and its romfs<n>.img) from Building the firmware, program it onto the camera. OpenMV IDE is the recommended method; the command-line procedure differs by camera family and is documented per family on the pages linked at the bottom. The bootloader itself is restored separately – see Restoring the bootloader.

15.4.1.3.2. Windows: install the USB drivers

Windows has no built-in driver for the camera’s USB DFU, SDP, and ISP interfaces, so the command-line tools (dfu-util, the NXP SPSDK tools, the Alif SE Tools) cannot detect the device until a WinUSB driver is bound to it. OpenMV IDE’s Windows installer installs all of these drivers, so the simplest approach is to install OpenMV IDE once – after which both the IDE and the command-line tools work. This is why GUI flashing succeeds on a fresh Windows machine while a standalone dfu-util does not.

If installing the IDE is not an option, run the matching driver installer from OpenMV IDE’s share/qtcreator/drivers/ directory as Administrator:

Driver installer

USB devices it binds

openmv\openmv.cmd

OpenMV and AE3 DFU devices, and the RT1062 SPSDK interfaces (0x1FC9:0x0135 SDP ROM and 0x15A2:0x0073 flashloader)

arduino\arduino.cmd

Arduino DFU devices (2341:03xx)

ftdi\ftdi.cmd

The FTDI 0403:6015 adapter used for AE3 bootloader recovery

DFU_Driver\STM32Bootloader.bat

The ST 0483:df11 system DFU device used for STM32 bootloader recovery

Alternatively, bind WinUSB to the specific VID:PID with Zadig or pnputil. No command-line flashing on Windows works without this. Linux and macOS need no driver installation (Linux requires only the udev rules noted on the per-camera pages).

15.4.1.3.3. Flashing over SWD (make deploy)

If a debug probe is already wired to the camera – as it is for debugging – the fastest edit-build-flash cycle bypasses USB DFU and programs the chip directly over SWD. On the STM32 cameras:

make -j$(nproc) TARGET=<TARGET> deploy

This flashes the freshly built firmware via STM32_Programmer_CLI (from the SDK) over the connected probe. There is no bootloader entry, no USB re-enumeration, and no cable swapping: build, run deploy, and the camera restarts running the new code. This is the recommended workflow during active firmware development. Use DFU or OpenMV IDE when flashing without a probe or when distributing firmware to others.

15.4.1.3.4. Entering bootloader / DFU mode

Flashing requires the camera to be in its bootloader / DFU mode. There are three ways in:

  • Software reset (normal). OpenMV IDE (or a mpremote / serial reset) tells running firmware to reboot into the bootloader. This is automatic during Load Custom Firmware and is all you normally need.

  • BOOT–RST jumper (recovery). If the firmware is too damaged to accept a software reset, disconnect the camera, jumper the BOOT and RST pins, and reconnect; it enumerates as the ST system DFU device. This is the recovery path, covered in detail on Restoring the bootloader.

  • Arduino touch-reset. Arduino boards enter DFU via a 1200-baud touch / double-tap reset; OpenMV IDE handles this automatically for those targets.

15.4.1.3.5. Command-line flashing by camera family