Replacing MPU6000 with ICM20602 or ICM42688-P Without Firmware Changes

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.

The ICM20602 appears to be a straightforward replacement for the MPU6000. If you need different clock speeds, the answer is likely no.

The greater question is: why do so many of you want to go to so much trouble to clone the cheapest possible autopilot boards?!

Thank you for your response.

Unfortunately, I’m not very skilled in software development, and modifying firmware is too difficult for me. As a hobbyist, creating or customizing firmware is far too complex.

I simply wanted to extend the life of my F4-based flight controller by replacing the IMU in a schematic I happened to find.

It seems that the ICM42688 is more commonly used these days compared to the ICM20602, and I was wondering if I could still achieve stable flight performance while keeping the SPI clock at 8 MHz, like the Speedybee F405 Mini does.

Thank you again!