Porting tbs lucid h7

Hi everyone,

I am currently working on porting the TBS Lucid H7 board to PX4 (v1.16.0, NuttX 11.0.0). I am running into issues with the motor outputs and the DShot driver.

The Problem: The dshot module fails to start during the boot sequence. When I check the status in NSH, I see: ERROR [dshot] module not running WARN [MulticopterTurtleMode] failed send dshot command to the dshot hardware

Additionally, I noticed a timeout error during initialization: ERROR [commander] Timed out while waiting for thread to start

System Details:

  • Board: TBS Lucid H7 (STM32H745/755)

  • PX4 Version: 1.16.0 (Branch: formic)

  • OS: NuttX 11.0.0

  • Toolchain: GNU GCC 10.3.1

Current Status & Observations:

  1. The IMU (ICM42688P) and Baro (DPS310) are detected correctly.

  2. The Commander fails to start initially but attempts to restart later.

  3. I suspect a conflict in my timer/DMA configuration for the motor outputs.

Shell (NSH) NuttX-11.0.0
nsh>
nsh>
nsh> dmesg
HW arch: TBS_LUCID_H7
PX4 git-hash: 28ebff779fc7629482d78556036e119a059202fd
PX4 version: 1.16.0 c0 (17825984)
PX4 git-branch: formic
OS: NuttX
OS version: Release 11.0.0 (184549631)
OS git-hash: b0b49a210696dd0074dff9531fd1603afb0cc2e4
Build datetime: Feb 13 2026 08:26:24
Build uri: localhost
Build variant: default
Toolchain: GNU GCC, 10.3.1 20210621 (release)
PX4GUID: 000600000000343739383031511000380025
MCU: STM32H7[4|5]xxx, rev. V
INFO [init] formatting /dev/mmcsd0
ERROR [init] format failed
New /fs/mtd_caldata size is:
Board architecture defaults: /etc/init.d/rc.board_arch_defaults
Board defaults: /etc/init.d/rc.board_defaults
INFO [dataman] data manager RAM size is 68528 bytes
Board sensors: /etc/init.d/rc.board_sensors
INFO [icm42688] Found ICM42688P WHO_AM_I: 0x47
icm42688 #0 on SPI bus 1 rotation 6
dps310 #0 on I2C bus 2 address 0x76
ekf2 [313:237]
ERROR [commander] Timed out while waiting for thread to start
ERROR [commander] Task start failed (-1)
ERROR [dshot] module not running
WARN [MulticopterTurtleMode] failed send dshot command to the dshot hardware
WARN [health_and_arming_checks] Preflight Fail: Accel 0 uncalibrated
WARN [health_and_arming_checks] Preflight Fail: ekf2 missing data
No autostart ID found
INFO [mavlink] mode: Normal, data rate: 1200 B/s on /dev/ttyS4 @ 57600B
ERROR [parameters] get: param 65535 invalid
INFO [cdcacm_autostart] Starting CDC/ACM autostart
Board extras: /etc/init.d/rc.board_extras
INFO [commander] not running
Commander not running, attempting to start…
sercon: Registering CDC/ACM serial driver
sercon: Successfully registered the CDC/ACM serial driver
INFO [cdcacm_autostart] Starting mavlink on /dev/ttyACM0 (SYS_USB_AUTO=2)
INFO [mavlink] mode: Onboard, data rate: 100000 B/s on /dev/ttyACM0 @ 2000000B
ERROR [parameters] get: param 65535 invalid
ERROR [dshot] module not running
WARN [MulticopterTurtleMode] failed send dshot command to the dshot hardware
WARN [health_and_arming_checks] Preflight Fail: Accel 0 uncalibrated
WARN [health_and_arming_checks] Preflight Fail: ekf2 missing data
INFO [logger] logger started (mode=all)
INFO [logger] log root dir created: /fs/microsd/log

NuttShell (NSH) NuttX-11.0.0

also the motor check libale at the qgc not lock the same

Isn’t Lucid H7 STM32H743VI ?

I also got the IMU and Baro working, but got stuck with MMCSD, can’t even mount the device. Any recommendation ? Thanks

yes you are right i change this

also the mmcsd at the bootloader config

#

# This file is autogenerated: PLEASE DO NOT EDIT IT.

#

# You can use “make menuconfig” to make any modifications to the installed .config file.

# You can then do “make savedefconfig” to generate a new defconfig file that includes your

# modifications.

#

# CONFIG_DEV_CONSOLE is not set

# CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set

# CONFIG_SPI_EXCHANGE is not set

# CONFIG_STM32H7_SYSCFG is not set

CONFIG_ARCH=“arm”

CONFIG_ARCH_BOARD_CUSTOM=y

CONFIG_ARCH_BOARD_CUSTOM_DIR=“../../../../boards/tbs/lucid_h7/nuttx-config”

