From PaparazziUAV
Jump to navigation Jump to search

DFU (Device Firmware Upgrade) is the standard method to upload paparazzi code to a stm32fx MCU via usb.
The native dfu bootloader is already embedded in the ROM of the MCU. The MCU will not go automatically in dfu mode, so either Luftboot is needed or it is done on hardware side (e.g. stm32f4-discovery).

Entering dfu mode

With extra bootloader

Luftboot will enter dfu mode automatically if the board is connected to a pc.
KroozSD has also a own dfu bootloader.

With native dfu bootloader

This can be used on the stm32f4-discovery board e.g. Provide the board with power and connect the usb cable for dfu upload (stm32f4-discovery can bot be powred through micro usb ab port) Connect BOOT0 pin with 3V pin(BOOT1 with GND ?), press reset button , disconnect BOOT0 and 3V

dfu-util -l

this will list all devices in dfu-mode connected via usb

Airframe configuration

Flash_Mode=DFU must be set

<configure name="FLASH_MODE" value="DFU"/>

Software Tools

dfu-util is needed and must be installed

sudo apt-get install dfu-util

More information about dfu-util can be found at their Homepage http://dfu-util.gnumonks.org

USB permission

At least Luftboot (does dfu-util need extra udev rules?) needs acsess to the USB ports via "stm32_mem.py", just copy the paparazzi udev rules into your system.