MAVLINKHUD

Overview

The SERVO parameter group (often appearing as SERVOx_ or MOT_) configures the physical PWM / DShot / SBus outputs of the flight controller.

While RCMAP handles Input, the SERVO group handles Output. It defines what each pin on the servo rail actually does (e.g., Motor 1, Aileron, Camera Trigger, etc.) and how the signal is scaled.

Key Concepts

1. Servo Functions (SERVOx_FUNCTION)

The most important setting. Tells the autopilot what is plugged into the pin.

  • 0: Disabled.
  • 33: Motor 1 (Multicopter).
  • 4: Aileron (Plane).
  • 10: Camera Trigger.
  • 51: RC Passthrough (Directly copies an input channel to this output).

2. Output Calibration (SERVOx_MIN, MAX, TRIM)

Defines the pulse-width limits (microseconds).

  • MIN: The "Low" endpoint (typically 1100us).
  • MAX: The "High" endpoint (typically 1900us).
  • TRIM: The "Neutral" position (typically 1500us).
  • REVERSED: Flips the direction of travel (0=Normal, 1=Reversed).

3. BLHeli / DShot Pass-through (SERVO_BLH_...)

Configures the interface for BLHeli_32 ESCs, allowing the autopilot to perform firmware updates and read RPM telemetry (Bi-directional DShot).

Parameter Breakdown

  • SERVO_RATE: The update frequency for standard PWM servos (default 50Hz).
  • SERVO_DSHOT_RATE: The speed of digital DShot outputs.
  • SERVO_GPIO_MASK: Converts PWM pins into simple digital High/Low pins.

Integration Guide

Setting up a New Motor

  1. Connect ESC to Output 1.
  2. Set SERVO1_FUNCTION = 33 (Motor 1).
  3. Set MOT_PWM_TYPE to your desired protocol (e.g., DShot600).
  4. Test: Use the "Motor Test" tab in the GCS to verify rotation direction. If wrong, use SERVO1_REVERSED (for PWM) or BLHeliSuite (for DShot).

Developer Notes

  • Library: libraries/SRV_Channel.
  • Safety: PWM outputs are disabled until the vehicle is Armed or the Hardware Safety Switch is pressed.

SERVO10_FUNCTION

Default 0
Range null

Servo output function

Note: This parameter functions identically to SERVO1_FUNCTION.

SERVO10_MAX

PWM
Default 1900
Range 800 2200

Maximum PWM

Note: This parameter functions identically to SERVO1_MAX.

SERVO10_MIN

PWM
Default 1100
Range 800 2200

Minimum PWM

Note: This parameter functions identically to SERVO1_MIN.

SERVO10_REVERSED

Default 0
Range null

Servo reverse

Note: This parameter functions identically to SERVO1_REVERSED.

SERVO10_TRIM

PWM
Default 1500
Range 800 2200

Trim PWM

Note: This parameter functions identically to SERVO1_TRIM.

SERVO11_FUNCTION

Default 0
Range null

Servo output function

Note: This parameter functions identically to SERVO1_FUNCTION.

SERVO11_MAX

PWM
Default 1900
Range 800 2200

Maximum PWM

Note: This parameter functions identically to SERVO1_MAX.

SERVO11_MIN

PWM
Default 1100
Range 800 2200

Minimum PWM

Note: This parameter functions identically to SERVO1_MIN.

SERVO11_REVERSED

Default 0
Range null

Servo reverse

Note: This parameter functions identically to SERVO1_REVERSED.

SERVO11_TRIM

PWM
Default 1500
Range 800 2200

Trim PWM

Note: This parameter functions identically to SERVO1_TRIM.

SERVO12_FUNCTION

Default 0
Range null

Servo output function

Note: This parameter functions identically to SERVO1_FUNCTION.

SERVO12_MAX

PWM
Default 1900
Range 800 2200

Maximum PWM

Note: This parameter functions identically to SERVO1_MAX.

SERVO12_MIN

PWM
Default 1100
Range 800 2200

Minimum PWM

Note: This parameter functions identically to SERVO1_MIN.

SERVO12_REVERSED

Default 0
Range null

Servo reverse

Note: This parameter functions identically to SERVO1_REVERSED.

SERVO12_TRIM

PWM
Default 1500
Range 800 2200

Trim PWM

Note: This parameter functions identically to SERVO1_TRIM.

SERVO13_FUNCTION

Default 0
Range null

Servo output function

Note: This parameter functions identically to SERVO1_FUNCTION.

SERVO13_MAX

PWM
Default 1900
Range 800 2200

Maximum PWM

Note: This parameter functions identically to SERVO1_MAX.

SERVO13_MIN

PWM
Default 1100
Range 800 2200

Minimum PWM

Note: This parameter functions identically to SERVO1_MIN.

SERVO13_REVERSED

Default 0
Range null

Servo reverse

Note: This parameter functions identically to SERVO1_REVERSED.

SERVO13_TRIM

PWM
Default 1500
Range 800 2200

Trim PWM

Note: This parameter functions identically to SERVO1_TRIM.

SERVO14_FUNCTION

Default 0
Range null

Servo output function

Note: This parameter functions identically to SERVO1_FUNCTION.

SERVO14_MAX

PWM
Default 1900
Range 800 2200

Maximum PWM

Note: This parameter functions identically to SERVO1_MAX.

SERVO14_MIN

PWM
Default 1100
Range 800 2200

Minimum PWM

Note: This parameter functions identically to SERVO1_MIN.

SERVO14_REVERSED

Default 0
Range null

Servo reverse

Note: This parameter functions identically to SERVO1_REVERSED.

SERVO14_TRIM

PWM
Default 1500
Range 800 2200

Trim PWM

Note: This parameter functions identically to SERVO1_TRIM.

SERVO15_FUNCTION

Default 0
Range null

Servo output function

