Arduino for Photographers: Building a Universal Intervalometer

Photographers Building a Universal Intervalometer (1)

Practicing the art of time-lapse photography without an intervalometer is doable, but not particularly efficient. And while any decent photo equipment store will be happy to sell you one, you can go the DIY way and build your own intervalometer based on the excellent Arduino platform.

Theoretically, building an Arduino-based intervalometer is as easy as connecting an infrared (IR) LED to the GND and 13 pins and then feeding the Arduino a simple sketch with controls the IR LED. But by adding a few more components and tweaking the sketch, you can build something a little more advanced.

Photographers Building a Universal Intervalometer (1)

First of all, here is a list of parts you need for this project (besides Arduino, of course):

  • Infrared LED (940nm)
  • Green or red LED
  • 100 Ohm resistor
  • Breadboard
  • Handful of jumper M/M wires

You need the last two items only if you want to build a prototype first. Before you start, you should connect Arduino to your machine and install the Arduino IDE. The Arduino Getting Started guide can help you with this. Once Arduino is up and running, grab the latest version of the Multi Camera IR Control library, unzip the downloaded archive, and move the resulting folder into the ~/sketchbook/libraries directory (if the directory doesn’t exist, create it manually). The great thing about the Multi Camera IR Control library is that it supports a wide range of camera models of many popular brands, including Nikon, Canon, Pentax, Olympus, and Sony. So you can use your DIY intervalometer with virtually any DSLR with an IR receiver.

If you are using a breadboard for prototyping, here is the wiring diagram for your convenience:

(Both the schematics and the breadboard wiring are created using the excellent Fritzing software). As you can see, this is all pretty straightforward stuff. LED2 acts as a status indicator: it blinks just before the IR LED is activated, which signals to you that the camera is about to fire.

All you need to do now is to write a sketch that controls the LEDs. Here is what the sketch for controlling Nikon DSLRs looks like (tested with Nikon D5000 and Nikon D90):

#include <multiCameraIrControl.h>

int onValue = 10; // specify how long the status LED is turned on
int delayValue = 5000; // specify interval between shots in milliseconds
Nikon D90(9); // specifies the camera model

void setup(){
  pinMode(13, OUTPUT); // initialize pin 13 as an output.

void loop(){
  digitalWrite(13, HIGH); // set the LED on
  delay(onValue); // wait
  D90.shutterNow(); // trigger the shutter
  digitalWrite(13, LOW); // set the LED off
  delay(delayValue-onValue); // wait

Photographers Building a Universal Intervalometer Schematic (1)

Of course, you can easily modify it for use with your particular camera model, and the sample code bundled with the Multi Camera IR Control contains a few examples that can help you to get started.


Read more: Arduino for Photographers: Building a Universal Intervalometer

Leave a Comment

Your email address will not be published. Required fields are marked *