Is there a compatible list of IMU's available?

Looking to simplify a build by having the FC mounted internally on a trolling motor and mounting an external compass and IMU to the frame. Is their a compatible list of IMU’s somewhere? I see some very cheap options under $10 on amazon, any chance those can be set as primary IMU for ardupilot?

https://www.amazon.com/EPLZON-MPU-6050-Accelerometer-Gyroscope-Converter/dp/B09TVYVC6X/ref=sr_1_7_sspa?crid=RCKZH5J88KHL&keywords=ardupilot+external+imu&qid=1694805654&sprefix=ardupilot+external+imu%2Caps%2C144&sr=8-7-spons&sp_csd=d2lkZ2V0TmFtZT1zcF9tdGY&psc=1

The list is quite large.
DEVTYPE_BMI160 = 0x09,
DEVTYPE_L3G4200D = 0x10,
DEVTYPE_ACC_LSM303D = 0x11,
DEVTYPE_ACC_BMA180 = 0x12,
DEVTYPE_ACC_MPU6000 = 0x13,
DEVTYPE_ACC_MPU9250 = 0x16,
DEVTYPE_ACC_IIS328DQ = 0x17,
DEVTYPE_ACC_LSM9DS1 = 0x18,
DEVTYPE_GYR_MPU6000 = 0x21,
DEVTYPE_GYR_L3GD20 = 0x22,
DEVTYPE_GYR_MPU9250 = 0x24,
DEVTYPE_GYR_I3G4250D = 0x25,
DEVTYPE_GYR_LSM9DS1 = 0x26,
DEVTYPE_INS_ICM20789 = 0x27,
DEVTYPE_INS_ICM20689 = 0x28,
DEVTYPE_INS_BMI055 = 0x29,
DEVTYPE_SITL = 0x2A,
DEVTYPE_INS_BMI088 = 0x2B,
DEVTYPE_INS_ICM20948 = 0x2C,
DEVTYPE_INS_ICM20648 = 0x2D,
DEVTYPE_INS_ICM20649 = 0x2E,
DEVTYPE_INS_ICM20602 = 0x2F,
DEVTYPE_INS_ICM20601 = 0x30,
DEVTYPE_INS_ADIS1647X = 0x31,
DEVTYPE_SERIAL = 0x32,
DEVTYPE_INS_ICM40609 = 0x33,
DEVTYPE_INS_ICM42688 = 0x34,
DEVTYPE_INS_ICM42605 = 0x35,
DEVTYPE_INS_ICM40605 = 0x36,
DEVTYPE_INS_IIM42652 = 0x37,
DEVTYPE_BMI270 = 0x38,
DEVTYPE_INS_BMI085 = 0x39,
DEVTYPE_INS_ICM42670 = 0x3A,
DEVTYPE_INS_ICM45686 = 0x3B,
DEVTYPE_INS_SCHA63T = 0x3C,
};
Plus external intelligent AHRS solutions, but that is 100-1000usd territory.

1 Like

Ah fantastic thank you.

So if I were to pickup one of these, say the BMI160, I should be able to disable the gyro/imu thats internal on my matek flight controller correct? And just rely on the external BMI160 for all my gyro/imu data?

Don’t need to disable, just tell the AP to don’t use it. EK3_IMU_MASK

Thats what I meant by disable. Perfect. Thanks so much!!!

hi thats a nice list, could you tell me where can i find this in the ardupilot github

Simple GitHub search for one of the IC definitions:

@Yuri_Rage Thank you.

i found this too, can act as list of all the sensors used, thought it could be useful so posting here

compass_types = {
0x01 : “DEVTYPE_HMC5883_OLD”,
0x07 : “DEVTYPE_HMC5883”,
0x02 : “DEVTYPE_LSM303D”,
0x04 : "DEVTYPE_AK8963 ",
0x05 : "DEVTYPE_BMM150 ",
0x06 : “DEVTYPE_LSM9DS1”,
0x08 : “DEVTYPE_LIS3MDL”,
0x09 : “DEVTYPE_AK09916”,
0x0A : “DEVTYPE_IST8310”,
0x0B : “DEVTYPE_ICM20948”,
0x0C : “DEVTYPE_MMC3416”,
0x0D : “DEVTYPE_QMC5883L”,
0x0E : “DEVTYPE_MAG3110”,
0x0F : “DEVTYPE_SITL”,
0x10 : “DEVTYPE_IST8308”,
0x11 : “DEVTYPE_RM3100_OLD”,
0x12 : “DEVTYPE_RM3100”,
0x13 : “DEVTYPE_MMC5883”,
0x14 : “DEVTYPE_AK09918”,
0x15 : “DEVTYPE_AK09915”,
0x16 : “DEVTYPE_QMC5883P”,
}

