This project is a one-button time-lapse camera timer initially developed for a Canon 400D Digital SLR camera but it should work with other cameras. You can buy a remote switch for the Canon 400D, but that costs at least $35 and at the end of the day it is just a switch on the end of a cable. This project adds a nifty timer to the cable in the form of a PIC 12F675 (or PIC 12F629) microcontroller for about the same price (or less if you build it from scavenged parts as I did). You do, however, need to purchase a programmer. I used a Microchip PICKit 2 programmer (which I bought from ModTronix) and the C compiler I used was the free version of MikroC.

Once programmed, it can be used to take photographs at intervals from 1 to 65535 seconds (approximately 18 hours). It features a single button to control all functions, audible feedback via a piezo speaker and visual feedback via a bi-colour LED. Using one button to control the unit takes a bit of getting used to, but it is surprisingly easy to use once you get the hang of it.

Get the source code!

The latest source code can be downloaded from the SourceForge TIC! Camera Timer project

How it works

The output from pin 2 of the PIC microcontroller (see circuit diagram) switches a FET that connects the tip of the 2.5mm audio plug to ground in order to activate the camera's remote shutter function. The output from pin 7 switches another FET that connects the ring of the audio plug to ground in order to activate the camera's shutter half-press function. The PIC has been programmed to "half-press" the shutter button for 100 ms, then "full-press" the shutter button to take the shot, and then wait until the interval you have set expires before repeating the process. In this way, the "half-press" will wake the camera before taking each shot. Note that 100 ms is not long enough to perform the auto-focus function, so you need to have the lens set to "Manual Focus" (i.e. switched to the MF mark, not the AF mark). If you have the lens in AF mode then no photographs will be taken.

The circuit uses an astable multivibrator comprising Q1 and Q2 (see circuit diagram) and associated components to generate the audible feedback tones via a piezo speaker (for example, Jaycar AB3440). Make sure you use a piezo transducer or speaker, not a buzzer. A buzzer makes a single tone when you apply a voltage; a transducer requires an alternating voltage and makes any tone you like. The piezo speaker takes its signal from the collectors of Q1 and Q2 so that it is activated with an alternating voltage. The PIC supplies power to the multivibrator via pin 3 to turn it on and off, and also sets the tone (high or low) by using pin 5 to either switch in a resistor into the RC network controlling the pitch or by "floating" pin 5 (tri-state mode) so that it is effectively not in the circuit.

Visual feedback consists of D1/D2, which is really a single package containing a red and a green LED. The unit powers up in "set" mode, indicated by the LED glowing red. You then select the time-lapse interval (in seconds) by pressing the button. The first press emits a low beep, indicating zero, then subsequent presses emit high beeps, which you count until you reach the next digit you want. Digits are entered as you would write them on paper, so 120 seconds would be entered as 1, then 2 then 0. To enter each digit all you have to do is wait for one second or more after you reach the desired number. You will then receive a high/low beep (which is the closest I could get it to sing "OK"). If you overshoot the digit, just keep pressing until you hear the low beep indicating zero and start over. Once the time-lapse interval has been entered, you switch into "shoot" mode by holding the button down for one second or more until you hear a high beep. The LED will extinguish but briefly flash green every time a shot is taken. Shooting begins as soon as you release the button. This has a useful side effect in that if you want to start your shooting at a particular time then just keep holding the button down whilst looking at your watch. It will give you "timing" beeps at one-second intervals so you can release the button to start shooting at a particular instant.

The last time-lapse interval that you set is remembered across power ups in the onboard EEPROM. To use the previously set interval, just press and hold the button after power up and "shoot" mode starts with that interval. To suspend shooting, tap the button for less than one second. The LED will glow red to indicate "set" mode. You can resume shooting using the existing interval by holding the button down for more than one second.

As the unit is not normally beeping or making an LED glow, it uses very little current so the batteries should last quite a long time.

Figure 1. Prototype showing external battery pack (3 x 1.5V AA cells). The next version will have onboard power.
Figure 2. Inside the prototype. Two scavenged 2SK810 power MOSFETs are used, but any lower power N-channel FET would be ok. Note the 6-pin header to allow the program code to be updated without removing the chip.

Subpages (2): Downloads How To Use