ESC Calibration

You need to do this for a new set of ESCs, if you replace an ESC, or if you didn't do this step correctly in your initial setup.  The ESC calibration is actually permanently stored in the ESC.

This page additionally includes instructions that correctly set the motor/output neutral which is technically not part of ESC calibration, but should be done immediately after ESC calibration and uses the same setup (GCS and FC via USB) as this version of ESC calibration.

The following procedure does not require the use of the RC radio at all.  The GCS is used to control the FC (e.g. CC3D, Revo, Sparky2), and the FC supplies the servo pulses to all the ESC's at the same time.

Step-by-step guide

1 - Take props off !!!   Really !!!    Part of these instructions will have you running the motors, and other parts could accidentally run the motors e.g. if you do something wrong.
2 - Disconnect flight battery if connected.
3 - Connect FC to GCS/USB.  Note that this powers up the FC, but not the ESC's.  If your ESC powers up and the motor produces some beeps you can't use this procedure as written here.
4 - In the GCS, go into Configuration->Output.
5 - Verify that ESC's are running either all PWM/490, PwmSync, or even OneShot125 (all the same) aircraft stability will not be as good if you don't use one of these fast signal protocols.
6 - Make sure all your mins are 1000 and all your maxes are 1900.
7 - Link all ESC's together ('Link' check boxes on right in GCS).
8 - Click on one of the ESC sliders to give it focus.
9 - Play with Home and End keys on keyboard and see that they make sliders go full off and full on.
10 - Enable "Test Outputs" (and read the caution pop-up).
11 - Click on one of the ESC sliders to give it focus.
12 - Press End key to max all ESC's.
13 - Plug in flight battery to power the ESC's
14 - Wait just for first beep and immediately press the keyboard Home key.  There are two beep sequences.  If you wait too long you will hear the second set of beeps and must immediately unplug flight battery and start over (or risk changing some ESC settings on some ESC's).
15 - You should hear a set of confirmation 'calibration done' beeps that ESC's are programmed.  Listen carefully.  You might get for instance only 3 of 4 motors done correctly.  You can tell that the beeps are all the same (good) or some are different (bad).  After you have done this a few times, you can tell that it is correct by the beeping "calibration done" beeps.
16 - If incorrect or uncertain, or you just want to get the hang of it, unplug the flight battery and go back to step 11 (really easy).
17 - Unplug flight battery.
18 - Warning: This and later instructions will spin the motors.  With sliders still on min, plug in flight battery, wait for ESC startup beeps, and then slowly drag a slider with mouse a short way to test all motors at once.
19 - Press the keyboard Home key to set all ESC's/motors to minimum.
20 - Uncheck all 'Link' checkboxes.
21 - Move one slider up till that motor runs slowest but reliably.  Motor start often happens about 1070 or so with generic ESCs.  Consider adding about 15 to the slowest reliable to allow for changes caused by temperature in ESCs without an accurate clock frequency (very common).
22 - Do the same with the other sliders.
23 - The neutral values should all be within 2 or 3 of each other or you may not have a good calibration, start over and time your Home key a little more accurately.
24 - Often, one ESC's BEC is providing all the 5V power for the FC, RC receiver, etc.  That ESC will be warmer.  Depending on design, warmer ESCs read the signal differently and need a slightly higher number (3-5) to start the motor.  That is normal and acceptable.
25 - All motors are now running slowly.
26 - Disable "Test Outputs".  The motors will stop.
28 - Optional: Reduce the high end dead band.  Subtract about 30 from each max.  If you used 1900 set them to 1870.
29 - Press Save.

ESC calibration stores expected servo pulse min and max values inside all your ESC's.  This is a required part of multicopter setup if you want your multicopter to fly well in all maneuvers.  Take props off.  Set the servo pulse source (usually transmitter stick if you are using the RC Tx and Rx method) to full throttle before powering on the ESC.  Power the ESC up at full throttle, wait for the first beep, immediately reduce throttle to min, wait for beep, power off.  This lets the ESC know what length of pulses to expect at power up from now on.

ESC's produce beeps by moving the motor back and forth at a frequency high enough to hear, so it is actually the motor producing the sound and you won't hear the beeps if a functioning motor is not connected to the ESC.  The beep is louder if there is a prop on the motor.  The motor doesn't move much, if any, when producing sounds.  ESC's are not designed to be able to produce a beep while the motor is spinning.

ESC's produce different sets of beeps for startup, calibration, programming, confirmations, and for detected errors.  The typical startup sequence for many ESC's ends in a counted set of beeps that indicates the number of LiPo cells auto detected by reading the battery voltage.  This cell count can be wrong if your LiPo pack has a large number of cells, but is fully discharged.  Generally this is not a problem for 4 cells or less.  Even at 5 cells, you would have to discharge your pack dangerously low for it to be detected as a 4 cell pack.  Listen to this beep count.  It can tell you that you are trying to fly with a battery that is already fully discharged.

Most ESC's can only be powered up with the input (throttle) either all the way up or all the way down.  If the input is between high and low, the ESC will beep an error sequence.

Some ESC's have permanent settings that can be changed.

The typical power up sequence for an ESC is:
 - if throttle is all the way down, issue normal startup beeps and start ready to run the motor.
 - if throttle is all the way up, issue calibration mode beeps and wait a second or two for a change in throttle.
 - if a change in throttle comes before a second or two elapses, do ESC calibration with initial value = high throttle setting and value after change = low throttle setting and issue a calibration confirmation beep.
 - if a change in throttle did not come within a second or two of calibration beeps, then issue programming mode beeps and enter ESC settings programming menu where long and short beeps indicate what value is currently selected for change.  Generally if you get into this mode, you should power off the ESC without changing the throttle.  That will avoid changing settings.

ESC's are slower to start up from completely stopped than they are to start up when already running slowly.  Although the time difference is on the edge of human perception, it can make a difference when recovering from e.g. zero throttle, tumbling flight.  Setting the motor/output neutrals correctly is thus important.  The flight code will not allow the motors to fall below the neutral setting speed during normal flight, but if neutral is set too low, this won't work correctly and recovery can be delayed.