Note: This parameter functions identically to SERVO1_FUNCTION.

SERVO15_MAX

PWM
Default 1900
Range 800 2200

Maximum PWM

Note: This parameter functions identically to SERVO1_MAX.

SERVO15_MIN

PWM
Default 1100
Range 800 2200

Minimum PWM

Note: This parameter functions identically to SERVO1_MIN.

SERVO15_REVERSED

Default 0
Range null

Servo reverse

Note: This parameter functions identically to SERVO1_REVERSED.

SERVO15_TRIM

PWM
Default 1500
Range 800 2200

Trim PWM

Note: This parameter functions identically to SERVO1_TRIM.

SERVO16_FUNCTION

Default 0
Range null

Servo output function

Note: This parameter functions identically to SERVO1_FUNCTION.

SERVO16_MAX

PWM
Default 1900
Range 800 2200

Maximum PWM

Note: This parameter functions identically to SERVO1_MAX.

SERVO16_MIN

PWM
Default 1100
Range 800 2200

Minimum PWM

Note: This parameter functions identically to SERVO1_MIN.

SERVO16_REVERSED

Default 0
Range null

Servo reverse

Note: This parameter functions identically to SERVO1_REVERSED.

SERVO16_TRIM

PWM
Default 1500
Range 800 2200

Trim PWM

Note: This parameter functions identically to SERVO1_TRIM.

SERVO17_FUNCTION

Default 0
Range null

Servo output function

Note: This parameter functions identically to SERVO1_FUNCTION.

SERVO17_MAX

PWM
Default 1900
Range 800 2200

Maximum PWM

Note: This parameter functions identically to SERVO1_MAX.

SERVO17_MIN

PWM
Default 1100
Range 800 2200

Minimum PWM

Note: This parameter functions identically to SERVO1_MIN.

SERVO17_REVERSED

Default 0
Range null

Servo reverse

Note: This parameter functions identically to SERVO1_REVERSED.

SERVO17_TRIM

PWM
Default 1500
Range 800 2200

Trim PWM

Note: This parameter functions identically to SERVO1_TRIM.

SERVO18_FUNCTION

Default 0
Range null

Servo output function

Note: This parameter functions identically to SERVO1_FUNCTION.

SERVO18_MAX

PWM
Default 1900
Range 800 2200

Maximum PWM

Note: This parameter functions identically to SERVO1_MAX.

SERVO18_MIN

PWM
Default 1100
Range 800 2200

Minimum PWM

Note: This parameter functions identically to SERVO1_MIN.

SERVO18_REVERSED

Default 0
Range null

Servo reverse

Note: This parameter functions identically to SERVO1_REVERSED.

SERVO18_TRIM

PWM
Default 1500
Range 800 2200

Trim PWM

Note: This parameter functions identically to SERVO1_TRIM.

SERVO19_FUNCTION

Default 0
Range null

Servo output function

Note: This parameter functions identically to SERVO1_FUNCTION.

SERVO19_MAX

PWM
Default 1900
Range 800 2200

Maximum PWM

Note: This parameter functions identically to SERVO1_MAX.

SERVO19_MIN

PWM
Default 1100
Range 800 2200

Minimum PWM

Note: This parameter functions identically to SERVO1_MIN.

SERVO19_REVERSED

Default 0
Range null

Servo reverse

Note: This parameter functions identically to SERVO1_REVERSED.

SERVO19_TRIM

PWM
Default 1500
Range 800 2200

Trim PWM

Note: This parameter functions identically to SERVO1_TRIM.

SERVO1_FUNCTION

Default 0
Range 0 300

Servo 1 Output Function (SERVO1_FUNCTION)

Description

SERVO1_FUNCTION tells the autopilot what is physically plugged into the first output pin on your flight controller.

By default, pins do nothing. You must assign a function to each pin so the autopilot knows where to send the motor commands, steering signals, or auxiliary triggers.

Common Values

  • 0: Disabled. Output remains at neutral/off.
  • 33-40: Motor 1 - Motor 8. (Standard multicopter motor mapping).
  • 4: Aileron. (Fixed-wing).
  • 19: Elevator. (Fixed-wing).
  • 21: Rudder. (Fixed-wing).
  • 51-66: RCIN Passthrough. Directly mirrors the signal from an RC channel.
  • 120+: Relay. Simple digital ON/OFF control.

Tuning & Behavior

  • Default: 0.
  • Safety: Never change these values while a battery is connected and propellers are attached. A change in function can cause a motor to spin up unexpectedly.
  • Redundancy: You can assign the same function to multiple pins (e.g., two pins set to "Aileron") if you have dual servos on a single control surface.

SERVO1_MAX

PWM
Default 1900
Range 800 2200

Servo 1 Maximum (SERVO1_MAX)

Description

SERVO1_MAX sets the "Upper Limit" for a servo or ESC.

It defines the longest pulse width that the autopilot will ever send to this pin.

  • Standard Setting: 1900 (µs).
  • Recommendation: Match this to the physical limit of your aircraft's hardware to prevent mechanical binding.

SERVO1_MIN

PWM
Default 1100
Range 800 2200

Servo 1 Minimum (SERVO1_MIN)

Description

SERVO1_MIN sets the "Lower Limit" for a servo or ESC.

It defines the shortest pulse width that the autopilot will ever send to this pin. This is used to prevent a servo from trying to push past a physical wall or to set the "Off" point for an ESC.

  • Standard Setting: 1100 (µs).
  • Safety: Ensure that at this setting, the servo is not "stalling" (making a buzzing sound) against a mechanical limit.

SERVO1_REVERSED

Default 0
Range 0 1

Servo 1 Reversal (SERVO1_REVERSED)

Description

SERVO1_REVERSED allows you to flip the direction of a motor or servo output without swapping wires.

