Flight modes define how ArduPilot interprets pilot input and manages vehicle control. Each mode represents a distinct control strategy, ranging from fully manual control where the pilot manages every axis, to fully autonomous operation where the autopilot executes a pre-loaded mission. Understanding which mode to use—and when—is fundamental to safe ArduPilot operation.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/Ardupilot/ardupilot/llms.txt
Use this file to discover all available pages before exploring further.
How modes are selected
RC channel selection
ArduPilot maps up to six flight modes to PWM ranges on a single RC channel. The channel used is configured with theFLTMODE_CH parameter (default: channel 5). The six mode slots correspond to these PWM bands:
| Mode slot | PWM range |
|---|---|
| FLTMODE1 | ≤ 1230 µs |
| FLTMODE2 | 1231–1360 µs |
| FLTMODE3 | 1361–1490 µs |
| FLTMODE4 | 1491–1620 µs |
| FLTMODE5 | 1621–1749 µs |
| FLTMODE6 | ≥ 1750 µs |
FLTMODEn parameter stores an integer matching the mode’s number from the Mode::Number enum. For example, setting FLTMODE1 to 2 selects AltHold when the RC channel is at its lowest position.
MAVLink command
A GCS or companion computer can change the active flight mode at any time by sending aCOMMAND_LONG message with the command MAV_CMD_DO_SET_MODE or a SET_MODE message. The new mode takes effect immediately if the arming state and mode’s init() method allow it.
Boot-time mode
TheINITIAL_MODE parameter sets the mode entered on power-up. This is useful for autonomous deployments where no RC transmitter is present at startup.
Some modes, such as Brake and Flip, cannot be used as arming modes. Their
allows_arming() method returns false, so the vehicle will refuse to arm while in those modes.ArduCopter mode list
ArduCopter supports the richest set of flight modes. The mode numbers below come directly from theMode::Number enum in ArduCopter/mode.h.
- Copter
- Plane
- Rover
Primary modes
Stabilize (0)
Stabilize (0)
Manual airframe angle with manual throttle. The autopilot levels the vehicle in response to stick input but applies no altitude or position hold. This is the most direct control mode and requires continuous pilot input to maintain altitude. It is the recommended mode for initial setup and ESC calibration.
AltHold (2)
AltHold (2)
Manual airframe angle with automatic throttle. The autopilot maintains the current altitude when the throttle stick is centred. Moving the throttle stick above or below centre commands climb or descent at a rate proportional to stick deflection. No horizontal position hold is applied. Requires a barometer; does not require GPS.
Loiter (5)
Loiter (5)
Automatic horizontal acceleration with automatic throttle. The autopilot holds the vehicle’s current horizontal position and altitude using GPS. Stick inputs command velocity, and the autopilot decelerates the vehicle back to a stop when sticks are released. Requires GPS lock.
Auto (3)
Auto (3)
Fully autonomous waypoint navigation using a pre-loaded mission. The autopilot executes
NAV_WAYPOINT, NAV_LOITER, DO_* and other mission commands in sequence. Pilot stick inputs are ignored except for yaw when the IgnorePilotYaw option is not set. Requires GPS.Guided (4)
Guided (4)
Fully automatic flight to coordinates or at a velocity commanded via MAVLink in real time. Used by companion computers, GCS applications, and scripts. The autopilot accepts
SET_POSITION_TARGET_LOCAL_NED, SET_POSITION_TARGET_GLOBAL_INT, and SET_ATTITUDE_TARGET messages. Requires GPS.RTL (6)
RTL (6)
Automatic return to the launch point. The vehicle climbs to the altitude set by
RTL_ALT_M (if currently lower), returns to the home position, loiters for RTL_LOIT_TIME milliseconds, then lands. Requires GPS.Land (9)
Land (9)
Automatic descent and landing at the current horizontal position. The vehicle descends at
LAND_SPD_MS until touchdown is detected, then disarms. If GPS is available the vehicle maintains horizontal position during descent.PosHold (16)
PosHold (16)
A hybrid of Stabilize and Loiter. With sticks centred the autopilot holds horizontal position using GPS. Moving the sticks switches to angle-based control similar to Stabilize, and releasing them smoothly decelerates the vehicle back to a hover. Requires GPS.
SmartRTL (21)
SmartRTL (21)
Like RTL, but the vehicle retraces the path it flew since arming, avoiding obstacles along the route. The breadcrumb path is stored in memory and discarded on disarm. Requires GPS.
Less common modes
Acro (1)
Acro (1)
Manual body-frame angular rate control with manual throttle. Stick inputs command rotation rates, not angles. The vehicle will not self-level when sticks are centred. Requires significant piloting skill. The
ACRO_RP_RATE and ACRO_Y_RATE parameters scale the maximum rate.Circle (7)
Circle (7)
Automatically orbits a point at a fixed radius with automatic throttle. The centre point is set to the vehicle’s position when the mode is entered. The orbit radius and rate are set by
CIRCLE_RADIUS and CIRCLE_RATE.Drift (11)
Drift (11)
Semi-autonomous roll and yaw with automatic throttle. Designed to provide a fixed-wing-like flying experience on a multicopter. Roll input banks the vehicle, causing it to drift in that direction, while yaw is coupled to the bank angle.
Sport (13)
Sport (13)
Manual earth-frame angular rate control with manual throttle. Similar to Acro but in the earth frame, so the vehicle self-levels when sticks are centred.
Flip (14)
Flip (14)
Automatically executes a full 360° roll flip. The vehicle must be flying above a minimum altitude. Control returns to the previous mode after the flip completes. The autopilot manages the manoeuvre without pilot input.
AutoTune (15)
AutoTune (15)
Automatically tunes roll and pitch rate PID gains by performing a series of twitches. The vehicle must be in a stable hover in a calm wind environment. Gains are saved to EEPROM when the flight mode is exited.
Brake (17)
Brake (17)
Applies full braking using the inertial/GPS system to stop the vehicle as quickly as possible. No pilot input is accepted. The mode exits to Loiter after a configurable timeout.
Throw (18)
Throw (18)
Allows arming and launching by throwing the vehicle into the air. Motors start only after a throw is detected via the IMU. The vehicle then stabilises and holds position using GPS.
Avoid ADSB (19)
Avoid ADSB (19)
Automatic avoidance of ADS-B transponder-equipped traffic. When an intruder is detected within the configured distance the autopilot manoeuvres to maintain separation.
Guided NoGPS (20)
Guided NoGPS (20)
A variant of Guided mode that accepts only attitude and altitude targets from MAVLink—no position targets. Useful for indoor flight with external attitude references.
FlowHold (22)
FlowHold (22)
Holds horizontal position using an optical flow sensor instead of GPS. A rangefinder is not required but improves accuracy. Requires a calibrated optical flow sensor (
FLOW_ENABLE=1).Follow (23)
Follow (23)
Follows another vehicle or a moving target broadcast via MAVLink
GLOBAL_POSITION_INT messages. The offset and target system ID are set through the FOLL_* parameter group.ZigZag (24)
ZigZag (24)
Flies a zigzag pattern between two pre-defined points A and B, typically used for agricultural spraying. Points are recorded by the pilot during setup. Side distance and the number of passes are configurable.
SystemId (25)
SystemId (25)
Produces automated frequency-sweep (chirp) signals on roll, pitch, yaw, or throttle for system identification. Used to measure vehicle dynamics for control tuning.
Turtle (28)
Turtle (28)
Allows recovery from an inverted crash by spinning individual motors to flip the vehicle upright. Only available when the vehicle is disarmed and inverted.
RC channel PWM to mode mapping
TheFLTMODE_CH parameter selects which RC channel carries the mode switch signal. The six PWM bands are fixed in firmware. A typical three-position switch maps to positions 1, 4, and 6; a six-position switch maps to all six slots. The INITIAL_MODE parameter determines the mode used at boot before the RC receiver produces a valid signal.