Browse Source

AP_Compass: added external compass autodetection on Navio

master
Staroselskii Georgii 9 years ago committed by Lucas De Marchi
parent
commit
2e5cfc2849
  1. 16
      libraries/AP_Compass/AP_Compass.cpp
  2. 3
      libraries/AP_HAL/AP_HAL_Boards.h

16
libraries/AP_Compass/AP_Compass.cpp

@ -508,6 +508,22 @@ void Compass::_detect_backends(void) @@ -508,6 +508,22 @@ void Compass::_detect_backends(void)
hal.console->printf("LSM9DS1: Compass not detected\n");
}
backend = AP_Compass_HMC5843::probe(*this, hal.i2c_mgr->get_device(HAL_COMPASS_HMC5843_I2C_BUS, HAL_COMPASS_HMC5843_I2C_ADDR));
if (backend) {
_add_backend(backend);
hal.console->printf("HMC5843: External compass detected\n");
} else {
hal.console->printf("HMC5843: External compass not detected\n");
}
#elif HAL_COMPASS_DEFAULT == HAL_COMPASS_NAVIO
AP_Compass_Backend *backend = AP_Compass_AK8963::probe_mpu9250(*this, 0);
if (backend) {
_add_backend(backend);
hal.console->printf("AK8953: Compass detected\n");
} else {
hal.console->printf("AK8953: Compass not detected\n");
}
backend = AP_Compass_HMC5843::probe(*this, hal.i2c_mgr->get_device(HAL_COMPASS_HMC5843_I2C_BUS, HAL_COMPASS_HMC5843_I2C_ADDR));
if (backend) {
_add_backend(backend);

3
libraries/AP_HAL/AP_HAL_Boards.h

@ -97,6 +97,7 @@ @@ -97,6 +97,7 @@
#define HAL_COMPASS_QURT 12
#define HAL_COMPASS_BBBMINI 13
#define HAL_COMPASS_NAVIO2 14
#define HAL_COMPASS_NAVIO 15
// Heat Types
#define HAL_LINUX_HEAT_PWM 1
@ -288,7 +289,7 @@ @@ -288,7 +289,7 @@
#define HAL_BARO_MS5611_I2C_BUS 1
#define HAL_BARO_MS5611_I2C_ADDR 0x77
#define HAL_BARO_MS5611_USE_TIMER false
#define HAL_COMPASS_DEFAULT HAL_COMPASS_AK8963_MPU9250
#define HAL_COMPASS_DEFAULT HAL_COMPASS_NAVIO
/* HMC5843 can be an external compass */
#define HAL_COMPASS_HMC5843_I2C_BUS 1
#define HAL_COMPASS_HMC5843_I2C_ADDR 0x1E

Loading…
Cancel
Save