Install PX4 bootloader on STM32 and verify it on QGC

Hi community,

I am new to the PX4 and want to install PX4 on STM32F411CEU6. The STM32 Bootloader page suggests that STM32F4 can support FMUv2 to FMUv4. Therefore, I compile the PX4-Bootloader and use the command dfu-util -a 0 -s 0x08000000:leave -D ./build/px4fmuv4_bl/px4fmuv4_bl.bin to flash the bootloader to my board.

ID 0483:df11
Run-time device DFU version 011a
Claiming USB DFU Interface...
Setting Alternate Setting #0 ...
Determining device status: state = dfuERROR, status = 10
dfuERROR, clearing status
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 011a
Device returned transfer size 2048
DfuSe interface name: "Internal Flash  "
Downloading to address = 0x08000000, size = 10768
Download        [=========================] 100%        10768 bytes
Download done.
File downloaded successfully
Transitioning to dfuMANIFEST state

After that, I try to use QGroundControl to test the bootloader; however, QGroundControl cannot recognize anything. I have also flashed the FMUv2 and FMUv3 bootloaders to my device, but I get the same failure.

I also compile the PX4-Autopilot. However, the bootloader in PX4-Autopilot, whose size is 2M, is significantly larger than the bootloader in PX4-Bootloader, whose size is 11K. The flash memory on my STM32F411CEU6 board is only 512K, and therefore, can not install the bootloader in PX4-Autopilot.

I am wondering whether anyone has already experienced this issue. Thanks a lot for your help!

Good day, do you mind pls tell what kind of board you are trying to flash?

1 Like

Sure! The board is STM32F411CEU6.

the board cannot support fmuv2,fmuv3 and fmuv4 due the size of the memory…clock etc. That kind of MCU can be use for design a CAN BUS BOARD ADAPTER OR CAN BUS GPS, but now it’s not used much

1 Like

Very thanks for your help! I am curious about the memory you mentioned. Does that memory mean the flash memory? I saw the compiled bootloader in PX4-Bootloader is 11K, which should be enough for STM32F411CEU6 with 512KB flash memory.

And I don’t know the difference between the bootloader (i.e., compiled .bin file) in PX4-Bootloader and PX4-Autopilot. The first one is 11K while the second one is 2M. I would appreciate it if you can help me figure out which one I should use.

I read the Reference Device page, which suggests:

  • FMUv4: Pixracer (STM32F427, 168 MHz, 256 KB RAM, 2 MB flash, pinout)

For my understanding, I should find a board with an MCU that has at least 168 MHz, 256 KB RAM, and 2 MB flash. Is this correct?

If you want develop an FC require time..it’s a nightmare. I can suggest check for an STM32H743…but for a trial just choose an Stm32F777

Humm… How about NUCLEO-F767ZI? It’s MCU is STM32F767ZI. I just want to prototype the PX4 on this board with QGC.

It’s a good option but you must define and build your own bootloader binary file and compile your own firmware.