Time-lapse Photography w/ DIY Intervalometer
Monday, October 6, 2008 at 1:14PM ![]()
![]()
In Make Magazine issue 15 a project caught my eye (based on this Instructable) that functions as a camera shutter timer, or intervalometer, allowing your DSLR to do time-lapse photography. This is possible because most DSLR cameras have a remote accessory port which allows the camera's shutter and focus functions to be performed remotely. The way this works is very simple; the remote accessory port is simply a 3 contact jack similar to the one you plug your headphones into on your MP3 player or stereo. The difference here is that instead of outputting sound, the port is just a set of contacts which can be used to remotely trigger the shutter or focus. When the shutter contact is shorted to the ground contact the shutter is activated. Time-lapse photography has been something I wanted to play with for some time and this project looked like a great way to get my feet wet with my new Canon Rebel XSi.
The article itself, however, admitted that the design had limitations; it didn't reliably trigger the camera's shutter and its timing range was limited (30 seconds to 2 minutes). Looking at the original schematic I realized that I had experience making similar timing circuits and decided to make a more versatile intervalometer.
The primary upgrades I planned for this improved version were the following:
- Shutter trigger reliability
- Camera interface isolation
- Timing range options
- Battery or AC adapter power options
- Camera connection flexibility
In order to achieve better shutter triggering reliability I used a more sophisticated timer chip, the 556, which is essentially two of the 555 timers used in the original circuit in one package. I then chose appropriate resistor and capacitor values such that I increased the time the shutter is triggered to around 1.5 seconds, thereby eliminating any reliability issues.
The original design used a transistor to short the camera's shutter pin to ground. I decided to completely isolate the camera from the timing circuit by using a reed relay which requires little current draw from the circuit. This eliminates the possibility of stray voltage entering the camera via the timing circuit and damaging the camera. Another benefit of eliminating the transistor is that I can use the two pushbuttons to manually focus and trigger the shutter while the timer is running, which was not possible in the original design.
To add timing range options I inserted a DPDT toggle switch which allows the user to choose which RC timing network controls the time delay of the shutter triggering. By switching in a much larger timing capacitor I greatly increased the timing interval that can be set. The Low Range allows for delays from 17 seconds to 5 minutes, and the High Range allows for delays from 7 minutes to over 60 minutes.
The final two alterations were the most minor, but still very useful. To allow the circuit to run off of an AC adapter instead of just battery power I added a coaxial power jack. I also configured the power wiring such that if an adapter is plugged into the intervalometer it cannot pass voltage to, and possibly damage, the battery. Instead of hard soldering a cable with the appropriate connection on the end to the intervalometer, I soldered all the camera connections to a 1/8" stereo jack. This allows me to use a Radioshack stereo patch cable via a 1/8" to 3/32" adapter to connect to my camera's accessory port.
After I built my circuit and put it in an enclosure I had to setup my camera properly to take good time-lapse photos. This article has a lot of good tips regarding what settings your camera should have and how you should assemble your finished video. I set my intervalometer to take a picture every 2.5 minutes and let it run.
Joe
I recently received an inquiry from an individual who wanted to use this intervalometer design to do high dynamic range (HDR) time-lapse photography. This entails setting your camera for auto exposure bracketing (AEB). AEB takes 3 photos in succession, one underexposed, one overexposed, and one of the proper exposure. When combined the resulting image displays all of the shadow detail of the overexposed image along with all of the highlight detail of the underexposed image.
In order to determine the usefulness of my intervalometer for HDR time-lapse I tested my camera by setting it for AEB, continuous drive, and manual focus. I then turned on the intervalometer and after the requisite delay it snapped 3 photos just as I had hoped. This is a pure coincidence that the shutter hold delay is long enough for my camera to take 3 photos. If it hadn't I would have had to adjust the 1M ohm resistor and 0.1uF capacitor values that connect the 9VDC supply to pins 12 & 13 and ground until I achieved the desired delay.
I am planning on building an arduino controlled intervalometer with a LCD readout in the near future to allow for the maximum amount of flexibility in all aspects of timing.
Joe
Check out my finished Arduino intervalometer.
Joe |
9 Comments | 
Reader Comments (9)
AMAZING..I have been playing with this for about a month with out much luck as its my first experience with the 555.
Thanks so much.
Would you mind sharing the part you used for the reed relay? I am having trouble finding a 9v reed relay.
Jonny,
You don't necessarily need a 9V relay as long as you test it and it works it should be fine since we're not dealing with a lot of current in this circuit. I found some cheap relays at All Electronics.
http://www.allelectronics.com/index.php?page=search&search_query=reed+relay&x=0&y=0
Hope this helps.
Great site you have here!
I also really dig playing about with time lapse photo.
I have a cheaper different way of doing it.
Using any IP based camera (in this case an AXIS) I use a simple script to pull an image every minute from crontab.
Once you have the images simply put them together with mencoder.
Obviously this is not the same quality as pics with an SLR! :)
#!/bin/bash
if [ -d /home/foo/time ]
then
/usr/bin/wget http://192.168.1.201/axis-cgi/jpg/image.cgi?resolution=640x480 -O "/home/f00/time/`date +%m%d%y-%T`.jpg"
else
mkdir /home/foo/time;
/usr/bin/wget http://192.168.1.201/axis-cgi/jpg/image.cgi?resolution=640x480 -O "/home/foo/time/`date +%m%d%y-%T`.jpg"
exit
fi
--------------------------
Crontab entry
* * * * * /home/foo/bin/time-fetch.sh >> /dev/null 2>&1
-----------------------------------------
mencoder mf://*jpg -mf fps=7 -ovc lavc -lavcopts vcodec=mpeg4 -o some.avi
Change the FPS to vary the rate of processing.
This is very good, Ttanks a bunch for blogging this! I would like to build it, but I also have trouble finding 9V Reed relays. I can move down to 5V ones or up to 12V. I honestly have no idea which one would work. What would you recommend?
Jasja,
I would go with the 5V relay. It should work fine. I wouldn't use a 12V relay as the circuit won't have enough voltage to pull in the relay coil.
Thanks, I got all components, and I am breadboarding the circuit now.
Would a SPST relay work. I am new to this stuff so correct me if i am wrong. I do not see why you need a DPDT and those are much harder to find
Steve,
I showed a DPST relay on the schematic because that is what I used, however, you are correct a SPST relay would work just fine.