How to flash STM32 PlatformIO firmware using dfu-util
First, you need to find the correct firmware file. dfu-util will flash firmware.bin
, not firmware.elf
. You can find firmware.bin
in
.pio/build/[PROFILE_NAME]/firmware.bin
inside your project folder. [PROFILE_NAME]
is the name of the build profile you’re using, i.e. the name of the section in platformio.ini
. For example:
.pio/build/BIGTREE_OCTOPUS_V1/firmware.bin
Now flash using dfu-util
:
dfu-util -a 0 -D .pio/build/PROFILE_NAME/firmware.bin -s 0x08000000
Flags:
-a 0
. The STM32 appears as four different devices indfu-util
(seedfu-util --list
): The flash, option bytes, RAM etc each appear as a separate device. We only care about the flash device, which is always the first (index0
) of those devices, at least in every board I have seen so far-D [filename]
: Download the firmware to the device-s 0x08000000
: Flash at address0x08000000
which is the address of the STM32 flash.