# How to Calibrate FPV Drone ESC and Accelerometer Correctly
A miscalibrated FPV drone flies like it’s drunk — drifting in Angle mode, motors sputtering at low throttle, or one corner lifting before the others. Proper calibration of your ESCs and accelerometer is the foundation of a well-behaved quad, yet it’s often skipped after a build or firmware update. This guide walks through both calibration procedures step by step.
## Part 1: ESC Calibration
### Do You Even Need to Calibrate ESCs?
**Short answer**: If you’re running BLHeli_S, BLHeli_32, or AM32 firmware with DShot protocol (which covers 95% of modern quads), **manual ESC calibration is not needed**. DShot is a digital protocol — the flight controller sends an exact RPM value, and there’s no analog signal to calibrate.
You only need manual calibration if:
– You’re running an older ESC protocol (Oneshot125, Oneshot42, Multishot)
– You’ve replaced an individual ESC and it’s behaving differently
– Your motors don’t all start spinning at the same throttle point
### How to Calibrate ESCs (Analog Protocols Only)
1. **Remove propellers** (mandatory for safety)
2. In Betaflight Configurator, go to the **Motors** tab
3. Check the “I understand the risks” box
4. Set the motor protocol to the one you’re calibrating in the Configuration tab
5. **Drag the Master slider to maximum** (2000)
6. **Plug in the battery** — ESCs will beep a calibration sequence
7. After the beeps stop, **drag the Master slider to minimum** (1000)
8. ESCs will beep again, confirming calibration
9. Unplug the battery, return the motor protocol to DShot, and save
### DShot Users: What You Should Do Instead
Even though DShot doesn’t need calibration, verify these settings:
“`
# Motor protocol
set motor_pwm_protocol = DSHOT600 # or DSHOT300 for 8K PID loops
# Motor idle
set motor_output_limit = 100 # 100 = no limit. Lower to 90 for 6S on high KV
set dshot_idle_value = 550 # Idle speed in DShot units. 550 = ~5.5% throttle
“`
For bidirectional DShot (RPM filtering), enable:
“`
set dshot_bidir = ON
save
“`
Then check the Motors tab — all four motors should start spinning at exactly the same slider position (>1010).
## Part 2: Accelerometer Calibration
The accelerometer tells the flight controller which way is “up.” A poorly calibrated accelerometer causes:
– Constant drift in Angle and Horizon modes
– GPS Rescue flying in the wrong direction
– The artificial horizon in OSD showing tilted when the quad is level
### Step-by-Step Accelerometer Calibration
1. **Place the drone on a verified level surface** — use a bubble level on the frame, not your desk
2. Connect USB to Betaflight Configurator
3. Go to the **Setup** tab
4. Click **”Calibrate Accelerometer”**
5. **Do not touch the quad during calibration** (takes ~3 seconds)
6. Verify: the 3D model on screen should show the quad perfectly level
### Calibration Pitfalls
| Problem | Symptom | Solution |
|—|—|—|
| Calibrated on uneven surface | Drone tilts immediately in Angle mode | Recalibrate on a known-level surface |
| Frame is warped | Motors are level but FC is tilted | Use soft-mounted FC or shim the stack |
| Vibrations during calibration | Inconsistent calibration results | Hold the quad still; avoid desks with fans |
| FC not firmly mounted | Calibration drifts after flights | Tighten FC mounting nuts; replace damaged gummies |
### Advanced: 6-Point Calibration
If basic calibration doesn’t fix a persistent drift, perform a 6-point calibration in the CLI:
“`
# Place the quad on each face in sequence, running this command each time:
acc_calibration 0 # Level (top facing up)
acc_calibration 1 # Left side
acc_calibration 2 # Right side
acc_calibration 3 # Nose up
acc_calibration 4 # Nose down
acc_calibration 5 # Upside down
save
“`
This is rarely needed on modern FCs but can rescue units with sensor drift.
## Part 3: Gyro Calibration
The gyro auto-calibrates every time you power up. If you see drift or instability:
1. **Let the quad sit still for 5 seconds after plugging in** — the gyro samples zero-rate during this boot grace period
2. Check the gyro traces in the Sensors tab: they should read 0 (±5) when the quad is stationary
3. If gyro values drift significantly at rest (>10 deg/s), the gyro chip may be damaged
### Setting the Gyro Alignment
If your FC is mounted at an unusual angle (common on AIO boards), set the alignment:
“`
set align_gyro = CW180 # Rotate 180° clockwise. Options: CW0, CW90, CW180, CW270, CW0FLIP, etc.
save
“`
## Part 4: Verification Flight
After calibration, perform a controlled test:
1. Arm in Angle mode, hover at eye level, hands off the right stick
2. The quad should stay nearly level with minimal drift
3. If it still drifts, the accelerometer trim needs adjustment:
“`
set acc_trim_pitch = 2 # Positive = nose-up correction
set acc_trim_roll = -3 # Negative = right-roll correction
save
“`
Adjust in increments of 1-2 until the drift is eliminated.
## Recommended Hardware
A quality flight controller with a well-isolated IMU makes calibration simpler and drift less likely. Check out the F7 and H7 flight controllers at [UAVModel](https://uavmodel.com) — they feature isolated gyro mounting and precise sensors for stable, drift-free flight.
## Watch: Betaflight Accelerometer and ESC Calibration
## Summary
For DShot users, skip ESC calibration entirely — it’s not needed. Focus on accelerometer calibration: place your quad on a truly level surface, hit calibrate, and verify in the Setup tab. If Angle mode still drifts, use acc_trim values in the CLI for fine adjustment. A calibrated quad is a predictable quad.
—
