Slow wobble on a big quad: PID too hot, or is your arm a spring?
On a heavy airframe, an over-gained control loop and a flexing frame produce the same slow wobble. Here is how to tell which one you have, and why no PID value fixes a spring.
The symptom
Your aircraft is large — a heavy-lift platform, a cinema rig, a long-arm agricultural frame — and it wallows. Not a buzz, not a whine, not something you hear. A slow, heavy rocking that you can watch happen: the aircraft leans, catches itself, leans back, catches itself again. A boat in a swell. You can count it by eye, which already tells you it is slow.
It is usually worst where the airframe is working hardest. In a hover, holding station. With a payload. On a hot day. It sometimes settles in fast forward flight and comes back the moment you slow down.
And when you do the obvious thing — lower the gains — one of three things happens. It gets a little better. It does not change at all. Or it gets worse. That third outcome is the one that drives people to the forums, and it is the most diagnostic thing in this entire article. Hold onto it.
Two things that look identical
(A) The control loop is over-gained for the aircraft. A classic P oscillation. The controller pushes too hard for the inertia it is pushing against, overshoots, corrects, overshoots the other way. On a 5-inch racer this is a fast wobble. On a 5 kg airframe with long arms it is slow, because the aircraft's rotational inertia is enormous and it simply cannot ring quickly. Same fault, different frequency. Nothing exotic.
(B) The airframe itself is oscillating. This is the one nobody plans for.
A long carbon arm with a heavy motor bolted to the end of it is a cantilever spring. Deflect it and it springs back, and it does so at a frequency set by two things and two things only: how stiff the arm is, and how much mass is on the end of it. Motor thrust deflects the arm. The arm bends, the motor tilts with it, the thrust vector tilts too — and now the aircraft actually is rotating slightly, because the motor is no longer pointing where you bolted it.
Here is the part that turns a nuisance into a fault. The gyro is bolted to the centre plate, in the middle of all this, and it does its job perfectly: it measures that structural motion and reports it as aircraft rotation. Because at the gyro, it is aircraft rotation. The firmware has no way to know the difference between the airframe pivoting in the air and the airframe bending around the gyro. So the FC dutifully corrects it — and its correction is a change in motor thrust, which is precisely the thing that deflects the arm. The correction drives the arm further.
That is a structural feedback loop routed through the control loop. There is no PID value that fixes a spring.
How to tell them apart
Five tests, roughly in order of how much they tell you per minute spent.
Does it depend on throttle and load, or on stick input? A structural mode is excited by thrust and by motor vibration, so it appears or worsens under load: heavy in a hover, worse with a payload, worse when the aircraft is grinding to hold altitude. A gain oscillation is excited by the controller doing work — it grows when you move the sticks and when the aircraft is actively correcting, and it settles when you stop asking for anything. If your wobble is at its worst hovering motionless with a full payload and its best when you are flying it hard, that is a strong structural signal.
Does lowering the gain fix it proportionally? This is the meaning of that maddening third outcome. A gain problem responds smoothly: take 10% off P, get roughly 10% less oscillation; take another 10%, get less again. It is a dial. A structural problem barely responds, or responds unpredictably, because you are not changing the resonance at all — you are only changing how hard the loop leans on it. And a lower gain can absolutely make it worse, because gain is not the only thing that changed: with less P the aircraft is slower to arrest a disturbance, so the airframe gets more time to swing, and I-term picks up the slack in a way that adds phase lag exactly where you did not want it. If lowering the gain makes it worse, stop tuning. You are not looking at a tune.
The grab test, props off, on the bench. Take hold of a motor and try to twist and flex the arm. Push it up and down. Try to rotate the motor about the arm's axis. Does it move? Does the arm visibly bend? Does the motor mount rock? A frame that flexes noticeably under your hand will flex a great deal more in flight, where each arm is carrying a substantial fraction of the aircraft's weight and reacting motor torque on top of it. While you are there, check every arm bolt. A loose arm bolt is not a loose bolt, it is a hinge — and it is the single most common cause of "sudden mystery wobble on a frame that used to fly fine."
Where is it on the spectrum? Pull a Blackbox log and look at the gyro in the spectral view rather than the time trace. A structural mode is a sharp peak sitting at a fixed frequency. Crucially, it does not track RPM. That is what separates it from prop imbalance, a bent shaft or a dying bearing, all of which move up the spectrum as the motors spin faster. Ramp the throttle and watch the peak: if it slides, it is mechanical imbalance. If it sits exactly where it was, it is either a structural mode or a control-loop oscillation — and on a big airframe a structural mode is slow, a few hertz, down where you can see the aircraft doing it, not up in the buzzing hundreds.
And then the clean one. Change the tune — meaningfully, not by 5% — and look at the frequency again. A structural resonance sits at the same frequency no matter what you do to the PIDs, because its frequency is set by the mass and stiffness of the airframe, and there is no number in your flight controller that changes either of those. A gain oscillation moves: raise P and it speeds up, lower it and it slows and fades. So take two logs at genuinely different gains and compare where the peak is. If the peak has not budged, you have your answer, and you can put the Configurator down and pick up a hex key.
What to do about a flexy frame
This is a mechanical problem and it has mechanical fixes. All of them are about raising the frame's natural frequency and its damping — stiffer, or lighter at the end of the arm, or both.
- Stiffer arms. Thicker carbon, a deeper section, tube instead of flat plate. Stiffness is the term you have the most leverage on.
- Shorter arms. Cantilever stiffness falls away sharply with length. If your design has any margin here, it is the most effective single change available.
- Better arm clamping. Torque every bolt to spec and check them between flights. A joint that can move is a joint that will move, and it is the softest spring on the aircraft.
- Less mass on the end of the arm. A heavier motor lowers the resonance and makes it easier to excite. Motor, mount, ESC if it lives out there, wiring — all of it is mass on the end of a spring.
- Gussets and reinforcement where the arm meets the body, which is where the bending moment is greatest.
Two honest caveats.
Soft-mounting the FC helps the gyro not see the structural motion, which does break the feedback path. It does not stop the frame flexing — the arms are still bending, the thrust vector is still tilting, and the aircraft is still being disturbed. And soft mounts have their own failure mode: too soft, and the flight controller becomes a mass on a spring, with a resonance of its own that you have now built into the sensor. Soft mounting is a tool, not a free lunch.
Filtering out the structural frequency is a band-aid, and you should apply it knowing that. Every filter adds delay to the loop, and a notch deep enough to hide a structural mode is a notch sitting right in the band where a heavy aircraft actually rotates — which means you have made the FC blind to real motion at that frequency. You are trading control authority for the appearance of a fix.
Why this is worse on heavy aircraft
Everything conspires. Long arms are less stiff. Heavy motors and big props put more mass out at the tip. High thrust means large bending loads and large torque reactions into the arm. And the aircraft's own rotational inertia drags its natural frequency down until it lands uncomfortably close to the frequencies the control loop is trying to work in — so the structural mode and the control bandwidth are no longer neatly separated the way they are on a small quad, where the frame is stiff and the modes are far above anything the pilot cares about.
On a 250 g racer the frame is effectively rigid within the control bandwidth, and you can safely assume any slow oscillation is the tune. On a 5 kg platform, that assumption is exactly the trap. See tuning a heavy quad for the wider picture, and why does my quadcopter shake if you have not first ruled out the ordinary faults.
How to know you actually fixed it
The bar is not "it feels better." It never is.
- The peak is gone from the spectral view, not merely smaller — and gone without a notch filter propping the result up.
- The aircraft is clean under load, with the payload, in a long hover, which is the condition that provoked it. A structural mode that hides when the aircraft is light has not been fixed.
- You can now raise the gains again without the wobble reappearing at the old frequency. If the frame is genuinely stiffer, you have bought back tuning headroom, and you should be able to spend it.
- The fix survives the vibration. Re-torque and re-check after a few flights. Carbon frames loosen, and the fault you cured with a hex key can come back the same way.