If you move your transmitter stick right, but the drone rolls left, you can use this parameter to correct the behavior. This is safer than reversing the channel on your transmitter, as it ensures that the autopilot's internal stabilization logic also moves in the correct direction.

  • 0: Normal.
  • 1: Reversed.

Tuning & Behavior

  • Safety: Always verify your control surface directions on the ground before taking off.
  • Motors: For DShot motors, it is usually better to reverse the direction in the ESC firmware (using BLHeliSuite), but this parameter can also be used for simple reversals.

SERVO1_TRIM

PWM
Default 1500
Range 800 2200

Servo 1 Trim (SERVO1_TRIM)

Description

SERVO1_TRIM defines the "Center" position of a servo or motor.

When the autopilot is not demanding any movement (e.g., sticks are centered in Stabilize mode), it sends this PWM value to the output.

  • Standard Setting: 1500 (µs).
  • Usage: Use this to mechanically center a servo arm if it's slightly off-center, or to set the zero-thrust point for ESCs that support reverse thrust.

Tuning & Behavior

  • Calibration: Most Ground Control Stations have a "Radio Calibration" or "Servo Output" screen where you can adjust this value to level your control surfaces.
  • Safety: Do not use large trim offsets to fix a crooked mechanical linkage. It is always better to adjust the linkage physically so that the trim remains near 1500.

SERVO20_FUNCTION

Default 0
Range null

Servo output function

Note: This parameter functions identically to SERVO1_FUNCTION.

SERVO20_MAX

PWM
Default 1900
Range 800 2200

Maximum PWM

Note: This parameter functions identically to SERVO1_MAX.

SERVO20_MIN

PWM
Default 1100
Range 800 2200

Minimum PWM

Note: This parameter functions identically to SERVO1_MIN.

SERVO20_REVERSED

Default 0
Range null

Servo reverse

Note: This parameter functions identically to SERVO1_REVERSED.

SERVO20_TRIM

PWM
Default 1500
Range 800 2200

Trim PWM

Note: This parameter functions identically to SERVO1_TRIM.

SERVO21_FUNCTION

Default 0
Range null

Servo output function

Note: This parameter functions identically to SERVO1_FUNCTION.

SERVO21_MAX

PWM
Default 1900
Range 800 2200

Maximum PWM

Note: This parameter functions identically to SERVO1_MAX.

SERVO21_MIN

PWM
Default 1100
Range 800 2200

Minimum PWM

Note: This parameter functions identically to SERVO1_MIN.

SERVO21_REVERSED

Default 0
Range null

Servo reverse

Note: This parameter functions identically to SERVO1_REVERSED.

SERVO21_TRIM

PWM
Default 1500
Range 800 2200

Trim PWM

Note: This parameter functions identically to SERVO1_TRIM.

SERVO22_FUNCTION

Default 0
Range null

Servo output function

Note: This parameter functions identically to SERVO1_FUNCTION.

SERVO22_MAX

PWM
Default 1900
Range 800 2200

Maximum PWM

Note: This parameter functions identically to SERVO1_MAX.

SERVO22_MIN

PWM
Default 1100
Range 800 2200

Minimum PWM

Note: This parameter functions identically to SERVO1_MIN.

SERVO22_REVERSED

Default 0
Range null

Servo reverse

Note: This parameter functions identically to SERVO1_REVERSED.

SERVO22_TRIM

PWM
Default 1500
Range 800 2200

Trim PWM

Note: This parameter functions identically to SERVO1_TRIM.

SERVO23_FUNCTION

Default 0
Range null

Servo output function

Note: This parameter functions identically to SERVO1_FUNCTION.

SERVO23_MAX

PWM
Default 1900
Range 800 2200

Maximum PWM

Note: This parameter functions identically to SERVO1_MAX.

SERVO23_MIN

PWM
Default 1100
Range 800 2200

Minimum PWM

Note: This parameter functions identically to SERVO1_MIN.

SERVO23_REVERSED

Default 0
Range null

Servo reverse

Note: This parameter functions identically to SERVO1_REVERSED.

SERVO23_TRIM

PWM
Default 1500
Range 800 2200

Trim PWM

Note: This parameter functions identically to SERVO1_TRIM.

SERVO24_FUNCTION

Default 0
Range null

Servo output function

Note: This parameter functions identically to SERVO1_FUNCTION.

SERVO24_MAX

PWM
Default 1900
Range 800 2200

Maximum PWM

Note: This parameter functions identically to SERVO1_MAX.

SERVO24_MIN

PWM
Default 1100
Range 800 2200

Minimum PWM

Note: This parameter functions identically to SERVO1_MIN.

SERVO24_REVERSED

Default 0
Range null

Servo reverse

Note: This parameter functions identically to SERVO1_REVERSED.

SERVO24_TRIM

PWM
Default 1500
Range 800 2200

Trim PWM

Note: This parameter functions identically to SERVO1_TRIM.

SERVO25_FUNCTION

Default 0
Range null

Servo output function

Note: This parameter functions identically to SERVO1_FUNCTION.

SERVO25_MAX

PWM
Default 1900
Range 800 2200

Maximum PWM

Note: This parameter functions identically to SERVO1_MAX.

SERVO25_MIN

PWM
Default 1100
Range 800 2200

Minimum PWM

Note: This parameter functions identically to SERVO1_MIN.

SERVO25_REVERSED

Default 0
Range null

Servo reverse

Note: This parameter functions identically to SERVO1_REVERSED.

SERVO25_TRIM

PWM
Default 1500
Range 800 2200

Trim PWM

Note: This parameter functions identically to SERVO1_TRIM.

SERVO26_FUNCTION

Default 0
Range null

Servo output function

Note: This parameter functions identically to SERVO1_FUNCTION.

SERVO26_MAX

PWM
Default 1900
Range 800 2200

Maximum PWM

Note: This parameter functions identically to SERVO1_MAX.

