diff --git a/libraries/AP_Compass/AP_Compass.cpp b/libraries/AP_Compass/AP_Compass.cpp index 653b434216..911b564334 100644 --- a/libraries/AP_Compass/AP_Compass.cpp +++ b/libraries/AP_Compass/AP_Compass.cpp @@ -17,6 +17,7 @@ #include "AP_Compass_qflight.h" #include "AP_Compass_LIS3MDL.h" #include "AP_Compass_AK09916.h" +#include "AP_Compass_QMC5883L.h" #if HAL_WITH_UAVCAN #include "AP_Compass_UAVCAN.h" #endif @@ -533,6 +534,9 @@ void Compass::_detect_backends(void) ADD_BACKEND(AP_Compass_HMC5843::probe(*this, hal.i2c_mgr->get_device(0, HAL_COMPASS_HMC5843_I2C_ADDR), both_i2c_external, both_i2c_external?ROTATION_ROLL_180:ROTATION_YAW_270), AP_Compass_HMC5843::name, both_i2c_external); + //external i2c bus for QMC5883L + ADD_BACKEND(AP_Compass_QMC5883L::probe(*this, hal.i2c_mgr->get_device(1, HAL_COMPASS_QMC5883L_I2C_ADDR), + ROTATION_YAW_90), AP_Compass_QMC5883L::name, true); #if !HAL_MINIMIZE_FEATURES diff --git a/libraries/AP_Compass/AP_Compass_Backend.h b/libraries/AP_Compass/AP_Compass_Backend.h index 60c01b7434..f5da1cb6f6 100644 --- a/libraries/AP_Compass/AP_Compass_Backend.h +++ b/libraries/AP_Compass/AP_Compass_Backend.h @@ -61,6 +61,7 @@ public: DEVTYPE_IST8310 = 0x0A, DEVTYPE_ICM20948 = 0x0B, DEVTYPE_MMC3416 = 0x0C, + DEVTYPE_QMC5883L = 0x0D, };