Your quad snaps into a tight 180, then wobbles for half a second before settling. That’s I-term windup — the accumulated integral error from a fast maneuver bleeding out over the next 300 milliseconds. You can chase it with P and D gains all day, but the fix is in two settings most pilots leave at default: I-term relax and anti-gravity. I’ve tuned dozens of quads where these two parameters solved what PID tuning couldn’t.
I-Term Relax and Anti-Gravity Configuration
The I-term in a PID controller accumulates error over time to correct steady-state offsets — it’s what keeps your quad tracking straight in wind instead of drifting. The problem: during aggressive maneuvers, the I-term accumulates massive error at rates the quad can’t physically correct. When the maneuver ends, that accumulated I-term discharges as a correction in the opposite direction — the bounce-back you feel as a wobble after a hard stop.
Step 1: Understand I-Term Relax Cutoff
I-term relax reduces how aggressively the I-term accumulates during fast stick movements. The key parameter is iterm_relax_cutoff — the gyro frequency below which I-term accumulation is allowed to proceed at 100%. Above this cutoff, I-term accumulation is progressively suppressed.
Default is 15Hz (Betaflight 4.3+). At 15Hz, gentle corrections (wind, drift) still get full I-term authority. Fast stick inputs generating gyro rates above 15Hz get progressively less I-term accumulation.
For 5-inch freestyle builds, 15-20Hz works. Drop to 10-12Hz for heavy cinewhoops — the higher inertia means slower maneuvers, and you need I-term to fight through propwash recoveries. Raise to 25-30Hz for ultralight toothpicks that change direction instantly — they don’t need as much I-term accumulation window.
CLI setting: set iterm_relax_cutoff = 15
Step 2: Set I-Term Relax Type
iterm_relax_type determines how the relax cutoff is applied:
– GYRO (default): Suppresses I-term based on gyro rate. The standard choice — it reacts to what the quad is actually doing, not what the sticks are commanding. This handles the case where wind gusts cause sudden gyro movement even at constant throttle.
– SETPOINT: Suppresses I-term based on stick movement rate. More aggressive suppression during fast stick inputs but less protection against external disturbances. Use if you’re getting I-term bounce specifically on snap rolls and flips.
– RP (Roll/Pitch), RPY (Roll/Pitch/Yaw): Apply relax to specific axes. RP is usually sufficient — yaw I-term is less prone to windup issues.
Recommendation: Start with GYRO. If bounce-back persists on hard stops, try SETPOINT. Don’t bounce between them without testing — each type changes the entire PID feel.
Step 3: Configure Anti-Gravity Gain
Anti-gravity is a separate mechanism that boosts I-term temporarily during rapid throttle changes to fight the quad’s tendency to pitch or roll with sudden acceleration. Without anti-gravity, a punch-out causes a brief pitch-up as the rear motors spool up slightly faster than the front.
anti_gravity_gain multiplies the I-term by a factor proportional to how fast the throttle is changing. At a fixed hover, gain=1.0 (no boost). During a punch-out where throttle jumps from 20% to 80%, the I-term gets multiplied by up to the anti-gravity gain value.
Default is 3.5-4.0 (Betaflight 4.3+). For a standard 5-inch, 3.5 is solid. Bump to 5.0-6.0 for high-power builds (6S, 2306 1700kV+ motors) where the torque reaction on throttle punches is violent. Drop to 2.5-3.0 for low-authority builds (3-inch, 4S) where anti-gravity overshoot creates its own bounce.
CLI setting: set anti_gravity_gain = 35 (displayed as 3.5 in GUI)
Step 4: Field-Test and Iterate
Test procedure:
1. Hover at eye level, punch to 80% throttle for 1 second, cut to zero. Watch for pitch-up on punch and bounce on stop.
2. Snap roll 360° at medium speed. Watch for wobble after rotation stops.
3. Power loop (if you can). The bottom of the loop — highest G-load — is where I-term windup is most visible.
If you see bounce-back after hard stops, lower iterm_relax_cutoff by 2-3Hz. If the quad drifts in wind or feels loose in hover, raise it. If you get pitch-up on hard throttle, increase anti_gravity_gain by 0.5. If anti-gravity overshoot causes a secondary oscillation after punch-outs, decrease it.
I-Term Settings Comparison Table
| Parameter | Default (4.3) | 5″ Freestyle | 3″ Toothpick | Cinewhoop | Effect of Too High | Effect of Too Low |
|---|---|---|---|---|---|---|
| iterm_relax_cutoff | 15 | 15-18 | 25-30 | 10-12 | I-term suppressed in wind → drift | Bounce-back after maneuvers |
| iterm_relax_type | GYRO | GYRO | SETPOINT | GYRO | N/A (type choice) | N/A |
| anti_gravity_gain | 3.5 | 3.5-4.5 | 2.5-3.0 | 3.0-4.0 | Overshoot oscillation on punch | Pitch-up during throttle blip |
| iterm_windup (max) | 400 | 300-400 | 200-300 | 400-500 | Accumulated I overload on stop | Not enough correction authority |
| Symptom | Likely Cause | Parameter to Adjust | Direction |
|---|---|---|---|
| Bounce-back after flip/roll | I-term relax cutoff too high | iterm_relax_cutoff | Decrease by 2-3 |
| Pitch-up on punch-out | Anti-gravity gain too low | anti_gravity_gain | Increase by 0.5-1.0 |
| Wobble after fast yaw spins | I-term relax not on yaw axis | iterm_relax_type | Change to RPY |
| Drift in steady wind | Relax cutoff too low | iterm_relax_cutoff | Increase by 2-3 |
| Propwash oscillation (3-5 cycles) | I-term overactive + relax insufficient | iterm_relax_cutoff + P | Decrease cutoff, increase P slightly |
Common Mistakes & How to Avoid Them
Mistake 1: Cranking Anti-Gravity to Max. Pilots set anti-gravity to 10.0 thinking “more is better” for punch-out stability. Consequence: The I-term gets multiplied by 10x during any throttle change, creating a massive correction that overshoots and oscillates as the quad accelerates. The quad feels like it’s on a spring — bouncy under any throttle modulation. Fix: 3.5-5.0 covers 95% of builds. Only go above 5.0 for extreme power-to-weight builds.
Mistake 2: Using I-Term Relax to Fix Bad PIDs. If your quad oscillates during forward flight, that’s a P-gain problem, not an I-term problem. Lowering iterm_relax_cutoff masks the oscillation without fixing it. Consequence: You’ve suppressed I-term across the board, so your quad now drifts in wind and loses altitude in turns. Fix: Tune P and D first on default I-term settings. Only adjust I-term relax when bounce-back is the specific symptom.
Mistake 3: Forgetting I-Term Relax After Major Rebuilds. You retune P and D after switching from a GoPro to a naked camera, but I-term relax stays at your old heavy-build value. The now-lighter quad has faster dynamics — the old relax cutoff is too aggressive, suppressing I-term during normal flight. Consequence: The quad feels “drifty” and won’t hold attitude in wind, which you misinterpret as a P-gain problem. Fix: Re-baseline I-term settings after any significant weight or power change.
Mistake 4: Adjusting I-Term Relax Without Blackbox. You can’t see I-term windup from the goggles. You’re tuning blind. Consequence: You adjust the wrong parameter, make the quad worse, and blame the tune. Fix: Record a blackbox log of the specific maneuver that causes bounce-back. Open it, look at the PID I trace — if I-term spikes during and continues after the maneuver, it’s a relax issue. If I-term tracks normally but the quad still oscillates, it’s P/D.
⚠️ Regulatory Notice: The flight recommendations in this article should be followed in accordance with the latest 2026 drone regulations in your country or region. Always verify local laws regarding flight altitude, no-fly zones, remote ID requirements, and registration before flying. Regulations vary significantly between the FAA (US), EASA (EU), CAA (UK), CAAC (China), and other authorities.
I-term relax tuning works best when your base PID tune is solid. Our Betaflight PID tuning fundamentals guide covers P, I, and D from scratch. For blackbox analysis techniques that let you actually see what the I-term is doing, check our blackbox log analysis guide.
Getting your I-term dialed in makes more difference to flight feel than brand-name motors. But if you’re in the market for a flight controller that handles high-rate PID loops cleanly, the SpeedyBee F7 V3 has the processing headroom for 8kHz with full filtering — I-term relax and anti-gravity calculate every loop cycle with zero CPU-starvation artifacts. Available at uavmodel.com.