SERVO26_MIN

PWM
Default 1100
Range 800 2200

Minimum PWM

Note: This parameter functions identically to SERVO1_MIN.

SERVO26_REVERSED

Default 0
Range null

Servo reverse

Note: This parameter functions identically to SERVO1_REVERSED.

SERVO26_TRIM

PWM
Default 1500
Range 800 2200

Trim PWM

Note: This parameter functions identically to SERVO1_TRIM.

SERVO27_FUNCTION

Default 0
Range null

Servo output function

Note: This parameter functions identically to SERVO1_FUNCTION.

SERVO27_MAX

PWM
Default 1900
Range 800 2200

Maximum PWM

Note: This parameter functions identically to SERVO1_MAX.

SERVO27_MIN

PWM
Default 1100
Range 800 2200

Minimum PWM

Note: This parameter functions identically to SERVO1_MIN.

SERVO27_REVERSED

Default 0
Range null

Servo reverse

Note: This parameter functions identically to SERVO1_REVERSED.

SERVO27_TRIM

PWM
Default 1500
Range 800 2200

Trim PWM

Note: This parameter functions identically to SERVO1_TRIM.

SERVO28_FUNCTION

Default 0
Range null

Servo output function

Note: This parameter functions identically to SERVO1_FUNCTION.

SERVO28_MAX

PWM
Default 1900
Range 800 2200

Maximum PWM

Note: This parameter functions identically to SERVO1_MAX.

SERVO28_MIN

PWM
Default 1100
Range 800 2200

Minimum PWM

Note: This parameter functions identically to SERVO1_MIN.

SERVO28_REVERSED

Default 0
Range null

Servo reverse

Note: This parameter functions identically to SERVO1_REVERSED.

SERVO28_TRIM

PWM
Default 1500
Range 800 2200

Trim PWM

Note: This parameter functions identically to SERVO1_TRIM.

SERVO29_FUNCTION

Default 0
Range null

Servo output function

Note: This parameter functions identically to SERVO1_FUNCTION.

SERVO29_MAX

PWM
Default 1900
Range 800 2200

Maximum PWM

Note: This parameter functions identically to SERVO1_MAX.

SERVO29_MIN

PWM
Default 1100
Range 800 2200

Minimum PWM

Note: This parameter functions identically to SERVO1_MIN.

SERVO29_REVERSED

Default 0
Range null

Servo reverse

Note: This parameter functions identically to SERVO1_REVERSED.

SERVO29_TRIM

PWM
Default 1500
Range 800 2200

Trim PWM

Note: This parameter functions identically to SERVO1_TRIM.

SERVO2_FUNCTION

Default 0
Range null

Servo output function

Note: This parameter functions identically to SERVO1_FUNCTION.

SERVO2_MAX

PWM
Default 1900
Range 800 2200

Maximum PWM

Note: This parameter functions identically to SERVO1_MAX.

SERVO2_MIN

PWM
Default 1100
Range 800 2200

Minimum PWM

Note: This parameter functions identically to SERVO1_MIN.

SERVO2_REVERSED

Default 0
Range null

Servo reverse

Note: This parameter functions identically to SERVO1_REVERSED.

SERVO2_TRIM

PWM
Default 1500
Range 800 2200

Trim PWM

Note: This parameter functions identically to SERVO1_TRIM.

SERVO30_FUNCTION

Default 0
Range null

Servo output function

Note: This parameter functions identically to SERVO1_FUNCTION.

SERVO30_MAX

PWM
Default 1900
Range 800 2200

Maximum PWM

Note: This parameter functions identically to SERVO1_MAX.

SERVO30_MIN

PWM
Default 1100
Range 800 2200

Minimum PWM

Note: This parameter functions identically to SERVO1_MIN.

SERVO30_REVERSED

Default 0
Range null

Servo reverse

Note: This parameter functions identically to SERVO1_REVERSED.

SERVO30_TRIM

PWM
Default 1500
Range 800 2200

Trim PWM

Note: This parameter functions identically to SERVO1_TRIM.

SERVO31_FUNCTION

Default 0
Range null

Servo output function

Note: This parameter functions identically to SERVO1_FUNCTION.

SERVO31_MAX

PWM
Default 1900
Range 800 2200

Maximum PWM

Note: This parameter functions identically to SERVO1_MAX.

SERVO31_MIN

PWM
Default 1100
Range 800 2200

Minimum PWM

Note: This parameter functions identically to SERVO1_MIN.

SERVO31_REVERSED

Default 0
Range null

Servo reverse

Note: This parameter functions identically to SERVO1_REVERSED.

SERVO31_TRIM

PWM
Default 1500
Range 800 2200

Trim PWM

Note: This parameter functions identically to SERVO1_TRIM.

SERVO32_FUNCTION

Default 0
Range null

Servo output function

Note: This parameter functions identically to SERVO1_FUNCTION.

SERVO32_MAX

PWM
Default 1900
Range 800 2200

Maximum PWM

Note: This parameter functions identically to SERVO1_MAX.

SERVO32_MIN

PWM
Default 1100
Range 800 2200

Minimum PWM

Note: This parameter functions identically to SERVO1_MIN.

SERVO32_REVERSED

Default 0
Range null

Servo reverse

Note: This parameter functions identically to SERVO1_REVERSED.

SERVO32_TRIM

PWM
Default 1500
Range 800 2200

Trim PWM

Note: This parameter functions identically to SERVO1_TRIM.

SERVO3_FUNCTION

Default 0
Range null

Servo output function

Note: This parameter functions identically to SERVO1_FUNCTION.

SERVO3_MAX

PWM
Default 1900
Range 800 2200

Maximum PWM

Note: This parameter functions identically to SERVO1_MAX.

SERVO3_MIN

PWM
Default 1100
Range 800 2200

Minimum PWM

