14.1.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.
14.1.1.3.5.4.1. STM32 Arduino boards: dfu-util¶
To enter the bootloader, double-tap the reset button (or open the board’s serial port at 1200 baud – the Arduino “touch” reset).
Board | DFU VID:PID | Firmware command | ROMFS command |
|---|---|---|---|
Arduino Portenta H7 |
|
|
|
Arduino Giga |
|
|
|
Arduino Nicla Vision |
|
|
|
Flash the application (Nicla Vision shown):
dfu-util -w -d ,2341:035f -a 0 -s 0x08040000 -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 |
|
|
Bluetooth firmware |
|
|
Flash both onto the external flash alt, with :leave on the final transfer (Nicla Vision shown):
dfu-util -w -d ,2341:035f -a 1 -s 0x90F00000 -D cyw4343_7_45_98_102.bin
dfu-util -w -d ,2341:035f -a 1 -s 0x90FC0000:leave -D cyw4343_btfw.bin
14.1.1.3.5.4.2. Arduino Nano 33 BLE Sense: bossac¶
The Nano 33 BLE Sense (nRF52840) does not use dfu-util. To enter the bootloader, double-tap the RESET button; the board enumerates as the nRF52840 DFU device (2341:805a). Flash it with bossac, writing the application at flash offset 0x16000 – above the factory SoftDevice and bootloader, which are never written:
bossac -e -w -v -R --offset=0x16000 firmware.bin
14.1.1.3.5.4.3. Arduino Nano RP2040 Connect: picotool¶
To enter the bootloader, 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 picotool:
picotool load -x firmware.uf2
Warning
The Arduino boards’ bootloaders are factory-locked and cannot be restored by the user – 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.
See also
To wipe the camera’s internal FAT filesystem – the fix when a bad main.py or a corrupted filesystem stops the camera from booting – see Erasing the internal filesystem.