Interval Timer Shooting

[ISO 500 | 27mm | f/2.8 | 1/1000sec]

This photo was taken, using a multi-copter, but arriving at photos like this is harder than you might think. It takes a lot practice and luck to frame aerial shots. The vibrations of the copter require to set an unusually high shutter speed, which dictates to some degree, f-stop and ISO (sensitivity). Not exactly knowing what the camera is seeing and focusing on, when it’s up there in the air, means taking lots and lots of shots and hoping for the best.

Most of the action cameras, like the GoPro, Mobius, Xiaomi Yi, etc, have interval shooting features, allowing to set a frequency, at which photos should be taken. Taking a new photo every 2 seconds or so, seems to be a reasonable setting.
DSLR as well as more expensive mirrorless cameras are usually equipped with a similar feature. However, putting a heavy DSLR camera on a multi-copter is not very practical and given the risk of crashing the copter, also economically irresponsible. Above all, a camera that is meant to fly on a multi copter, needs to be optimized for weight, image quality, and price, making it unlikely to find interval timer shooting in its feature set.

Intervalometer – an attachment or facility on a camera that operates the shutter regularly at set intervals over a period. On a movie camera the device is used for time-lapse photography.

Most if not all DSLR and mirrorless cameras have some kind of remote or tethered shutter release support. There are simple one button triggers and more sophisticated, programmable devices (Intervalometer),  allowing for an enhanced levels of exposure control. But neither provides a practical solution for a camera flying hundreds of feet away, high up in the sky.

Now, I wouldn’t be writing about this, if we hadn’t come up with a very practical and also inexpensive solution. We looked at a simple, passive, one-button trigger, which is basically just a switch, closing a connection, every time the shutter needs to be releases. Moreover, we measured the voltage level at the switch at about 2.5V.

With this information at hand, it was almost obvious to arrive at this solution. We used a cheap and small Arduino compatible board, Adafruit’s Trinket, to be powered either directly with a 3S LIPO battery, or through a 12V BEC (Battery Eliminator Circuit), if used on a bigger copter, like the Icarus.

The trinket outputs 5V, meaning to play nice with the camera, a voltage-divider needed to be deployed. Once this simple solution was breadboarded, the software was quickly written and tested.

 Interval Timer Shooting:
 Triggers a tethered camera shutter.
 Configurable parameter are:
 - Waiting time in seconds, time before the 1st short
 - Counter Number of shots (-1 for infinite, i.e., until SD-Card is full
 - Interval (number of seconds between shots)

The program sets Pin2 high, to trigger a shot.
 Even if -1 (infinite) has been configured,
 the Interval Timer will stop shoting after 65,536 exposures.

#define LED_PIN 1
 #define TRIGGER_PIN 2

#define waiting 30 // initially, wait for 30 seconds
 #define interval 2 // trigger the shutter every 2 seconds
 #define K 1000
 #define T_PUSH 100

int counter = -1; // shoot until card is full or camera is powered down

void setup() {
 pinMode(LED_PIN, OUTPUT);
 digitalWrite(LED_PIN, HIGH);
 delay(K * waiting);
 digitalWrite(LED_PIN, LOW);

// the loop function runs over and over again forever
 void loop() {
 while (0 > counter--) {
 digitalWrite(LED_PIN, HIGH);
 digitalWrite(TRIGGER_PIN, HIGH); // trigger shutter release
 delay(T_PUSH); // wait for a 1/10 of second
 digitalWrite(TRIGGER_PIN, LOW); // open connection again
 digitalWrite(LED_PIN, LOW);
 delay(K * interval); // pause, until it's time for the next shot.
 delay(K); // .. all done


… going from breadboard to production, meant just going downstairs into the garage, where Tom quickly heated up the soldering iron.
Here’s the final product, small, light, effective. A very flexible solution, allowing for interval shooting from a multi-copter…


… and here, it’s connected to a 3S LiPO