diff --git a/src/main/fc/fc_rc.c b/src/main/fc/fc_rc.c index c97bac0e86..e396c39f65 100644 --- a/src/main/fc/fc_rc.c +++ b/src/main/fc/fc_rc.c @@ -324,20 +324,22 @@ void updateRcCommands(void) rcCommand[THROTTLE] = rcLookupThrottle(tmp); - if (feature(FEATURE_3D) && IS_RC_MODE_ACTIVE(BOX3D) && !failsafeIsActive()) { - fix12_t throttleScaler = qConstruct(rcCommand[THROTTLE] - 1000, 1000); - rcCommand[THROTTLE] = rxConfig()->midrc + qMultiply(throttleScaler, PWM_RANGE_MAX - rxConfig()->midrc); - } - - if (feature(FEATURE_3D) && flight3DConfig()->switched_mode3d && !failsafeIsActive()) { - if (IS_RC_MODE_ACTIVE(BOX3D)) { - reverseMotors = false; - fix12_t throttleScaler = qConstruct(rcCommand[THROTTLE] - 1000, 1000); - rcCommand[THROTTLE] = rxConfig()->midrc + qMultiply(throttleScaler, PWM_RANGE_MAX - rxConfig()->midrc); + if (feature(FEATURE_3D) && !failsafeIsActive()) { + if (!flight3DConfig()->switched_mode3d) { + if (IS_RC_MODE_ACTIVE(BOX3D)) { + fix12_t throttleScaler = qConstruct(rcCommand[THROTTLE] - 1000, 1000); + rcCommand[THROTTLE] = rxConfig()->midrc + qMultiply(throttleScaler, PWM_RANGE_MAX - rxConfig()->midrc); + } } else { - reverseMotors = true; - fix12_t throttleScaler = qConstruct(rcCommand[THROTTLE] - 1000, 1000); - rcCommand[THROTTLE] = rxConfig()->midrc + qMultiply(throttleScaler, PWM_RANGE_MIN - rxConfig()->midrc); + if (IS_RC_MODE_ACTIVE(BOX3D)) { + reverseMotors = true; + fix12_t throttleScaler = qConstruct(rcCommand[THROTTLE] - 1000, 1000); + rcCommand[THROTTLE] = rxConfig()->midrc + qMultiply(throttleScaler, PWM_RANGE_MIN - rxConfig()->midrc); + } else { + reverseMotors = false; + fix12_t throttleScaler = qConstruct(rcCommand[THROTTLE] - 1000, 1000); + rcCommand[THROTTLE] = rxConfig()->midrc + qMultiply(throttleScaler, PWM_RANGE_MAX - rxConfig()->midrc); + } } } if (FLIGHT_MODE(HEADFREE_MODE)) {