Unable to calibrate sensors on Pixhawk 6C Mini – IMU not detected during setup

I’m experiencing a serious issue with my Pixhawk 6C Mini flight controller. It seems that none of the onboard IMU sensors are being detected, and sensor calibration fails in QGroundControl (QGC).

Hardware: Pixhawk 6C Mini
Firmware: PX4 v1.15.4
Platform: win11 QGC 5.0.6

Issue Summary:

I’m encountering a critical failure where all primary onboard sensors (gyro, accelerometer, and magnetometer) are not detected after a failed calibration and SD card corruption. The system reports:

Preflight Fail: Gyro Sensor 0 missing
Preflight Fail: Accel Sensor 0 missing
Preflight Fail: ekf2 missing data
Compass 0 uncalibrated

What Happened:

  1. Initial setup: I followed the sensor calibration steps but only completed the compass calibration. Gyro and accelerometer were not calibrated.
  2. Motor test step: I tried to unlock the vehicle using the RC transmitter (via QGC), but arming failed due to incomplete sensor calibration.
  3. Back to calibration: I attempted to finish the remaining calibration (gyro and accel). During this, QGC lost connection with the autopilot.
  4. Reconnect: After reconnecting, all sensors began throwing errors. Additionally, I saw Missing FMU SD card message.
  5. SD card failure: The original SD card became completely unreadable (couldn’t be accessed even via a PC card reader).
  6. Replacement: I formatted another FAT32 SD card and flashed PX4 firmware again.
  7. Now: The system boots but still reports the same sensor errors, and ICM42688P driver fails to start with no device on bus.

Additional Observations:

  • top shows no active sensor driver thread.
  • No sensor data from listener sensor_combined.
  • Tried multiple reboots and fresh firmware flashes — no change.
  • On my Windows 11 system, the COM3 port connection is intermittently unstable — the device sometimes fails to appear in Device Manager. Only the default drivers from the QGC installation were used.

The response of ‘dmesg’ :

HW arch: PX4_FMU_V6C
HW type: V6C002001
HW version: 0x002
HW revision: 0x001
PX4 git-hash: 99c40407ffd7ac184e2d7b4b293f36f10fe561ef
PX4 version: Release 1.15.4 (17761535)
OS: NuttX
OS version: Release 11.0.0 (184549631)
OS git-hash: 5d74bc138955e6f010a38e0f87f34e9a9019aecc
Build datetime: Mar 20 2025 23:02:15
Build uri: localhost
Build variant: default
Toolchain: GNU GCC, 9.3.1 20200408 (release)
PX4GUID: 000600000000313138373333510200220035
MCU: STM32H7[4|5]xxx, rev. V
INFO  [param] selected parameter default file /fs/mtd_params
INFO  [param] importing from '/fs/mtd_params'
INFO  [parameters] BSON document size 681 bytes, decoded 681 bytes (INT32:13, FLOAT:25)
INFO  [param] selected parameter backup file /fs/microsd/parameters_backup.bson
Board architecture defaults: /etc/init.d/rc.board_arch_defaults
Board defaults: /etc/init.d/rc.board_defaults
Loading airframe: /etc/init.d/airframes/4050_generic_250
INFO  [dataman] data manager file '/fs/microsd/dataman' size is 68528 bytes
INFO  [px4io] IO FW CRC match
Board sensors: /etc/init.d/rc.board_sensors
ERROR [SPI_I2C] bmi055: no instance started (no device on bus?)
ERROR [SPI_I2C] bmi055: no instance started (no device on bus?)
ERROR [SPI_I2C] icm42688p: no instance started (no device on bus?)
ms5611 #0 on I2C bus 4 (external) address 0x77
ist8310 #0 on I2C bus 4 (external) address 0xC
WARN  [SPI_I2C] ist8310: no instance started (no device on bus?)
ekf2 [714:237]
Starting Main GPS on /dev/ttyS0
Starting MAVLink on /dev/ttyS5
ERROR [dataman_client] readSync failed! status=3, item=8, index=0, length=40
WARN  [mavlink] offboard mission init failed
INFO  [mavlink] mode: Normal, data rate: 1200 B/s on /dev/ttyS5 @ 57600B
INFO  [cdcacm_autostart] Starting CDC/ACM autostart
Addons script: /fs/microsd/etc/extras.txt
WARN  [mavlink] mavlink for device /dev/ttyACM0 is not running
WARN  [mavlink] mavlink for device /dev/ttyACM0 is not running
INFO  [logger] logger started (mode=all)
INFO  [uavcan] Node ID 1, bitrate 1000000

NuttShell (NSH) NuttX-11.0.0
nsh> 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
WARN  [health_and_arming_checks] Preflight Fail: Accel Sensor 0 missing
WARN  [health_and_arming_checks] Preflight Fail: ekf2 missing data
WARN  [health_and_arming_checks] Preflight Fail: Gyro Sensor 0 missing
WARN  [health_and_arming_checks] Preflight Fail: Compass 0 uncalibrated
WARN  [health_and_arming_checks] Preflight Fail: Accel Sensor 0 missing
WARN  [health_and_arming_checks] Preflight Fail: ekf2 missing data
WARN  [health_and_arming_checks] Preflight Fail: Gyro Sensor 0 missing
WARN  [health_and_arming_checks] Preflight Fail: Compass 0 uncalibrated
WARN  [health_and_arming_checks] Preflight Fail: Accel Sensor 0 missing
WARN  [health_and_arming_checks] Preflight Fail: ekf2 missing data
WARN  [health_and_arming_checks] Preflight Fail: Gyro Sensor 0 missing
WARN  [health_and_arming_checks] Preflight Fail: Compass 0 uncalibrated
ERROR [ekf2] start failed (-1)
INFO  [mavlink] Starting mavlink shell

Question:

  • Could this be a hardware-level failure of the onboard IMU (ICM42688P)?
  • Is it possible that the initial calibration interruption or SD card failure caused permanent sensor damage or configuration corruption?
  • What else can I do to recover sensor functionality or confirm hardware damage?

Any advice would be greatly appreciated. I’m happy to provide more information if needed. I’m a student and new to flight controller development, so it’s possible I made some really silly mistakes in a moment of panic. I sincerely appreciate your patience and any help you can offer.

Put in a different SD card FAT32 formatted to make sure that’s not the reason.

Thank you for your reply. I have already put in another SD card FAT32 formatted and reflashed the firmware. I verified it mounts correctly on the flight controller:

mount
  /bin type binfs
  /etc type cromfs
  /fs/microsd type vfat
  /proc type procfs
nsh>

I was able to create and read a test file through echo and cat in NSH shell, which suggests read/write operations work normally.