diff --git a/libraries/AP_Compass/AP_Compass.cpp b/libraries/AP_Compass/AP_Compass.cpp index a8846cecb3..94526594c2 100644 --- a/libraries/AP_Compass/AP_Compass.cpp +++ b/libraries/AP_Compass/AP_Compass.cpp @@ -462,6 +462,13 @@ Compass::Compass(void) : _null_init_done(false), _hil_mode(false) { + if (_singleton != nullptr) { +#if CONFIG_HAL_BOARD == HAL_BOARD_SITL + AP_HAL::panic("Compass must be singleton"); +#endif + return; + } + _singleton = this; AP_Param::setup_object_defaults(this, var_info); for (uint8_t i=0; i