diff --git a/libraries/AP_InertialSensor/AP_InertialSensor.cpp b/libraries/AP_InertialSensor/AP_InertialSensor.cpp index 3d5123d6ff..2a1dbf394e 100644 --- a/libraries/AP_InertialSensor/AP_InertialSensor.cpp +++ b/libraries/AP_InertialSensor/AP_InertialSensor.cpp @@ -311,6 +311,8 @@ const AP_Param::GroupInfo AP_InertialSensor::var_info[] PROGMEM = { AP_GROUPEND }; +AP_InertialSensor *AP_InertialSensor::_s_instance = nullptr; + AP_InertialSensor::AP_InertialSensor() : _gyro_count(0), _accel_count(0), @@ -326,6 +328,10 @@ AP_InertialSensor::AP_InertialSensor() : _backends_detected(false), _dataflash(NULL) { + if (_s_instance) { + hal.scheduler->panic(PSTR("Too many inertial sensors")); + } + _s_instance = this; AP_Param::setup_object_defaults(this, var_info); for (uint8_t i=0; i