Hello,
I have a question regarding ArduPilot HWdef configuration.
I designed a flight controller based on the Omnibus F4 Pro.
However, since the MPU6000 has been discontinued, I started looking for replacement IMUs.
I’m currently considering the ICM20602 and the ICM42688-P.
I would like to modify only the PCB design without making any firmware changes.
While reviewing existing HWdef files, I came across something interesting in the MatekF405-STD board, which uses the ICM20602. Here’s a snippet:
# adds default support for board versions with ICM20602
include ../MatekF405/hwdef.dat
# different IMU orientation
undef IMU
IMU Invensense SPI:mpu6000 ROTATION_YAW_90
Even though it uses the ICM20602, it still declares the IMU as mpu6000, which made me wonder:
Can I replace the MPU6000 with ICM20602 in my design and still use the existing firmware without modification?
Also, I found this section in the Kakute H7 hwdef:
SPIDEV mpu6000 SPI4 DEVID1 mpu6000_CS MODE3 1*MHZ 4*MHZ
SPIDEV icm42688 SPI4 DEVID1 mpu6000_CS MODE3 1*MHZ 16*MHZ
The ICM42688-P also appears to use the mpu6000, just with different SPI clock speeds.
Assuming I keep the current firmware’s SPI clock settings at 1*MHZ 8*MHZ
,
Would the ICM42688-P also work as a replacement without firmware changes?
Thank you for your time.