Note: This parameter functions identically to SERVO1_MIN.

SERVO3_REVERSED

Default 0
Range null

Servo reverse

Note: This parameter functions identically to SERVO1_REVERSED.

SERVO3_TRIM

PWM
Default 1500
Range 800 2200

Trim PWM

Note: This parameter functions identically to SERVO1_TRIM.

SERVO4_FUNCTION

Default 0
Range null

Servo output function

Note: This parameter functions identically to SERVO1_FUNCTION.

SERVO4_MAX

PWM
Default 1900
Range 800 2200

Maximum PWM

Note: This parameter functions identically to SERVO1_MAX.

SERVO4_MIN

PWM
Default 1100
Range 800 2200

Minimum PWM

Note: This parameter functions identically to SERVO1_MIN.

SERVO4_REVERSED

Default 0
Range null

Servo reverse

Note: This parameter functions identically to SERVO1_REVERSED.

SERVO4_TRIM

PWM
Default 1500
Range 800 2200

Trim PWM

Note: This parameter functions identically to SERVO1_TRIM.

SERVO5_FUNCTION

Default 0
Range null

Servo output function

Note: This parameter functions identically to SERVO1_FUNCTION.

SERVO5_MAX

PWM
Default 1900
Range 800 2200

Maximum PWM

Note: This parameter functions identically to SERVO1_MAX.

SERVO5_MIN

PWM
Default 1100
Range 800 2200

Minimum PWM

Note: This parameter functions identically to SERVO1_MIN.

SERVO5_REVERSED

Default 0
Range null

Servo reverse

Note: This parameter functions identically to SERVO1_REVERSED.

SERVO5_TRIM

PWM
Default 1500
Range 800 2200

Trim PWM

Note: This parameter functions identically to SERVO1_TRIM.

SERVO6_FUNCTION

Default 0
Range null

Servo output function

Note: This parameter functions identically to SERVO1_FUNCTION.

SERVO6_MAX

PWM
Default 1900
Range 800 2200

Maximum PWM

Note: This parameter functions identically to SERVO1_MAX.

SERVO6_MIN

PWM
Default 1100
Range 800 2200

Minimum PWM

Note: This parameter functions identically to SERVO1_MIN.

SERVO6_REVERSED

Default 0
Range null

Servo reverse

Note: This parameter functions identically to SERVO1_REVERSED.

SERVO6_TRIM

PWM
Default 1500
Range 800 2200

Trim PWM

Note: This parameter functions identically to SERVO1_TRIM.

SERVO7_FUNCTION

Default 0
Range null

Servo output function

Note: This parameter functions identically to SERVO1_FUNCTION.

SERVO7_MAX

PWM
Default 1900
Range 800 2200

Maximum PWM

Note: This parameter functions identically to SERVO1_MAX.

SERVO7_MIN

PWM
Default 1100
Range 800 2200

Minimum PWM

Note: This parameter functions identically to SERVO1_MIN.

SERVO7_REVERSED

Default 0
Range null

Servo reverse

Note: This parameter functions identically to SERVO1_REVERSED.

SERVO7_TRIM

PWM
Default 1500
Range 800 2200

Trim PWM

Note: This parameter functions identically to SERVO1_TRIM.

SERVO8_FUNCTION

Default 0
Range null

Servo output function

Note: This parameter functions identically to SERVO1_FUNCTION.

SERVO8_MAX

PWM
Default 1900
Range 800 2200

Maximum PWM

Note: This parameter functions identically to SERVO1_MAX.

SERVO8_MIN

PWM
Default 1100
Range 800 2200

Minimum PWM

Note: This parameter functions identically to SERVO1_MIN.

SERVO8_REVERSED

Default 0
Range null

Servo reverse

Note: This parameter functions identically to SERVO1_REVERSED.

SERVO8_TRIM

PWM
Default 1500
Range 800 2200

Trim PWM

Note: This parameter functions identically to SERVO1_TRIM.

SERVO9_FUNCTION

Default 0
Range null

Servo output function

Note: This parameter functions identically to SERVO1_FUNCTION.

SERVO9_MAX

PWM
Default 1900
Range 800 2200

Maximum PWM

Note: This parameter functions identically to SERVO1_MAX.

SERVO9_MIN

PWM
Default 1100
Range 800 2200

Minimum PWM

Note: This parameter functions identically to SERVO1_MIN.

SERVO9_REVERSED

Default 0
Range null

Servo reverse

Note: This parameter functions identically to SERVO1_REVERSED.

SERVO9_TRIM

PWM
Default 1500
Range 800 2200

Trim PWM

Note: This parameter functions identically to SERVO1_TRIM.

SERVO_32_ENABLE

Default 0
Range 0 1

Enable 32 Servo Channels (SERVO_32_ENABLE)

Description

SERVO_32_ENABLE unlocks the full potential of high-end flight controllers (like the Cube Orange or Durandal) that can support more than the standard 16 outputs.

  • 0: 16 Channels (Standard).
  • 1: 32 Channels.

Tuning & Behavior

  • Default Value: 0.
  • Recommendation: Leave at 0 unless you have a massive rover or plane with more than 16 physical servos.
  • Reboot Required: Yes.

SERVO_AUTO_TRIM

Default 0
Range 0 1

Servo Auto Trim (SERVO_AUTO_TRIM)

Description

SERVO_AUTO_TRIM simplifies the process of trimming a plane.

Instead of manually adjusting linkages or radio trims, you can fly the plane level, and the autopilot will slowly learn the new center positions for the servos.

Tuning & Behavior

  • 0: Disabled.
  • 1: Enabled.
  • Note: Usually activated via an RC switch option (RCx_OPTION = 155) rather than setting this parameter permanently.

SERVO_BLH_3DMASK

null
Default 0
Range null

BLHeli bitmask of 3D channels

