Autopilot Output Functions

All autopilot servo/motor outputs may be mapped to any output function supported by ArduPilot. This page describes how to configure these output channels and what each of the available functions that can be assigned to an output are.

ArduPilot supports up to 32 outputs. These may be via DroneCAN ESCs or directly from autopilot outputs, or a mixture of both.

Note

see the left sidebar menu for major output categories to navigate to desired functions on this page quickly.

The SERVOn_FUNCTION parameters

In the advanced parameter view of your GCS you will find that each SERVO output channel has a SERVOn_FUNCTION parameter. For example, SERVO5_FUNCTION controls the output function of channel 5, SERVO6_FUNCTION controls the output function of channel 6 and so on.

Not all the functions are available in each vehicle. Defaults are set to 0 when firmware for a vehicle type is first loaded. Choosing a frame configuration in Mission Planner during initial setup will set the outputs to the basic typical functions for that frame type. For example, fixed wing plane will set the first four outputs, SERVO1-SERVO4 to Aileron, Elevator, Throttle, and Rudder functions, respectively.

All of these functions may be used on multiple channels. So if you want 3 elevator channels for some reason you can set SERVOn_FUNCTION to 19 on 3 of your output channels.

Configuration

Configuration can be done using the SERVO tab of Mission Planner or by directly setting the SERVOx_FUNCTION parameter for an output.

../_images/rcoutput-mapping.png

