How to identify the actual IMU on HAKRC F405 WING?

Hi everyone,

I’m new to ArduPilot development and I’m trying to learn how board support and sensor detection work.

I have a HAKRC F405 WING flight controller running INAV 7.1.2.

The confusing part is that INAV reports different IMUs depending on where I look:

Configuration tab:

Accelerometer: ICM42605

But the CLI status command reports:

GYRO=LSM6DXX
ACC=LSM6DXX
BARO=SPL06
Sensor status: GYRO=OK, ACC=OK, BARO=OK

Unfortunately, the IMU package has no visible part number, only a small QR/DataMatrix code, so I cannot identify it visually.

My goal is to create an ArduPilot firmware for this board, but first I would like to understand which IMU is actually installed.

Questions:

Which source should be considered the real hardware identification?
INAV Configuration tab?
CLI status output?
Something else?
Is it possible that the Configuration tab simply shows a stored configuration value while status displays the IMU that was actually detected through WHO_AM_I?
What is the recommended way to identify the installed IMU before creating an ArduPilot hwdef.dat?

I’m still learning how IMU detection works, so if I’m misunderstanding something, I’d really appreciate an explanation.

If additional information is needed, I can provide:

version
status
dump
board photos
or any other logs you recommend.

Thank you!

Why don’t you believe what they publish?
IMU :ICM-42688-P

Or, ask them to confirm. Perhaps there is a small chance they will reply.
jiangsheng@hakrc.com

Go the bottom of this thread where there is some info on adding another HAKRC board:
Firmware for HAKRC

Thanks for your reply.

I initially trusted the published spec and configured hwdef.dat for ICM-42688-P.

But after building ArduPilot, Mission Planner shows:

Config Error: INS: Unable to initialize driver

So the IMU does not initialize.

On the same board running INAV I see conflicting data:

  • INAV Config tab: ICM42605

  • INAV CLI status: GYRO=LSM6DXX, ACC=LSM6DXX

1 Like