Legacy Note: SERVO_* parameters have been renamed to OUT_* in newer firmware versions. This parameter functions identically to OUT_BLH_3DMASK.

SERVO_BLH_AUTO

Default 0
Range 0 1

BLHeli pass-thru auto-enable (SERVO_BLH_AUTO)

Description

SERVO_BLH_AUTO is a "smart" version of SERVO_BLH_MASK. Instead of you having to manually calculate the bitmask for your motors, ArduPilot looks at your SERVOx_FUNCTION settings.

If a pin is set to Motor 1, Motor 2, etc., ArduPilot will automatically enable DShot and BLHeli pass-thru on those pins.

The Engineer's View

If set to 1, the initialization logic in AP_BLHeli automatically adds all outputs with functions 33 through 40 (standard motors) and 82 through 85 (extra motors) to the digital output mask.

Tuning & Behavior

  • Default Value: 0
  • Recommendation: Set to 1 for most modern drone builds. it simplifies configuration and ensures that if you move a motor to a different pin, the digital protocol follows the function mapping automatically.

SERVO_BLH_BDMASK

Default 0
Range 0 4294967295

BLHeli Bidirectional Mask (SERVO_BLH_BDMASK)

Description

SERVO_BLH_BDMASK enables high-speed RPM feedback over the existing motor signal wires.

This is required for the "Harmonic Notch Filter" to track motor speed perfectly. Unlike standard telemetry, this updates thousands of times per second.

Tuning & Behavior

  • Default Value: 0.
  • Recommendation: Enable for all motors if your ESCs support BLHeli_32 or Bluejay.

SERVO_BLH_DEBUG

Default 0
Range 0 1

BLHeli Debug Enable (SERVO_BLH_DEBUG)

Description

SERVO_BLH_DEBUG floods the log with ESC traffic.

Use this only if your ESCs are not connecting or telemetry is failing. It records the raw DShot or serial bytes exchanged between the flight controller and the ESCs.

Tuning & Behavior

  • 0: Disabled.
  • 1: Enabled.
  • Warning: Can consume significant CPU and SD card bandwidth. Disable after troubleshooting.

SERVO_BLH_MASK

Default 0
Range 0 4294967295

BLHeli Channel Bitmask (SERVO_BLH_MASK)

Description

SERVO_BLH_MASK tells ArduPilot which physical output pins are connected to digital BLHeli_S, BLHeli_32, or AM32 ESCs.

  • PWM (Default): If an output is NOT in this mask (and SERVO_BLH_AUTO is 0), it sends a standard analog PWM signal.
  • DShot: If an output IS in this mask, it sends a high-speed digital DShot signal (as defined by MOT_PWM_TYPE).

This mask is also required for BLHeli Pass-Thru, which allows you to configure your ESCs (like changing motor direction or updating firmware) directly through the flight controller using the BLHeliSuite software.

The Mathematics

The parameter is a 32-bit integer bitmask.
$$ \text{Active Channels} = \sum 2^i \cdot b\_i $$

  • Bit 0 (1): Output 1
  • Bit 1 (2): Output 2
  • Bit 3 (8): Output 4
  • Example: To enable DShot on Outputs 1, 2, 3, and 4: $1+2+4+8 = \mathbf{15}$.

The Engineer's View

Used in AP_BLHeli::init().
Setting this bitmask triggers the underlying HAL to reconfigure the timer pins for that channel into DShot mode.
Note: On many boards, outputs are grouped into "Timer Groups." Enabling DShot on one pin in a group may force all other pins in that group to also use DShot or be disabled.

Tuning & Behavior

  • Default Value: 0
  • Recommendation:
    • Manual Config: Use the bitmask to select exactly which motors are digital.
    • Automatic Config: For standard quads, it is often easier to set SERVO_BLH_AUTO = 1, which automatically enables this mask for all outputs assigned as "Motors" (SERVOx_FUNCTION 33-40).
  • Reboot Required: You MUST reboot after changing this mask for the hardware pins to reconfigure.

SERVO_BLH_OTYPE

null
Default 0
Range null

BLHeli output type override

Legacy Note: SERVO_* parameters have been renamed to OUT_* in newer firmware versions. This parameter functions identically to OUT_BLH_OTYPE.

SERVO_BLH_POLES

Default 14
Range 2 100

BLHeli Motor Poles (SERVO_BLH_POLES)

Description

SERVO_BLH_POLES ensures the RPM displayed on your OSD is correct.

ESCs report "Electrical RPM" (how fast the field spins). To get "Mechanical RPM" (how fast the bell spins), you must divide by half the number of magnetic poles.

Tuning & Behavior

  • Default Value: 14 (Standard for 22xx/23xx motors).
  • Procedure: Count the magnets on the bell of your motor. Enter that number here.

SERVO_BLH_PORT

Default 0
Range 0 10

BLHeli Serial Port (SERVO_BLH_PORT)

Description

SERVO_BLH_PORT is for legacy BLHeli setups.

Modern BLHeli_32/S ESCs use the DShot signal wire for passthrough. However, if you are using an older serial-based ESC programmer connected to a UART, this parameter selects which serial port it is plugged into.

Tuning & Behavior

  • Default Value: 0 (Disabled/USB).

SERVO_BLH_RVMASK

null
Default 0
Range null

BLHeli bitmask of reversed channels

Legacy Note: SERVO_* parameters have been renamed to OUT_* in newer firmware versions. This parameter functions identically to OUT_BLH_RVMASK.

SERVO_BLH_TEST

Default 0
Range 0 1

BLHeli Motor Test (SERVO_BLH_TEST)

Description

SERVO_BLH_TEST runs the DShot beacon.

Setting this to 1 sends a command to all ESCs to beep. This confirms that the DShot communication link is working, even if the motors aren't spinning.

Tuning & Behavior

  • 0: Disabled.
  • 1: Test (Beep).

