diff --git a/flight/modules/ManualControl/armhandler.c b/flight/modules/ManualControl/armhandler.c index 6be9a43ed..eb0cb797b 100644 --- a/flight/modules/ManualControl/armhandler.c +++ b/flight/modules/ManualControl/armhandler.c @@ -203,6 +203,11 @@ void armHandler(bool newinit, FrameType_t frameType) previousArmingInputLevel = 0.0f; } + // ignore previous arming input level if not transitioning from fully ARMED/DISARMED states. + if((armState != ARM_STATE_DISARMED) && (armState != ARM_STATE_ARMED)) { + previousArmingInputLevel = 0.0f; + } + if ((armingInputLevel <= -ARMED_THRESHOLD) && (previousArmingInputLevel > -ARMED_THRESHOLD)) { manualArm = true; } else if ((armingInputLevel >= +ARMED_THRESHOLD) && (previousArmingInputLevel < +ARMED_THRESHOLD)) {