How-to guide: Pixhawk auto camera trigger (without CHDK)


How-to guide: Pixhawk auto camera trigger (without CHDK)

1. Introduction:


If, like me, you are not using a canon camera, you then do not have access to the CHDK canon firmware which provides advanced automation scripts to automate your camera trigger on your UAV.

There exist on the market other great alternatives for all camera brands (some of them are functionally richer and simpler to use than CHDK). As an example in this guide, I will use the "Stratosnapper V2". This is a little smart thing that allows you to trigger any camera brand (Sony, Canon, Nikon, etc) by many ways : infrared, cable, LANC, etc.

If you'd like more details on this little marvel read here.

I personally prefer the "IR trigger mode" the best because it does not require an extra cable connected to your camera, which is a must when you are using a brushless gimbal. It supposes of course your camera supports an IR trigger function; I thus assume the use of a Sony NEX5 in this guide, widely used for aerial photography among UAV'iers.

Then there is another obstacle for many of us : how does Pixhawk work to trigger such a triggering device in auto mission ? There is a lot of posts on about how to do this with APM, but not much yet on the recent Pixhawk. Therefore this guide will try to document it.

I will end the guide with a practical auto photo taking mission example (making sure it really works!).


2. Parts and hardware connections:


Let's start by a general hardware scheme showing all the required parts and general cabling:

The parts are:


2.1 Pixhawk board


One or more of the 6 AUX ports can be used on Pixhawk (AUX1=RC9, AUX2=RC10, AUX3=RC11, etc.):

In this guide I chose port 2 which corresponds to AUX2 as is illustrated in this detailed view :

By default, only the three first AUX ports can be used (1 to 3, or RC9 to RC11).