SERVO_BLH_TMOUT

s
Default 0
Range 0 600

BLHeli Passthrough Timeout (SERVO_BLH_TMOUT)

Description

SERVO_BLH_TMOUT is a safety feature for the BLHeliSuite bridge.

When you connect to BLHeliSuite, the autopilot enters a special "Passthrough" mode where it stops sending motor commands and lets the PC talk to the ESCs. This parameter ensures the autopilot exits this mode automatically if you disconnect or crash the PC app, preventing a locked-up flight controller.

Tuning & Behavior

  • Default Value: 0 (Disabled/No timeout).

SERVO_BLH_TRATE

Hz
Default 10
Range 0 100

BLHeli Telemetry Rate (SERVO_BLH_TRATE)

Description

SERVO_BLH_TRATE controls how often the ESC reports Voltage, Current, RPM, and Temperature.

Tuning & Behavior

  • Default Value: 10 Hz.
  • Recommendation: Set to 10 Hz for general monitoring. Higher rates are not needed unless you are doing detailed analysis, and they can clog the serial port.

SERVO_DSHOT_ESC

Default 0
Range 0 4

DShot ESC Type (SERVO_DSHOT_ESC)

Description

SERVO_DSHOT_ESC tells the autopilot exactly what kind of DShot-capable ESCs you have connected.

While standard DShot works without this parameter, enabling the specific type allows for advanced features like EDT (Extended DShot Telemetry), which sends temperature, voltage, and current data back to the flight controller over the single signal wire.

  • 0: None. Standard DShot.
  • 1: BLHeli32 / AM32. Supports standard telemetry commands.
  • 2: BLHeli_S.
  • 3: BLHeli32 EDT. Enables Extended DShot Telemetry (if supported by firmware).

Tuning & Behavior

  • Default Value: 0.
  • Recommendation: Set to 1 for most modern BLHeli_32/AM32 ESCs.
  • Reboot Required: Yes.

SERVO_DSHOT_RATE

Default 0
Range 0 4

DShot Update Rate (SERVO_DSHOT_RATE)

Description

SERVO_DSHOT_RATE selects the speed of the digital motor protocol.

  • 0: Disabled (Use PWM/OneShot).
  • 1: DShot150 (150kHz). Slowest, most robust against noise.
  • 2: DShot300 (300kHz). Standard.
  • 3: DShot600 (600kHz). High performance.
  • 4: DShot1200 (1200kHz). Experimental, requires very short signal wires.

Tuning & Behavior

  • Default Value: 0.
  • Recommendation: Use DShot600 (Value 3) for most modern quads.

SERVO_FN

Default 70
Range 70 74

SERVO_FN: Torqeedo Servo Output Function

Description

Torqeedo Servo Output Function.

Values

Value Meaning
70 Throttle
73 Throttle Left
74 Throttle Right
  • Default: 70 (Throttle)

Description

This parameter is part of the Torqeedo interface (for electric boat motors).

  • Function: It tells the Torqeedo backend which virtual "servo channel" output from the flight controller should be used to command the motor's power.
  • Normal Usage: In a single-motor boat, this is set to 70 (Throttle).
  • Skid Steering: In a dual-motor boat, one motor's backend might be set to 73 (Throttle Left) and the other to 74 (Throttle Right).

SERVO_FTW_MASK

Default 0
Range 0 65535

FETtec OneWire Motor Mask (SERVO_FTW_MASK)

Description

SERVO_FTW_MASK enables the high-speed digital FETtec OneWire protocol on specific output channels.

OneWire is a specialized ESC protocol (similar to DShot but using a different electrical standard) that allows for bidirectional communication (RPM, voltage, current) over a single signal wire. By setting a bit in this mask, you tell ArduPilot to use the OneWire driver for that specific motor.

  • Bit 0 (1): Motor 1
  • Bit 1 (2): Motor 2
  • ...

Tuning & Behavior

  • Default Value: 0 (Disabled).
  • Reboot Required: Yes.
  • Requirement: You must also set the SERIALx_PROTOCOL to 43 (FETtec OneWire) on the UART connected to the ESCs.

SERVO_FTW_POLES

Default 14
Range 2 48

FETtec OneWire Motor Poles (SERVO_FTW_POLES)

Description

SERVO_FTW_POLES ensures your RPM readings are accurate.

ESCs measure "Electrical RPM." To convert this to real "Mechanical RPM," ArduPilot needs to know how many magnets (poles) are inside the motor.

Tuning & Behavior

  • Default Value: 14.
  • Common Values: 14 for standard 2207/2306 drone motors. 28+ for larger industrial motors.

SERVO_FTW_RVMASK

Default 0
Range 0 65535

FETtec OneWire Reverse Mask (SERVO_FTW_RVMASK)

Description

SERVO_FTW_RVMASK allows you to reverse your motor directions in software.

Instead of swapping two wires on your motor, you can set a bit in this mask to tell the FETtec ESC to spin the motor in the opposite direction.

SERVO_GPIO_MASK

Default 0
Range 0 4294967295

Servo GPIO Mask (SERVO_GPIO_MASK)

Description

SERVO_GPIO_MASK converts PWM servo headers into digital switches.

By setting a bit in this mask, the corresponding servo output pin stops sending PWM pulses and becomes a standard GPIO pin. You can then use it with RELAY_PIN or Lua scripts to toggle lights, cameras, or other digital devices.

Tuning & Behavior

  • Default Value: 0.
  • Bit 0: Servo 1.
  • Bit 1: Servo 2.
  • Reboot Required: Yes.

SERVO_PITCH_TYPE

Default 0
Range 0 1

Pitch Servo Actuator Type (SERVO_PITCH_TYPE)

Description

