From cfe64421f16da3aaf1e2561664157ceb7823d60a Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Wed, 2 Aug 2023 16:39:34 +1000 Subject: [PATCH] AP_Compass: allow override of IST8310 orientation this allows for vendor GPS modules and internal compass which use a different orientation --- libraries/AP_Compass/AP_Compass.cpp | 4 +--- libraries/AP_Compass/AP_Compass_IST8310.h | 4 ++++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/libraries/AP_Compass/AP_Compass.cpp b/libraries/AP_Compass/AP_Compass.cpp index c3f8625533..75d19609b7 100644 --- a/libraries/AP_Compass/AP_Compass.cpp +++ b/libraries/AP_Compass/AP_Compass.cpp @@ -1175,12 +1175,10 @@ void Compass::_probe_external_i2c_compasses(void) // IST8310 on external and internal bus if (AP_BoardConfig::get_board_type() != AP_BoardConfig::PX4_BOARD_FMUV5 && AP_BoardConfig::get_board_type() != AP_BoardConfig::PX4_BOARD_FMUV6) { - enum Rotation default_rotation; + enum Rotation default_rotation = AP_COMPASS_IST8310_DEFAULT_ROTATION; if (AP_BoardConfig::get_board_type() == AP_BoardConfig::PX4_BOARD_AEROFC) { default_rotation = ROTATION_PITCH_180_YAW_90; - } else { - default_rotation = ROTATION_PITCH_180; } // probe all 4 possible addresses const uint8_t ist8310_addr[] = { 0x0C, 0x0D, 0x0E, 0x0F }; diff --git a/libraries/AP_Compass/AP_Compass_IST8310.h b/libraries/AP_Compass/AP_Compass_IST8310.h index abc01e0df8..96d061a9c2 100644 --- a/libraries/AP_Compass/AP_Compass_IST8310.h +++ b/libraries/AP_Compass/AP_Compass_IST8310.h @@ -31,6 +31,10 @@ #define HAL_COMPASS_IST8310_I2C_ADDR 0x0E #endif +#ifndef AP_COMPASS_IST8310_DEFAULT_ROTATION +#define AP_COMPASS_IST8310_DEFAULT_ROTATION ROTATION_PITCH_180 +#endif + class AP_Compass_IST8310 : public AP_Compass_Backend { public: