Why does my quad drift in Angle mode?

"Drift" is at least three different faults, and one of them is not a fault at all. Work out which one you have before you calibrate anything.

Diagnostics 7 min read Updated 2026-07-13

The symptom

You centre the sticks in Angle mode and the aircraft does not stay put. It slides off in some direction, and you spend the whole flight nudging it back.

Before you do anything else, understand this: "drift" describes at least three unrelated things, and one of them is not a fault. People burn weekends calibrating an accelerometer that was fine, because they never separated the three.

  • The aircraft will not hold level. Sticks centred, and it consistently leans and accelerates the same way every flight, indoors, in still air. That is an attitude problem — accelerometer or level trim.
  • The aircraft holds level and still moves. It is genuinely flat, and it still translates. In wind, that is correct behaviour. See below, because this is the big one.
  • The aircraft slowly yaws or wanders in Acro. Different fault entirely. Acro mode does not use the accelerometer, so no amount of accelerometer calibration will touch it. That is gyro bias, stick centring or RC trim.

Decide which one you have first. The rest of this article assumes you have.

Check this in 60 seconds

  1. Fly it indoors, or on a genuinely dead-calm morning. If the drift disappears without wind, you never had a levelling fault. You had weather.
  2. Look at the artificial horizon in the Betaflight or iNAV Configurator with the aircraft sitting on a level surface. Does the FC agree that it is level? If it shows a few degrees of tilt while the aircraft is flat, you have found your answer in ten seconds.
  3. Check your radio's trims are all at centre. Every one of them. If they are not, put them back and read the trim section below before you touch anything on the FC.

Angle mode holds attitude, not position

This deserves its own heading because it is the single most common misdiagnosis in the hobby.

Angle and Horizon mode command a tilt angle. That is all they do. Sticks centred means "hold zero degrees of tilt." It does not mean "stay over that spot on the ground." Nothing in Angle mode knows where the ground is, where you launched, or that the air is moving.

A multirotor sitting perfectly level in a 5 m/s breeze is a lump of drag with no horizontal thrust component. It will accelerate downwind until its drag balances the wind, and then it will travel downwind at very nearly wind speed, indefinitely, in perfect level flight. The firmware is doing precisely what you asked. To stay over a spot, the aircraft must tilt into the wind — and the only thing that can decide how much to tilt is a controller that knows its position: GPS position hold, or optical flow. If you are not running one of those modes, an aircraft that drifts downwind is not broken.

This gets worse on heavy platforms, not better. Mass buys you time, so the drift starts slowly and you assume it is a trim problem — but a big airframe with big frontal area couples to wind hard, and once it is moving it takes real tilt and real seconds to bring back.

Test it honestly: fly indoors, or on a still day. If the drift goes away, stop looking for a fault.

The real causes, ranked

What you see Where to look
Consistent lean, same direction every flight, still air Accelerometer calibration, or the surface it was calibrated on
Level in the Configurator on the bench, tilted in the air FC mounted at an angle, board alignment never set
Fine in Angle, but Acro wanders and the stick centres look off Radio trims — you trimmed the wrong end of the system
Drift appeared after a crash, or after a payload change Bent arm, or centre of gravity
Drift comes and goes over a flight Vibration, or temperature

1. The accelerometer was calibrated on a surface that was not level

This is the biggest one by a distance, and it is almost never "I forgot to calibrate." It is "I calibrated on the tailgate of my car."

Accelerometer calibration teaches the FC what level means by measuring gravity while the aircraft is stationary. If the aircraft is sitting at 1.5° when you run the calibration, the FC now believes 1.5° of tilt is level, and it will hold that tilt with total conviction for the rest of its life. Your aircraft will accelerate quietly and permanently in that direction.

A truly level surface is far rarer than people think. Kitchen worktops slope for drainage. Workbenches sag. Tables rock. Floors are laid to a tolerance, not to a plane. Garage floors are deliberately graded. That table you have always used is very likely a degree or two out, and a degree or two is exactly the size of the fault you are chasing.

So: put a spirit level on the surface — a real one, or a bubble level, and check both axes. Shim it flat. Then calibrate. If you cannot find a level surface, use a small flat plate you can level, and calibrate on that. Do the calibration with the aircraft fully assembled, in its flight configuration, sitting on its own landing gear, because that is the geometry it will be flying in.

2. The FC is mounted at an angle and you never told it

Slightly tilted stack, a wedge of foam under one corner, a mounting plate that is not parallel with the arms. The aircraft is level; the board is not; and the board is what the FC believes in.

The fix is the flight controller's board alignment — the roll/pitch/yaw adjustment in the Configurator (align_board_roll / align_board_pitch / align_board_yaw in Betaflight, the equivalent alignment settings in iNAV and ArduPilot). Set the alignment, then re-run the accelerometer calibration. Do not try to absorb a mounting angle into an accelerometer calibration; you will end up with two wrongs that only cancel in the hover.

3. You used the radio's trims

Radio trims are the wrong tool, and it is worth being precise about why.

Radio trim biases the stick centre. It does not tell the flight controller that its idea of level is wrong; it tells the flight controller that you are asking for a small permanent tilt. So in Angle mode it appears to work — you have added a counter-tilt that happens to cancel the error.

Then three things go wrong. In Acro, where there is no levelling at all, that same offset becomes a permanent commanded rotation rate, and the aircraft rolls away on its own. Your neutral stick position no longer reads centre, so anything that watches for centred sticks behaves oddly. And the offset is now invisible: it lives in a model on your radio, not in the aircraft, so the next time you bind a different radio, or reset the model, the "fixed" aircraft is broken again.

Put every trim back to centre. Fix the aircraft on the aircraft — accelerometer calibration and board alignment. If your firmware exposes a dedicated level trim (Betaflight has one), that is the correct place to put a residual offset, because it lives in the FC and applies only to the levelling modes.

4. The frame is bent, so the motors are not coplanar

After a hard crash, an arm can take a small permanent twist or droop. Now one motor's thrust vector points somewhere the other three do not, and the aircraft must hold a tilt to fly straight — which the FC dutifully does, and which you experience as drift and as one motor running hotter than the rest.

Put the frame on a flat surface and sight across the motor bells. Check the arms are seated and the bolts are tight. A twisted arm is a replacement, not an adjustment.

5. The centre of gravity is off

This one belongs to the heavy crowd. Hang a 700 g camera off one side of a 5 kg airframe and the centre of gravity moves. The aircraft can only stay in one place by tilting slightly toward the heavy side and letting the thrust vector pass through the new CG — so a correctly levelled aircraft will now drift, and no calibration on earth will fix it, because nothing is miscalibrated.

The tell: the drift changes when the payload changes. Move the battery, move the payload, get the CG back over the centre of the motor plane, and the drift goes with it. Balance the aircraft; do not trim around it.

6. Vibration and temperature

Two slower, sneakier causes. Heavy vibration corrupts the accelerometer, and since the accelerometer is what levelling modes lean on, a noisy airframe can produce a wandering, unrepeatable level reference. If your aircraft also buzzes, fix that first — the drift may be a symptom.

And gyros drift with temperature. Calibrate a cold FC in a cold garage, fly, and the board warms up under its own power; the bias you measured at 10°C is not the bias at 40°C. It shows as a slow yaw or a slow wander that gets worse over the first minutes of a session. Let the aircraft sit powered for a minute before calibrating, and calibrate at something like flying temperature.

How to know you actually fixed it

The bar is not "it felt better on that last pack."

  • Hover it in still air — indoors, or at dawn — with the sticks centred and hands off, and watch for ten seconds. That is the only test that isolates the aircraft from the weather.
  • Every radio trim is at centre, and the aircraft still holds.
  • Acro is clean too. A genuine fix to level does not break Acro, and a fix that only works in Angle mode means you trimmed the sticks instead of the aircraft.
  • It survives a power cycle from cold, and the next session, and a different battery position.

Why this is worth simulating

A simulator cannot calibrate your accelerometer, and it will never tell you that your workbench slopes 1.5° toward the window. That part is yours.

What it can do is settle the argument at the centre of this fault. Shift the centre of gravity on a 5 kg airframe and watch how much standing tilt the flight controller is forced to hold, and how that tilt turns into travel across the ground — with the firmware behaving perfectly throughout. Once you have seen a healthy aircraft drift for entirely correct reasons, you stop chasing calibrations that were never wrong, and you know that when the drift persists with the CG centred, it really is the aircraft.