SERVO_PITCH_TYPE defines the control hardware used for an Antenna Tracker's vertical axis.

  • 0: Position Servo. Standard proportional RC servo. The autopilot commands a specific angle.
  • 1: On/Off Actuator. A simple motor or relay. The autopilot "pulses" the motor based on ONOFF_PITCH_RATE to reach the target angle.

Tuning & Behavior

  • Default: 0.
  • Usage: Only change to 1 if you are using a heavy-duty antenna tracker with industrial motor drivers that do not support standard PWM servo signals.

SERVO_RATE

Hz
Default 50
Range 50 400

Servo Output Rate (SERVO_RATE)

Description

SERVO_RATE sets the "Frame Rate" for your servos.

  • 50Hz (Default): Standard for analog servos and fixed-wing aircraft.
  • 400Hz: High speed for digital servos and multicopter ESCs using PWM.

Warning: Sending 400Hz to an analog servo will cause it to overheat and burn out.

Tuning & Behavior

  • Default Value: 50 Hz.
  • Recommendation:
    • Plane: 50 Hz.
    • Copter: 400 Hz (if using PWM).
    • DShot: Ignored (DShot runs at its own protocol speed).

SERVO_RC_FS_MSK

Default 0
Range 0 65535

Servo RC Failsafe Mask (SERVO_RC_FS_MSK)

Description

SERVO_RC_FS_MSK controls what happens to your "Passthrough" servos when you lose radio signal.

If you have a camera gimbal or a pan/tilt mechanism controlled directly by a knob on your transmitter (RCx_OPTION = PassThru), what should it do if the radio link dies?

  • Bit Unset (0): The servo holds its last known position (Freeze).
  • Bit Set (1): The servo moves to its Trim/Center position.

The Mathematics

$$ \text{Output} = \begin{cases} \text{Trim} & \text{if } \text{Bit Set} \land \text{Failsafe} \ \text{Last Known} & \text{otherwise} \end{cases} $$

Tuning & Behavior

  • Default Value: 0 (Hold Last).
  • Recommendation:
    • Gimbals: Leave at 0 (Hold) to keep the camera pointing at the target.
    • Landing Gear: Leave at 0 (Hold) so the gear doesn't accidentally retract/deploy.
    • Safety Mechanisms: Set bit to 1 if you want a mechanism to return to a safe "Neutral" state on signal loss.

SERVO_ROB_POSMAX

Default 4095
Range 0 4095

Robotis Servo Position Max (SERVO_ROB_POSMAX)

Description

SERVO_ROB_POSMAX sets the upper travel limit for Robotis servos.

Tuning & Behavior

  • Default Value: 4095.
  • Recommendation: Reduce this if the servo hits a hard stop before reaching the full 360-degree (or configured) range.

SERVO_ROB_POSMIN

Default 0
Range 0 4095

Robotis Servo Position Min (SERVO_ROB_POSMIN)

Description

SERVO_ROB_POSMIN sets the lower travel limit for Robotis Dynamixel smart servos.

Unlike standard PWM servos (which use 1000-2000µs), Robotis servos use a digital position value, typically 0 to 4095 for a 12-bit resolution.

Tuning & Behavior

  • Default Value: 0.
  • Recommendation: Set to the mechanical limit of your actuator to prevent binding.

SERVO_SBUS_RATE

Hz
Default 50
Range 50 333

SBUS Output Rate (SERVO_SBUS_RATE)

Description

SERVO_SBUS_RATE controls the speed of the SBUS output stream (if enabled via BRD_SBUS_OUT).

Standard SBUS is 50Hz (analog servo compatible). High-speed SBUS is often 200Hz or 333Hz.

Tuning & Behavior

  • Default Value: 50 Hz.
  • Recommendation: Ensure your servos can handle high frame rates before increasing this.

SERVO_VOLZ_MASK

Default 0
Range 0 4294967295

Volz Servo Mask (SERVO_VOLZ_MASK)

Description

SERVO_VOLZ_MASK allows you to control high-end industrial actuators from Volz.

These servos use a proprietary RS-485 serial protocol instead of PWM. By setting a bit in this mask, you tell ArduPilot to send position commands for that channel over the configured serial port (SERIALx_PROTOCOL = 14 or similar) addressed to the specific actuator ID.

The Engineer's View

Defined in AP_Volz_Protocol.cpp.
The Volz driver runs a separate thread to handle the 115200 baud serial traffic.

  • Bit 0 (1): Channel 1
  • Bit 1 (2): Channel 2
  • ...

The driver calculates the required CRC and sends the "Extended Position" command.

Tuning & Behavior

  • Default Value: 0 (Disabled).
  • Recommendation: Set bits corresponding to the servo channels you have wired to the RS-485 bus.
  • Prerequisite: You must configure a Serial Port for the Volz protocol.

SERVO_VOLZ_RANGE

deg
Default 200
Range 40 200

Volz Servo Travel Range (SERVO_VOLZ_RANGE)

Description

SERVO_VOLZ_RANGE is a scaling parameter for high-end Volz digital servos.

These servos use a digital protocol but can be commanded via a virtual PWM signal from the autopilot. This parameter defines how many degrees of physical rotation correspond to the standard 1000-2000µs PWM range.

  • 200 (Default): Maps $\pm$ 100 degrees of rotation.
  • 40: Maps $\pm$ 20 degrees. This provides much higher "Resolution" (finer movements) if your control surface doesn't need full travel.

Tuning & Behavior

  • Default: 200.
  • Significance: If you decrease this value, the servo will move more slowly and precisely for the same amount of stick movement.
  • Requirement: Only relevant if you are using the Volz protocol (SERIALx_PROTOCOL = 20) and have Volz actuators installed.

SERVO_YAW_TYPE

Default 0
Range 0 1

Yaw Servo Actuator Type (SERVO_YAW_TYPE)

Description

SERVO_YAW_TYPE defines the control hardware used for an Antenna Tracker's horizontal (pan) axis.