Sunday, 1 September 2013

Intervalometer for Canon 450D

This is a project to create an intervalometer for a Canon 450D (aka Digital Rebel XSi) camera using Arduino. An intervalometer triggers a camera to take a photograph every time a certain time interval has elapsed, and is therefor a useful tool for creating time-lapse videos using a DSLR.

The Canon 450D uses a 2.5mm stereo connection for off-camera control of automatic focus and the shutter (as well as infra-red, although this project only uses the 2.5mm connection). The thee rings of the 2.5mm jack are as follows:

sleeve (base)          ground
ring focus
tip shutter

The focus and shutter connections have a positive voltage in relation to ground in the normal state. They can be triggered by connecting them to ground. The focus is equivalent to half-pressing the shutter button on the camera, the shutter is equivalent to fully depressing the shutter button.

While it would be possible to directly connect these connections to Arduino pins I prefer to keep the Camera and Arduino electrically isolated - this allows for experimental Arduino code to be run without any risk of damaging the camera's on board circuitry. This is achieved by using a relay to make the connections between ground and both focus and shutter.

I have used Arduino pins 11 and 12 for the shutter and focus respectively. The first code I used to test the device was from Scott Kirkwood (CanonSlrIntervalometer) which works fine, but causes some unusual results on starting the device as pin 13 is also used for the status indicator LED by the Arduino. I have made the code I am using available on GitHub (Canon Intervalometer) and will update it as this project develops.

This first attempt is quite limited, and requires the Arduino to be reprogrammed when the interval time needs changing - but the code works and triggers the camera as expected. I have packaged the device in an enclosure, with just the USB connector of the Arduino (for power and/or reprogramming) and a  stereo 2.5mm panel mounted connector exposed.

Parts List
Arduino Uno (Rev 3)
2x Relay
2.5mm stereo connector (panel mount)
Connecting wires

Total Cost
Around £20 if you shop around and already have connecting wires and tool.

Update: A modified version of this project, the Arduino Intervalometer and Camera Trap appears in my book Arduino for Biologists.