For example, if you wished to re-order a Copter quad-x frame’s motors from the kitty-corner default to a more logical clockwise method, make these changes:

  • SERVO1_FUNCTION leave as 33 (aka “motor1”, front-right)

  • SERVO2_FUNCTION change from 34 (aka “motor2”, back-left) to 36 (motor #4, back-right)

  • SERVO3_FUNCTION change from 35 (aka “motor3”, front-left) to 34 (motor #2, back-left)

  • SERVO4_FUNCTION change from 36 (aka “motor4”, back-right) to 35 (motor #3, front-left)

GENERIC FUNCTIONS

Function

ID

Available in:

GPIO

-1

Plane, Copter, Rover, Sub

Disabled

0

Plane, Copter, Rover, Sub

RCPassThru

1

Plane, Copter, Rover, Sub

RCPassThru1

51

Plane, Copter, Rover, Sub

RCPassThru2

52

Plane, Copter, Rover, Sub

RCPassThru3

53

Plane, Copter, Rover, Sub

RCPassThru4

54

Plane, Copter, Rover, Sub

RCPassThru5

55

Plane, Copter, Rover, Sub

RCPassThru6

56

Plane, Copter, Rover, Sub

RCPassThru7

57

Plane, Copter, Rover, Sub

RCPassThru8

58

Plane, Copter, Rover, Sub

RCPassThru9

59

Plane, Copter, Rover, Sub

RCPassThru10

60

Plane, Copter, Rover, Sub

RCPassThru11

61

Plane, Copter, Rover, Sub

RCPassThru12

62

Plane, Copter, Rover, Sub

RCPassThru13

63

Plane, Copter, Rover, Sub

RCPassThru14

64

Plane, Copter, Rover, Sub

RCPassThru15

65

Plane, Copter, Rover, Sub

RCPassThru16

66

Plane, Copter, Rover, Sub

Disabled

For normal operation, the Disabled output function sets the output value of the channel to 0, ie no PWM pulses being sent. The exception to this is when a MAVLink override of the channel or a mission servo set is used. So in some ways “disabled” could be called “mission-controlled”.

When you perform an auto mission you can ask for a servo to be set to a value as part of that mission. In that case you should set the SERVOn_FUNCTION for that channel to Disabled, so that the value doesn’t get changed by another output function immediately after the mission sets the value.

RCPassThru

Setting a channel to RCPassThru means it will output the value that is coming into the board from the corresponding input channel. For example, if SERVO5_FUNCTION is 1 (meaning RCPassThru) then channel 5 output will always be equal to channel 5 input.

Note

The servo output will exactly match the RC input source’s PWM value. RCx_TRIM/_MIN/_MAX and SERVOx_TRIM/_MIN/_MAX has no affect in this mode.

RCPassThru1 to RCPassThru16

This operates the same as RCPassThru explained above. However, instead of the SERVOx output being controlled by the RCx input, any RC input can be assigned to control this output. For example RCPassThru 1 (51) would assign RC Channel 1 input to control the output. So, for output 1, assigning 51 to the SERVO1_FUNCTION is identical to assigning the value of 1 passing RC Channel 1 to the output.

Note

normally passthru outputs will hold their last valid value during an RC failsafe. By setting the SERVO_RC_FS_MSK, selected passthru outputs can be set as if their input channel went to neutral. This is helpful for outputs controlling servo gimbals, or other manually controlled functions.

COPTER / QUADPLANE FUNCTIONS

Function

ID

Available in:

Motor 1

33

Copter, Sub, QuadPlane, HeliQuad, Traditional & Dual Heli

Motor 2

34

Copter, Sub, QuadPlane, HeliQuad, Traditional & Dual Heli

Motor 3

35

Copter, Sub, QuadPlane, HeliQuad, Traditional & Dual Heli

Motor 4

36

Copter, Sub, QuadPlane, HeliQuad, Traditional & Dual Heli

Motor 5

37

Copter, Sub, QuadPlane, Dual Helicopter

Motor 6

38

Copter, Sub, QuadPlane, Dual Helicopter

Motor 7

39

Copter, Sub, QuadPlane

Motor 8

40

Copter, Sub, QuadPlane

Motor 9

82

Copter, Sub

Motor 10

83

Copter, Sub

Motor 11

84

Copter, Sub

Motor 12

85

Copter, Sub

Motor Tilt

41

QuadPlane

Throttle Left

73

Plane, Copter, Rover

Throttle Right

74

Plane, Copter, Rover

Tilt Motor Left

75

Copter, QuadPlane

Tilt Motor Right

76

Copter, QuadPlane

Tilt Motor Rear

45

QuadPlane

Tilt Motor Rear Left

46

QuadPlane

Tilt Motor Rear Right

47

QuadPlane

Boost Engine Throttle

81

Copter, QuadPlane

Motor Enable Switch

30

Copter, QuadPlane

Parachute Release

27

Copter

Landing Gear

29

Copter, Plane

Winch

88

Copter, Sub

Rotor Head Speed

31

Traditional & Dual Helicopter, HeliQuad

Tail Rotor Speed

32

Traditional Helicopter

Motors 1 - 12

These are the Copter and QuadPlane VTOL motor outputs. For Multi-Copters, see Motor Order Diagrams. Or see Traditional Helicopter, or SingleCopter and CoaxCopter, or HeliQuads (Variable Pitch Multicopters).

Winch

This output controls a winch for object delivery in Copter.

ANTENNA TRACKER FUNCTIONS

Function

ID

Available in:

Tracker Yaw

71

Antenna Tracker

Tracker Pitch

72

Antenna Tracker

Tracker Yaw/Pitch

These outputs control the pitch and yaw servos for an Antenna Tracker.

CAMERA/GIMBAL FUNCTIONS

Function

ID

Available in:

Mount Yaw

6

Plane, Copter, Rover, Sub

Mount Pitch

7

Plane, Copter, Rover, Sub

Mount Roll

8

Plane, Copter, Rover, Sub

Mount Deploy/Retract

9

Plane, Copter, Rover, Sub

Camera Trigger

10

Plane, Copter, Rover

Mount2 Yaw

12

Plane, Copter, Rover

Mount2 Pitch

13

Plane, Copter, Rover

Mount2 Roll

14

Plane, Copter, Rover

Mount2 Deploy/Retract

15

Plane, Copter, Rover

Camera ISO

90

Plane, Copter, Rover, Sub

Camera Aperture

91

Plane, Copter, Rover, Sub

Camera Focus

92

Plane, Copter, Rover, Sub

Camera Shutter Speed

93

Plane, Copter, Rover, Sub

Mount Yaw/Pitch/Roll/Deploy

These control the output channels for controlling a servo gimbal. Please see the camera gimbal configuration documentation for details.

The Mount2 options are the same, but control a second camera gimbal.

Camera_trigger

The Camera_trigger output function is used to trigger a camera with a servo. See the camera gimbal documentation for details.

Camera ISO/Aperture/Focus/Shutter Speed

These outputs are used to remotely control the above values for BMMC (Blackmagic Micro Cinema Camera) compatible devices.

NEOPIXEL LED STRINGS

Neopixel LEDs/Strings can be controlled using Function IDs 120-123, thereby supporting up to four strings independently controlled. These may be used for ArduPilot notifications and warnings (See Notification Device Configuration ) or controlled via LUA scripting (See Lua Scripts. This is available in all vehicles.

ProfiLEDs

ProfiLEDs can be controlled using Function IDs 129-132, thereby supporting up to three strings independently controlled with a common clock. These may be used for ArduPilot notifications and warnings (See Notification Device Configuration ) or controlled via LUA scripting (See Lua Scripts. This is available in all vehicles. See :ref:

MISCELLANEOUS FUNCTIONS

Function

ID

Available in:

Gripper

28

Plane, Copter, Rover, Sub

EggDrop

11

Deprecated

Sprayer Pump

22

Copter

Sprayer Mixer

23

Copter

Output SERVOn_MIN PWM value

134

Plane, Copter, Rover, Sub

Output SERVOn_TRIM PWM value

135

Plane, Copter, Rover, Sub

Output SERVOn_MAX PWM value

136

Plane, Copter, Rover, Sub

Lights1

181

Sub

Lights2

182

Sub

Video Switch

183

Sub

Gripper

This is an output for controlling a servo or electromagnetic gripper for holding items for delivery applications. See Grippers (for delivery) for more information.

GENERAL PURPOSE LUA SCRIPTING OUTPUTS

Lua Scripts can also directly control autopilot outputs. Using Function IDs 94-109 provides the ability to configure up to 16 of these outputs, if the autopilot is capable. This is available in all vehicles.

Actuators

PWM based actuators which can be incrementally controlled by Sub buttons or GCS commands

Function

ID

Available in:

Actuator 1 thru

Actuator 6

184- 189

Sub