Servos¶
The Servos tab assigns a function to each auxiliary output. It is a single page — the output map, then the metadata-backed output settings that extend it — with no sub-tabs.
Note
Relays, the notification LEDs and buzzer, the gimbal and the rangefinder/optical-flow surfaces used to be sub-tabs here. They are hardware wired to the board rather than servo setup, so they moved to Peripherals & Gimbal, and Servos lost its task strip along with them. Relays are documented below for reference; they are configured on the Peripherals tab.
Servo output functions¶
The servo mapping table shows a row for every output
channel the flight controller reports, with columns Channel · Function · Min ·
Trim · Max · Live · Rev · Kind. The Function cell assigns SERVOn_FUNCTION —
what that physical output drives. ArduPilot offers a long list; common choices
include Disabled, RCPassThru, motor outputs (Motor 1…Motor 12*+), control
surfaces (*Aileron, Elevator, Rudder, Elevon Left/Right, VTail
Left/Right), gimbal axes (Mount Pitch/Roll/Yaw), Camera Trigger, Gripper,
the Script 1–Script 16 outputs a Lua script drives, and the NeoPixel
1–NeoPixel 4 LED-strip functions.
Each channel also exposes its PWM endpoints and direction:
SERVOn_MIN/SERVOn_TRIM/SERVOn_MAX— the output range and centre in microseconds (800–2200 µs).SERVOn_REVERSED— a Rev checkbox that flips the output direction.
Live output values¶
The Live column shows what the flight controller is actually driving each
output to, in microseconds, updated about ten times a second. A bar beside the
number shows where that value sits between the channel’s own SERVOn_MIN and
SERVOn_MAX, and turns amber when the output is at or past one of them.
This answers a question the rest of the table cannot. SERVOn_FUNCTION says
what an output is for, and the range fields say what it is allowed to do;
neither says what it is doing right now. When a surface will not move and the
configuration looks correct, this is where the answer usually is — either the
output is not being driven at all, or it is being driven hard into an endpoint.
An output reading idle is not a low PWM value: it means the firmware is not driving that channel at all. Outputs a board does not use report this rather than a number.
Note
The readout needs the vehicle to be streaming SERVO_OUTPUT_RAW. The app
requests it on connect, so it appears on its own; a dash means nothing has
arrived for that channel yet.
The Kind badge classifies each output (Motor, Control Surface, RC Pass-through, Peripheral, Disabled) so you can see at a glance what the frame is using. Edits stage as drafts; Apply servo mapping commits them and Revert discards them.
Warning
Reassigning SERVOn_FUNCTION on an output wired to an ESC can spin a
motor. Keep the props off whenever you change output functions, and re-check
the motor mapping on the Outputs & Motors tab afterwards.
Notify devices (LED and buzzer)¶
External LEDs and buzzers are driven by ArduPilot’s notify subsystem rather than by an output function, so they live in the LED & buzzer notifications card on the Outputs surface (not the servo table). The two driver parameters are bitmasks:
NTF_LED_TYPES— which LED drivers are active (Built-in LED, NeoPixel, ProfiLED, DShot, DroneCAN, Scripting, …).NTF_BUZZ_TYPES— which buzzer drivers are active (Built-in Buzzer, DShot, DroneCAN).
You set these by clicking the driver chips — each chip toggles one bit and
highlights when on; there is no separate checkbox. Supporting parameters include
NTF_LED_BRIGHT (Off/Low/Medium/High), NTF_LED_LEN (number of LEDs in a
strip), NTF_LED_OVERRIDE (the LED source), and NTF_BUZZ_VOLUME.
Note
For an addressable LED strip to light up, an output must also carry a
NeoPixel function (SERVOn_FUNCTION 120–123). The notifications card on
Peripherals & Gimbal detects and lists any such configured outputs and
prompts you to assign one if none is set.
Relays¶
The Relays section (on Peripherals & Gimbal) configures up to six relay outputs as a grid of per-relay cards. Each relay has:
RELAYn_FUNCTION— what the relay is for: None, Relay (manual on/off), Ignition, Parachute, Camera, brushed-motor-reverse functions, ICE Starter, or a DroneCAN Hardpoint.RELAYn_PIN— the autopilot GPIO pin the relay drives (set to -1 to disable).RELAYn_DEFAULT— the power-on state (Off / On / NoChange), shown when the function is the plain Relay type.RELAYn_INVERTED— Normal or Inverted pin polarity.
Note
RELAYn_FUNCTION, RELAYn_PIN, and RELAYn_DEFAULT are applied when
the flight controller boots — the pin is configured and the default state set
at start-up — so a change is reboot-required: the app prompts you to
reboot before it takes effect. RELAYn_INVERTED applies live.
Enum fields render as selectable chips and the pin as a number field; the same staged Apply relay changes / Revert toolbar applies. Only relay instances the flight controller actually reports are shown.
Note
RELAYn_PIN must match a pin your autopilot exposes as a GPIO. The correct
pin number depends on the board and which functions are enabled on the
BRD_* GPIO/PWM parameters — consult your board’s documentation.
See also the ArduPilot wiki: Relay Switch and the Servo / Output function list.