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?

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

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.