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?!

2 Likes

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!