diff --git a/src/main/flight/mixer.c b/src/main/flight/mixer.c index f305ded59..e6d6b0011 100755 --- a/src/main/flight/mixer.c +++ b/src/main/flight/mixer.c @@ -823,7 +823,7 @@ void mixTable(void) rollPitchYawMix[i] = qMultiply(mixReduction,rollPitchYawMix[i]); } // Get the maximum correction by setting offset to center - throttleMin = throttleMax = throttleMin + (throttleRange / 2); + if (!escAndServoConfig->escDesyncProtection) throttleMin = throttleMax = throttleMin + (throttleRange / 2); if (debugMode == DEBUG_AIRMODE && i < 3) debug[1] = rollPitchYawMixRange; } else { diff --git a/src/main/flight/pid.c b/src/main/flight/pid.c index 8dc3f28f1..45ddc7268 100644 --- a/src/main/flight/pid.c +++ b/src/main/flight/pid.c @@ -231,6 +231,8 @@ static void pidLuxFloat(const pidProfile_t *pidProfile, const controlRateConfig_ // prevent "yaw jump" during yaw correction axisPID[YAW] = constrain(axisPID[YAW], -yaw_jump_prevention_limit - ABS(rcCommand[YAW]), yaw_jump_prevention_limit + ABS(rcCommand[YAW])); } + + DTerm = 0.0f; // needed for blackbox } else { delta = -(gyroRate - lastRate[axis]); lastRate[axis] = gyroRate; @@ -353,6 +355,8 @@ static void pidMultiWiiRewrite(const pidProfile_t *pidProfile, const controlRate // prevent "yaw jump" during yaw correction axisPID[YAW] = constrain(axisPID[YAW], -yaw_jump_prevention_limit - ABS(rcCommand[YAW]), yaw_jump_prevention_limit + ABS(rcCommand[YAW])); } + + DTerm = 0; // needed for blackbox } else { delta = -(gyroRate - lastRate[axis]); lastRate[axis] = gyroRate;