Camera Shutter Configuration

ArduPilot allows you to configure a particular port (servo or relay) as the camera trigger, which will then be activated when camera commands are specified in missions.

This article explains what settings you need to configure for both servos and relays. For a typical relay based trigger, see this DIY article using a Pixhawk as an example autopilot: Camera Trigger Setup for Pixhawk.


The servo or relay port signal must be converted into a format (infrared, cable or whatever) understood by your particular camera. The configuration settings will depend on the hardware that is used to perform this conversion. Some useful hardware configurations and settings are linked from the section Setting values for different cameras.

Shutter configuration with Pixhawk or IOMCU Equipped Autopilots


on autopilots not using an IOMCU (most that do, label outputs as MAIN/AUX), ANY output can be used for a relay or servo. See GPIOs for how to designate an output as a GPIO for relay use.

Pixhawk has 6 AUX Ports (AUX1-AUX6, referred to as SERVO9-SERVO14 in Mission Planner) that can be configured as servos, relays, or digital inputs or outputs. The image and configuration below is for the Pixhawk with SERVO10 (labeled RC10/AUX2 on this autopilot) connected to camera control hardware and configured as either a servo or relay.


Pixhawk Detail View highlighting AUXPorts


You can monitor and log exactly when the camera was triggered. For more information see the Enhanced camera trigger logging section below.

The actual output used for the shutter is set and configured in the SETUP/Optional Hardware/Camera Gimbal screen:


Mission Planner: Camera Gimbal Configuration Screen

  • The Shutter drop-down list is used to set the connected output for camera trigger. Here we have selected SERVO10, which corresponds to AUX2 on the Pixhawk.

  • The Duration setting specifies how long the servo/relay will be held in the Pushed state when the shutter is activated, in tenths of a second. Above the value is 10, so the pushed state is held for one second. Not Pushed when the shutter is not active.

  • For Servos only (settings ignored for relay outputs):

    • The Shutter Pushed and Not Pushed settings are the PWM signal values that will be sent when the servo is in those states.

    • The Servo Limits setting specifies the range of PWM signal values within which the servo will not bind.


Mission Planners screen is not up-to-date in that the request to “Please set the Ch7 Option to Camera Trigger” is out of date, and the “transistor” selection in the Shutter drop-down list does nothing.

  • To set which RC Channel will control the manual shutter release, configure its RCx_OPTION in the CONFIG/Full Parameter List or CONFIG/User Params to “Camera Trigger”.

Enhanced camera trigger logging

ArduPilot logs TRIG messages when it triggers the camera. You can additionally set up ArduPilot to log CAM messages when the camera has actually fired, by connecting a digital input pin on the autopilot to the camera’s hot shoe (consider using Seagulls SYNC2 Shoe Horn Adapter). This more accurately logs the exact time that pictures are recorded.

You will need to configure one of the AUX pins as a digital GPIO output/input, and connect it to the camera flash hotshoe (a universal camera hot shoe is required). The pin should be held for at least 2 milliseconds for reliable trigger detection.

The main steps are (example for Camera1 instance):

  1. Open Mission Planner and then click on CONFIG/TUNING/Full Parameters List

  2. Set at least two of the output pins as digital GPIO output/inputs as described in GPIOs.

  3. Set CAM1_FEEDBAK_PIN to the pin number connected to the hotshoe.

  4. Set CAM1_FEEDBAK_POL to indicate whether the feedback pin (hotshoe voltage) goes high or low when the picture is taken.

Setting values for different cameras

The actual values needed for servo/relay settings depends on what hardware is used to send the shutter signal to the camera. The following topics describe the hardware setup and configuration settings for a number of specific cameras/camera types:

If these aren’t suitable for your hardware configuration, we recommend you check your hardware manual for information about servo/relay inputs that are accepted.


The CHDK Camera Control Tutorial is not a good example of integrating with the camera shutter, because it does not use the standard shutter configuration explained in this article. This is however a good example of how you can access other features of a Canon camera using CHDK (for example, the zoom).