To trigger the IR device, we need a servo output (PWM signal), not a relay signal. We will see later what parameters configuration is required in mission planner screens (we can for example also configure 6 AUX ports as PWM outputs ; more details later - let's finish the hw description first).


2.2 IR trigger device


Here an illustration of "stratosnapper" with its inputs/outputs:

You may notice two servo leads are connected on the input side of stratosnapper.

This is one of the most important point in this guide : a servo lead must be used to power the IR device from a BEC (5V in this case); the power provided by the second servo lead coming from Pixhawk AUX2 port DOES NOT provide enough power to make it work !!!

Either you have powered the Pixhawk ouputs rail with a BEC and you are fine, either you must provide a separate BEC power to the IR device. This is also true for any other type of device you will connect on Pixhawk : DOT NOT expect pixhawk to power these devices (and certainly not servos as we already knew in the context of the previous generation flight controller, APM2.x).

Stratosnapper works with a servo lead on one of its 4 servo inputs (yes, you may control stratosnapper from 4 different inputs, isn't that great ?). The servo inputs may be various things : push-button, stick, two way switch, three way switch, etc (all configured by a GUI configuration utility from your PC via usb).

And it ouputs on a IR cable to trigger a IR led that must be placed in front of your camera IR sensor:

2.3 IR Led positionning and camera gimbal


The IR led works perfectly, even under a bright sun (verified on the field); it works even quite faraway from the sensor (no problem 5 inches away of the Sony NEX5 sensor) and works fine in any orientation versus the sensor.

Shown here is a picture of X8 Mr Grey (formerly known as Mr Red when was used with APM; my wife had only grey flower pots I could snatch to cover the new Pixhawk & electronics). The Sony NEX5 is held in a 2-axis stabilized brushless gimbal (NEX5 not shown...used to take this picture).


Here below a zoomed view of the IR LED positionning and gimbal:

Gardeners & farmers are notoriously UAV friendly; after getting a flower pot to protect your electronics, snatch also some green gardening wire which is very handy to shape your IR LED cable, so it is correctly positionned in front of the camera's IR sensor.


3. Software and parameters configuration:


3.1 Mission planner:


We need to configure Pixhawk to output a servo command on AUX2 (RC10) to trigger stratosnapper which will in turn trigger the IR LED which will in turn trigger the camera. And this needs to happen automatically during an auto mission.


How do we do this ? By using the CAM_TRIGG_DIST function or by using a programmed DO_DIGICAM_CONTROL command. In this guide we will only document the CAM_TRIGG_DIST function.


The CAM_TRIGG_DIST function will command your UAV to take picture everytime it has moved a certain distance (in meters). This is very useful to take pictures at precise distance intervals during geomapping missions or photogrammetry missions.

To configure CAM_TRIGG_DIST, go in mission planner, click on config/tuning to open the full parameters list. In this list you will find three parameters to configure:


-CAM_TRIGG_DIST : defines in meters the distance between two camera triggers. For an auto mission, leave value at zero. It will be changed automatically during the mission by a DO_SET command, to avoid taking pictures before and after the useful parts of your auto mission.


-CAM_TRIG_TYPE : defines if you want the Pixhawk AUX output used to control a relay or to ouput a PWM signal. In the case of an IR device we need a PWM servo signal, so we set it to a value of zero.


-CH7_OPT: internal firmware parameter. In this case, it does NOT correspond to the CH7 of your receiver. You must set it to a value of 9 to indicate the firmware that it must do a camera trigger to the AUX ouput (which will be defined in the camera gimbal setup screen).


Next, we need to define to which AUX ouput we want this servo/PWM signal produced. To do this, open "Initial setup", then "Optional Hardware", then "Camera Gimbal":

In the shutter drop down list, select which AUX port you'd like to use (RC10 = AUX2 in my example).


Then do not forget to adapt the "pushed" and "not pushed" PWM values that will trigger your IR device (stratosnapper in my example). Tune also the duration to the required button pressure duration to trigger your camera (for a Sony NEX5, I set it to 10 = equivalent of 1 second button pressure).


3.2 IR device configuration (stratosnapper V2):


Every IR device comes with its own configuration method. Stratosnapper comes with an ultra easy GUI interface to define which PWM values will trigger what port. It is explained in this video:



4. Concrete application : test auto mission, applying all of the above


Finally lets' apply all of the above in a true auto mission on the field,

I configured this test auto mission as an example:


To create this auto mission, we can use a very convenient "SURVEY" function of mission planner. You start by drawing a polygon of the zone you'd like to photograph.

Then you right click on the map to select "Survey(Grid)":


It will then show you a configuration screen that will allow you to define which camera make/model you are using and other rather self explanatory parameters (like how much overlap you want between pictures, lens size, etc). The tool will then automatically define for you which is the best CAM_TRIGG_DIST parameter! :


After clicking on "Accept", you will get automatically a list of waypoints starting with a "DO_SET_CAM_TRIGG_DIST" command that will set the distance in meters between two camera triggers during your mission. It ends with another "DO_SET_CAM_TRIGG_DIST" to set the parameter back to zero (stops the shooting).


DO NOT forget to add at least a waypoint (take -off) before and another waypoint (land or RTL) after the last waypoint.


After this is done, after you have passed through your checklist, after you have got all of the authorizations, etc, -> you are then ready to arm, flick the auto switch and off you go!


The above test auto mission lead to this result below. It is a stiched panorama of about 15 pictures; shown here as a reduced thumbnail image (because the full size image is too large at about 107 Mbytes). Click on image for better resolution:


I hope this will help you in your own auto-photo-shoot missions!




Views: 28732

Comment by Chris Cloutier on March 9, 2014 at 10:10pm
Maybe I'm missing something, but why not just use a simple ir trigger instead of adding the complexity of the stratosnapper. If you're already setting up distance trigger via pwm it should still work. Am I right? Great write up btw.

Comment by Hugues on March 9, 2014 at 11:36pm

@Chris, stratosnapper is an example of a possible IR trigger. It is extremely simple and does not add complexity but rather flexibility. It can be used for any camera brand or make and with other types of trigger, not just IR. It also gives you an intervallometer for example. It can drive multiple cameras as it has four channels to trigger: let's say you have a IR camera and another one to shoot a field (required in agriculture for ex).

This is just a IR device I'm using so I used it too in this tutorial ; you can certainly use another one.

Comment by Chris Cloutier on March 10, 2014 at 5:31am
Ah, for some reason I thought it was a driver driving external (other branded) devices. I should have done research on the product. Thank you for the clarification.
Comment by Jethro Hazelhurst on March 10, 2014 at 1:14pm

I can not wait to pour over this in detail! Thank you for your high quality posts Hugues.

Comment by Adam Erickson on March 11, 2014 at 12:56am

Since APM/Mission Planner offer quite a few shutter triggering methods, you can also use something like this for simplicity Adding an intervalometer function to the existing software would be a good way to go, rather than adding more software.

Comment by Hugues on March 11, 2014 at 11:05am

@Adam, indeed this is from the same family of products as stratosnapper.

One of the requirements in photogrammetry is to take pictures at regular distance between two pictures. An intervallometer can do this but only in very theoritical conditions where the drone flies at a constant speed. But in practice, you have varying speed all the time, so an intervallometer results in pictures not taken at regular distance between them. A Pixhawk control of the trigger based on its GPS to compute precisely the distance between two pictures is more precise; therefore excluding an intervallometer as a method of choice.

Comment by Luke Moulton on March 11, 2014 at 9:20pm

Very generous of you to put so much time and effort into this post @Hugues. I recently purchased a Canon SX280 only to find CHDK is not available for it yet (my fault for not checking of course), so thanks!

Comment by Hugues on March 12, 2014 at 8:44am

Thx Luke, you're welcome.

Comment by Paul on March 13, 2014 at 5:56am

Nice work ! Adding to my bookmarks. :-)

Comment by RatFeet on March 13, 2014 at 1:25pm
Much appreciated Hugues.


You need to be a member of DIY Drones to add comments!

Join DIY Drones


Season Two of the Trust Time Trial (T3) Contest 
A list of all T3 contests is here. The current round, the Vertical Horizontal one, is here

© 2019   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service