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.
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.
Used make holybro_kakuteh7_qconfig and changed the nuttx defconfig parameters wherever needed
Updated the clock settings in nuttx-config/include/board.h, while leaving everything else the same
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?
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.
Right, my only recommendation at this point is to consider paid support from one of the consultants (Consultants - PX4 Autopilot) or just use a board that is supported instead.
Hi Juian, could you please advise me on one last thing, I have managed to enable the serial console on USART3 and this is the output:
[boot] Fault Log info File No 4 Length 3177 flags:0x01 state:1
[boot] Fault Log is Armed
ERROR [PX4_MTD] failed to locate spi bus
ERROR [PX4_MTD] mtd failure: -6 bus 2 address 0 class 1
HW arch: HOLYBRO_KAKUTEH7V2
PX4 git-hash: 74570d5abe04e3a30f28c174b7cd0a34c03462e6
PX4 version: 1.16.0 c0 (17825984)
PX4 git-branch: main
OS: NuttX
OS version: Release 11.0.0 (184549631)
OS git-hash: 886acbbdb4f061e5c0ce1a76afbcfa7cb7df9849
Build datetime: Jun 18 2025 11:28:12
Build uri: localhost
Build variant: default
Toolchain: GNU GCC, 10.3.1 20210621 (release)
PX4GUID: 0006000000003537323031335107002e0030
MCU: STM32H7[4|5]xxx, rev. V
nsh: bsondump: command not found
New /fs/mtd_caldata size is:
nsh: bsondump: command not found
ERROR [param] importing failed (-1)
ERROR [init] param import failed
nsh: bsondump: command not found
Board architecture defaults: /etc/init.d/rc.board_arch_defaults
Board defaults: /etc/init.d/rc.board_defaults
ERROR [param] Parameter EKF2_IMU_CONTROL not found.
Loading airframe: /etc/init.d/airframes/4050_generic_250
INFO [dataman] data manager RAM size is 68528 bytes
Board sensors: /etc/init.d/rc.board_sensors
nsh: bmp390: command not found
nsh: icm42670p: command not found
nsh: bmp390: command not found
ERROR [SPI_I2C] spa06: no instance started (no device on bus?)
nsh: icm20948_i2c_passthrough: command not found
ist8310 #0 on I2C bus 1 address 0xE
ekf2 [573:237]
nsh: px4io: command not found
Starting Main GPS on /dev/ttyS3
Starting RC Input Driver on /dev/ttyS4
Starting MAVLink on /dev/ttyS0
INFO [mavlink] mode: Normal, data rate: 1200 B/s on /dev/ttyS0 @ 57600B
INFO [cdcacm_autostart] Starting CDC/ACM autostart
Board extras: /etc/init.d/rc.board_extras
I would assume the error lies in my SPI devices unable to initialize correctly. I’m using the ICM42760p and BMP390. Could you please guide me towards any supporting documentation on how to add these devices and their respective drivers?