diff --git a/libraries/AP_BoardConfig/px4_drivers.cpp b/libraries/AP_BoardConfig/px4_drivers.cpp index c49b6fc325..8f37be0e4a 100644 --- a/libraries/AP_BoardConfig/px4_drivers.cpp +++ b/libraries/AP_BoardConfig/px4_drivers.cpp @@ -454,6 +454,7 @@ bool AP_BoardConfig::spi_check_register(const char *devname, uint8_t regnum, uin #define MPU_WHOAMI_MPU60X0 0x68 #define MPU_WHOAMI_MPU9250 0x71 #define MPU_WHOAMI_ICM20608 0xaf +#define MPU_WHOAMI_ICM20602 0x12 #define LSMREG_WHOAMI 0x0f #define LSM_WHOAMI_LSM303D 0x49 @@ -476,12 +477,14 @@ void AP_BoardConfig::px4_autodetect(void) #elif defined(CONFIG_ARCH_BOARD_PX4FMU_V2) if ((spi_check_register(HAL_INS_MPU60x0_EXT_NAME, MPUREG_WHOAMI, MPU_WHOAMI_MPU60X0) || spi_check_register(HAL_INS_MPU9250_EXT_NAME, MPUREG_WHOAMI, MPU_WHOAMI_MPU9250) || - spi_check_register(HAL_INS_ICM20608_EXT_NAME, MPUREG_WHOAMI, MPU_WHOAMI_ICM20608)) && + spi_check_register(HAL_INS_ICM20608_EXT_NAME, MPUREG_WHOAMI, MPU_WHOAMI_ICM20608) || + spi_check_register(HAL_INS_ICM20608_EXT_NAME, MPUREG_WHOAMI, MPU_WHOAMI_ICM20602)) && spi_check_register(HAL_INS_LSM9DS0_EXT_A_NAME, LSMREG_WHOAMI, LSM_WHOAMI_LSM303D)) { // Pixhawk2 has LSM303D and MPUxxxx on external bus px4.board_type.set(PX4_BOARD_PIXHAWK2); hal.console->printf("Detected PIXHAWK2\n"); - } else if (spi_check_register(HAL_INS_ICM20608_AM_NAME, MPUREG_WHOAMI, MPU_WHOAMI_ICM20608) && + } else if ((spi_check_register(HAL_INS_ICM20608_AM_NAME, MPUREG_WHOAMI, MPU_WHOAMI_ICM20608) || + spi_check_register(HAL_INS_ICM20608_AM_NAME, MPUREG_WHOAMI, MPU_WHOAMI_ICM20602)) && spi_check_register(HAL_INS_MPU9250_NAME, MPUREG_WHOAMI, MPU_WHOAMI_MPU9250)) { // PHMINI has an ICM20608 and MPU9250 on sensor bus px4.board_type.set(PX4_BOARD_PHMINI); @@ -489,6 +492,7 @@ void AP_BoardConfig::px4_autodetect(void) } else if (spi_check_register(HAL_INS_LSM9DS0_A_NAME, LSMREG_WHOAMI, LSM_WHOAMI_LSM303D) && (spi_check_register(HAL_INS_MPU60x0_NAME, MPUREG_WHOAMI, MPU_WHOAMI_MPU60X0) || spi_check_register(HAL_INS_ICM20608_NAME, MPUREG_WHOAMI, MPU_WHOAMI_ICM20608) || + spi_check_register(HAL_INS_ICM20608_NAME, MPUREG_WHOAMI, MPU_WHOAMI_ICM20602) || spi_check_register(HAL_INS_MPU9250_NAME, MPUREG_WHOAMI, MPU_WHOAMI_MPU9250))) { // classic or upgraded Pixhawk1 px4.board_type.set(PX4_BOARD_PIXHAWK);