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.

My only guess is that your in HIL mode? What’s your SYS_HITL param?

Thank you for your support and suggestions so far.

I’ve already checked the SYS_HITL parameter via the MAVLink shell, and it is currently set to 0. From what I understand, this means HITL mode is disabled, so the system should not be suppressing sensor initialization due to HITL.

param show SYS_HITL
Symbols: x = used, + = saved, * = unsaved
x   SYS_HITL [829,1537] : 0

 947/1942 parameters used.

I’m starting to wonder could this possibly indicate a hardware-level fault?

Any thoughts or further suggestions would be greatly appreciated.

My only remaining guess is that the hardware is broken. Not sure…

One other thing you could try is to flash ArduPilot and check whether it has the same problems. If so, it’s hardware.

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.