15.4.1.3.5.4. Arduino boards

The STM32-based Arduino boards (Portenta H7, Giga, Nicla Vision) are flashed with dfu-util using absolute flash addresses through the Arduino DFU bootloader. The two Nano boards use their own tools.

15.4.1.3.5.4.1. STM32 Arduino boards: dfu-util

The board enters DFU when its serial port is opened at 1200 baud (a “touch” / double-tap reset); OpenMV IDE performs this automatically.

Board

DFU VID:PID

Firmware command

ROMFS command

Arduino Portenta H7

2341:035b

-a 0 -s 0x08040000:leave

-a 1 -s 0x90B00000:leave

Arduino Giga

2341:0366

-a 0 -s 0x08040000:leave

-a 1 -s 0x90B00000:leave

Arduino Nicla Vision

2341:035f

-a 0 -s 0x08040000:leave

-a 1 -s 0x90B00000:leave

Flash the application (Nicla Vision shown):

dfu-util -w -d ,2341:035f -a 0 -s 0x08040000:leave -D firmware.bin

Wi-Fi and Bluetooth need two additional blobs shipped with OpenMV IDE in share/qtcreator/firmware/CYW4343/:

Component

Flash address

File

Wi-Fi firmware

0x90F00000

cyw4343_7_45_98_102.bin

Bluetooth firmware

0x90FC0000

cyw4343_btfw.bin

15.4.1.3.5.4.2. Arduino Nano 33 BLE Sense: bossac

The Nano 33 BLE Sense (nRF52840) does not use dfu-util. Double-tap the RESET button; the board enters its bootloader and enumerates as the nRF52840 DFU device (2341:805a). OpenMV IDE flashes it with the bundled bossac, writing the application at flash offset 0x16000 – above the factory SoftDevice and bootloader, which are never written. The equivalent manual command (OpenMV IDE supplies the serial port) is:

bossac -e -w -v -R --offset=0x16000 firmware.bin

15.4.1.3.5.4.3. Arduino Nano RP2040 Connect: picotool

Hold the BOOTSEL button while connecting USB; the board mounts a USB mass-storage drive named RPI-RP2. Flash it either by copying a .uf2 file onto that drive, or with the bundled picotool:

picotool load -x firmware.uf2

OpenMV IDE triggers the reset and runs picotool automatically.

Warning

The Arduino boards’ bootloaders are factory-locked and cannot be restored by the user or by OpenMV IDE – only the application region is ever written. A damaged Arduino bootloader must be recovered with Arduino’s own tooling. The bootloader-restore procedures in Restoring the bootloader apply to the OpenMV-branded cameras only.