DRONE PID HELPER
← All guides

Betaflight PID Tuning Guide

P, I, D and feedforward each do one job. Once you know what each one feels like and how it shows up in the blackbox, tuning becomes a short, logical checklist instead of trial and error.

What each term does

  • P (Proportional) — the immediate reaction to error. More P = stiffer, snappier, more locked-in… until it starts to oscillate.
  • I (Integral) — holds attitude against drift and wind. Too little and the craft washes out in turns; too much and it feels stiff and can bounce.
  • D (Derivative) — damps overshoot and oscillation. It's the brake on P, but it amplifies noise, so it depends on clean filtering.
  • Feedforward — reacts to stick movement directly, giving sharp response with low delay without piling on P.

Before you touch a PID: clean the gyro

PID tuning on a noisy quad is a dead end — you can't run enough D and everything you change is fighting noise. Sort filtering first (see the filter tuning guide), confirm a clean gyro and D-term, then tune.

A safe tuning order

  • 1. Feedforward — set it for the stick response you want; it sharpens without adding oscillation.
  • 2. P — raise it until the blackbox shows the gyro starting to oscillate on stops, then back off ~10–15%.
  • 3. D — add D until overshoot in the step response is damped to a small, clean bump. Stop when motors warm up.
  • 4. I — adjust for hold: enough to stay on target in wind and turns without feeling wooden.

Change one term at a time and re-fly the same test flight so the blackbox comparison is meaningful.

Read the result in the step response

A well-tuned quad shows a fast rise, a small (5–15%) overshoot, and a quick clean settle with no ringing. Big overshoot that oscillates = too much P or too little D. A slow lazy rise = under-tuned. The blackbox reading guide covers the traces in detail.

Skip the guesswork

Drone PID Helper reads your step response, tracking error and oscillation directly from the log, then suggests P/I/D/feedforward changes with a ready-to-paste CLI diff — so you tune from data, not vibes.