CONFIG_ARCH_BOARD_CUSTOM_DIR_RELPATH=y

CONFIG_ARCH_BOARD_CUSTOM_NAME=“px4”

CONFIG_ARCH_CHIP=“stm32h7”

CONFIG_ARCH_CHIP_STM32H743VI=y

CONFIG_ARCH_CHIP_STM32H7=y

CONFIG_ARCH_INTERRUPTSTACK=768

CONFIG_ARMV7M_BASEPRI_WAR=y

CONFIG_ARMV7M_ICACHE=y

CONFIG_ARMV7M_MEMCPY=y

CONFIG_ARMV7M_USEBASEPRI=y

CONFIG_BOARDCTL=y

CONFIG_BOARDCTL_RESET=y

CONFIG_BOARD_ASSERT_RESET_VALUE=0

CONFIG_BOARD_INITTHREAD_PRIORITY=254

CONFIG_BOARD_LATE_INITIALIZE=y

CONFIG_BOARD_LOOPSPERMSEC=22114

CONFIG_BOARD_RESET_ON_ASSERT=2

CONFIG_CDCACM=y

CONFIG_CDCACM_PRODUCTID=0x0036

CONFIG_CDCACM_PRODUCTSTR=“PX4 BL TBS Lucid H7”

CONFIG_CDCACM_RXBUFSIZE=600

CONFIG_CDCACM_TXBUFSIZE=12000

CONFIG_CDCACM_VENDORID=0x1b8c

CONFIG_CDCACM_VENDORSTR=“TBS”

CONFIG_DEBUG_FULLOPT=y

CONFIG_DEBUG_SYMBOLS=y

CONFIG_DEBUG_TCBINFO=y

CONFIG_DEFAULT_SMALL=y

CONFIG_EXPERIMENTAL=y

CONFIG_FDCLONE_DISABLE=y

CONFIG_FDCLONE_STDIO=y

CONFIG_HAVE_CXX=y

CONFIG_HAVE_CXXINITIALIZE=y

CONFIG_IDLETHREAD_STACKSIZE=750

CONFIG_INIT_ENTRYPOINT=“bootloader_main”

CONFIG_INIT_STACKSIZE=2944

CONFIG_LIBC_FLOATINGPOINT=y

CONFIG_LIBC_LONG_LONG=y

CONFIG_LIBC_STRERROR=y

CONFIG_MEMSET_64BIT=y

CONFIG_MEMSET_OPTSPEED=y

CONFIG_PREALLOC_TIMERS=50

CONFIG_PTHREAD_STACK_MIN=512

CONFIG_RAM_SIZE=245760

CONFIG_RAM_START=0x20010000

CONFIG_RAW_BINARY=y

CONFIG_SERIAL_TERMIOS=y

CONFIG_SIG_DEFAULT=y

CONFIG_SIG_SIGALRM_ACTION=y

CONFIG_SIG_SIGUSR1_ACTION=y

CONFIG_SIG_SIGUSR2_ACTION=y

CONFIG_SPI=y

CONFIG_STACK_COLORATION=y

CONFIG_START_DAY=30

CONFIG_START_MONTH=11

CONFIG_STDIO_BUFFER_SIZE=32

CONFIG_STM32H7_BKPSRAM=y

CONFIG_STM32H7_DMA1=y

CONFIG_STM32H7_OTGFS=y

CONFIG_STM32H7_PROGMEM=y

CONFIG_STM32H7_SERIAL_DISABLE_REORDERING=y

CONFIG_STM32H7_TIM1=y

CONFIG_STM32H7_USART1=n

CONFIG_SYSTEMTICK_HOOK=y

CONFIG_SYSTEM_CDCACM=y

CONFIG_TASK_NAME_SIZE=24

CONFIG_TTY_SIGINT=y

CONFIG_TTY_SIGINT_CHAR=0x03

CONFIG_TTY_SIGTSTP=y

CONFIG_USART1_RXBUFSIZE=600

CONFIG_USART1_TXBUFSIZE=300

CONFIG_USBDEV=y

CONFIG_USBDEV_BUSPOWERED=y

CONFIG_USBDEV_MAXPOWER=500

CONFIG_USEC_PER_TICK=1000

CONFIG_MMCSD=y

CONFIG_MMCSD_SDIO=y

CONFIG_MMCSD_SDIO_MAXFREQ=400000

CONFIG_MMCSD_SDIO_MAXBLOCKLEN=512

CONFIG_MMCSD_SDIO_MAXBLOCKS=4096

CONFIG_MMCSD_SDIO_MAXSECTORS=8192

CONFIG_MMCSD_SDIO_MAXSECTORS=8192

CONFIG_BAROMETER=dps310

1 Like

I got the Lucid H7 Wing mistakenly thinking it was supported by PX4. When I have more spare time, I can try to take a crack at it.