diff --git a/libraries/AP_HAL_PX4/AnalogIn.cpp b/libraries/AP_HAL_PX4/AnalogIn.cpp index b12452c472..64f584f375 100644 --- a/libraries/AP_HAL_PX4/AnalogIn.cpp +++ b/libraries/AP_HAL_PX4/AnalogIn.cpp @@ -359,8 +359,13 @@ void PX4AnalogIn::_timer_tick(void) if (system_power.servo_valid) flags |= MAV_POWER_STATUS_SERVO_VALID; if (system_power.periph_5V_OC) flags |= MAV_POWER_STATUS_PERIPH_OVERCURRENT; if (system_power.hipower_5V_OC) flags |= MAV_POWER_STATUS_PERIPH_HIPOWER_OVERCURRENT; - if (_power_flags != 0 && _power_flags != flags) { - // the power status has changed since boot + if (_power_flags != 0 && + _power_flags != flags && + hal.scheduler->millis() > 5000) { + // the power status has changed since boot, and more + // than 5s after power on. The 5 second threshold is + // for users who have multiple switches, and they + // don't switch both at the same time. flags |= MAV_POWER_STATUS_CHANGED; } _power_flags = flags;