Custom PX4 firmware based on Holybro Kakuteh7

Hi all,
I’ve been trying to build px4 firmware for my custom flight controller running on STM32H743VIT6. I’ve chosen the holybro kakuteh7 as the closest match and am building my firmware based on this.

referring to this link : https://docs.px4.io/main/en/hardware/porting_guide_nuttx.html I’ve done the following steps:

I didn’t make a copy of the kakuteh7 firmware as suggested, instead I just made the modifications on top of this firmware. So Board ID, Vendor, name are all the same.

  1. Used make holybro_kakuteh7_qconfig and changed the nuttx defconfig parameters wherever needed
  2. Updated the clock settings in nuttx-config/include/board.h, while leaving everything else the same
  3. board_config.h and init/rc.board_sensors have been left untouched.

I’m able to build the firmware and flash it to my target device using STM32CubeProgrammer, however, the device is unresponsive. It is not detected as a USB device nor does QGC detect it.

How can I debug the acitivty and find out the root cause?

You need to set up one of the serial ports as the console, like this:

And then you can connect to it with an FTDI cable and get the output.

If that doesn’t help, you’ll have to connect SWD to a debugger such as BlackMagic probe or JLink and fire up gdb.

Hi Julian,
I have successfully built and flashed just the PX4 bootloader to address 0x08000000 on my custom STM32H743-based flight controller. Upon doing so, the device correctly enumerates as a USB CDC ACM device, confirming that the bootloader, USB interface, and initial hardware setup are functioning as expected.

However, after flashing the main PX4 application firmware to address 0x08020000, the device no longer appears as a USB device, and there is no output on the serial console (USART1 is configured for console output).

I have changed board.h to match my hardware pins and modified the clock section to accomodate my external 25Mhz oscillator.