imu_types = {
0x09 : “DEVTYPE_BMI160”,
0x10 : “DEVTYPE_L3G4200D”,
0x11 : “DEVTYPE_ACC_LSM303D”,
0x12 : “DEVTYPE_ACC_BMA180”,
0x13 : “DEVTYPE_ACC_MPU6000”,
0x16 : “DEVTYPE_ACC_MPU9250”,
0x17 : “DEVTYPE_ACC_IIS328DQ”,
0x21 : “DEVTYPE_GYR_MPU6000”,
0x22 : “DEVTYPE_GYR_L3GD20”,
0x24 : “DEVTYPE_GYR_MPU9250”,
0x25 : “DEVTYPE_GYR_I3G4250D”,
0x26 : “DEVTYPE_GYR_LSM9DS1”,
0x27 : “DEVTYPE_INS_ICM20789”,
0x28 : “DEVTYPE_INS_ICM20689”,
0x29 : “DEVTYPE_INS_BMI055”,
0x2A : “DEVTYPE_SITL”,
0x2B : “DEVTYPE_INS_BMI088”,
0x2C : “DEVTYPE_INS_ICM20948”,
0x2D : “DEVTYPE_INS_ICM20648”,
0x2E : “DEVTYPE_INS_ICM20649”,
0x2F : “DEVTYPE_INS_ICM20602”,
0x30 : “DEVTYPE_INS_ICM20601”,
0x31 : “DEVTYPE_INS_ADIS1647x”,
0x32 : “DEVTYPE_INS_SERIAL”,
0x33 : “DEVTYPE_INS_ICM40609”,
0x34 : “DEVTYPE_INS_ICM42688”,
0x35 : “DEVTYPE_INS_ICM42605”,
0x36 : “DEVTYPE_INS_ICM40605”,
0x37 : “DEVTYPE_INS_IIM42652”,
0x38 : “DEVTYPE_INS_BMI270”,
0x39 : “DEVTYPE_INS_BMI085”,
0x3A : “DEVTYPE_INS_ICM42670”,
0x3B : “DEVTYPE_INS_ICM45686”,
}

baro_types = {
0x01 : “DEVTYPE_BARO_SITL”,
0x02 : “DEVTYPE_BARO_BMP085”,
0x03 : “DEVTYPE_BARO_BMP280”,
0x04 : “DEVTYPE_BARO_BMP388”,
0x05 : “DEVTYPE_BARO_DPS280”,
0x06 : “DEVTYPE_BARO_DPS310”,
0x07 : “DEVTYPE_BARO_FBM320”,
0x08 : “DEVTYPE_BARO_ICM20789”,
0x09 : “DEVTYPE_BARO_KELLERLD”,
0x0A : “DEVTYPE_BARO_LPS2XH”,
0x0B : “DEVTYPE_BARO_MS5611”,
0x0C : “DEVTYPE_BARO_SPL06”,
0x0D : “DEVTYPE_BARO_DRONECAN”,
0x0E : “DEVTYPE_BARO_MSP”,
0x0F : “DEVTYPE_BARO_ICP101XX”,
0x10 : “DEVTYPE_BARO_ICP201XX”,
0x11 : “DEVTYPE_BARO_MS5607”,
0x12 : “DEVTYPE_BARO_MS5837”,
0x13 : “DEVTYPE_BARO_MS5637”,
0x14 : “DEVTYPE_BARO_BMP390”,
}

airspeed_types = {
0x01 : “DEVTYPE_AIRSPEED_SITL”,
0x02 : “DEVTYPE_AIRSPEED_MS4525”,
0x03 : “DEVTYPE_AIRSPEED_MS5525”,
0x04 : “DEVTYPE_AIRSPEED_DLVR”,
0x05 : “DEVTYPE_AIRSPEED_MSP”,
0x06 : “DEVTYPE_AIRSPEED_SDP3X”,
0x07 : “DEVTYPE_AIRSPEED_DRONECAN”,
0x08 : “DEVTYPE_AIRSPEED_ANALOG”,
0x09 : “DEVTYPE_AIRSPEED_NMEA”,
0x0A : “DEVTYPE_AIRSPEED_ASP5033”,
}