forked from odriverobotics/ODrive
-
Notifications
You must be signed in to change notification settings - Fork 0
DFU
Bogdan Seczkowski edited this page Dec 14, 2025
·
1 revision
This page explains how to flash a released firmware image using the STM32CubeProgrammer and the board bootloader.
- Download the firmware from Releases
- Visit: https://github.com/brokenpotatoes/ODrive/releases
- Download the latest firmware artifact (for example
ODriveFirmware.hexorODriveFirmware.bin).
- Prepare the board for the system bootloader (USB DFU)
- Connect the board to your PC via USB.
- Hold the
BOOTbutton, then press and releaseRESETwhile still holdingBOOT. ReleaseBOOTafter reset. The MCU will enter the system bootloader.
- Open STM32CubeProgrammer
- Launch STM32CubeProgrammer (Windows/macOS/Linux) and select the
USBinterface (orST-LINKif you prefer flashing via ST-Link). - If using USB DFU, STM32CubeProgrammer should detect the device in the list once the board is in bootloader mode.
- Flash the firmware
- In STM32CubeProgrammer choose
Erasing & Programming(orDownload), thenBrowseto select the downloaded.hexor.binfile. - Select the target memory address if required (use the default for
.hexfiles). ClickStartorDownload. - Wait for the operation to complete and verify there are no errors.
- Restart the board
- After flashing, disconnect and power-cycle the board (or press
RESET) to boot the new firmware.
Notes and troubleshooting
- If STM32CubeProgrammer does not detect the device, ensure the USB cable supports data and try another USB port.
- On Linux you may need udev rules or run STM32CubeProgrammer as
sudoto access USB devices. - As a fallback you can use
ST-LINKflashing (make flash/openocd) if you have an ST-Link programmer.