diff --git a/libraries/AP_Compass/AP_Compass.cpp b/libraries/AP_Compass/AP_Compass.cpp index 0135348fa4..8e636ed2b0 100644 --- a/libraries/AP_Compass/AP_Compass.cpp +++ b/libraries/AP_Compass/AP_Compass.cpp @@ -471,6 +471,13 @@ Compass::Compass(void) } _singleton = this; AP_Param::setup_object_defaults(this, var_info); + + // Reset dev_id parameters' cached values to zero. This is here to address a potential + // edge case where a previously-detected compass is no longer present, but its dev_id + // is loaded from the parameter's stored value. + for (uint8_t i=0; i