diff --git a/src/main/config/runtime_config.h b/src/main/config/runtime_config.h index 6b4dee82e5..8366f96067 100644 --- a/src/main/config/runtime_config.h +++ b/src/main/config/runtime_config.h @@ -21,7 +21,8 @@ typedef enum { OK_TO_ARM = (1 << 0), PREVENT_ARMING = (1 << 1), - ARMED = (1 << 2) + ARMED = (1 << 2), + WAS_EVER_ARMED = (1 << 3) } armingFlag_e; extern uint8_t armingFlags; diff --git a/src/main/flight/failsafe.c b/src/main/flight/failsafe.c index 5c8872fa2c..a553cb58f9 100644 --- a/src/main/flight/failsafe.c +++ b/src/main/flight/failsafe.c @@ -172,7 +172,8 @@ void failsafeUpdateState(void) bool failsafeSwitchIsOn = IS_RC_MODE_ACTIVE(BOXFAILSAFE); beeperMode_e beeperMode = BEEPER_SILENCE; - if (!receivingRxData) { + // Beep RX lost only if we are not seeing data and we have been armed earlier + if (!receivingRxData && ARMING_FLAG(WAS_EVER_ARMED)) { beeperMode = BEEPER_RX_LOST; } diff --git a/src/main/mw.c b/src/main/mw.c index d8e2f30820..c65734413a 100644 --- a/src/main/mw.c +++ b/src/main/mw.c @@ -366,6 +366,7 @@ void mwArm(void) } if (!ARMING_FLAG(PREVENT_ARMING)) { ENABLE_ARMING_FLAG(ARMED); + ENABLE_ARMING_FLAG(WAS_EVER_ARMED); headFreeModeHold = DECIDEGREES_TO_DEGREES(attitude.values.yaw); #ifdef BLACKBOX