Introduction: Time-Lapse Photography
Hacking an old digital camera to take time-lapse picture sequences is fun and easy. All you need is some basic electronics skills and a little bit of patience.
I am using an Arduino (Atmel168 development board) as the time-lapse controller, but you can use any micro controller.
This was originally made for Day 5 of Thing A Day.
Step 1: Go Get Stuff.
You will need:
1 - digital camera
1 - small 2-pin socket
1 - 5V relay
1 - Arduino (or other micro controller)
(Note that some of the links on this page are affiliate links. This does not change the cost of the item for you. I reinvest whatever proceeds I receive into making new projects. If you would like any suggestions for alternative suppliers, please let me know.)
Step 2: Open the Case.
Carefully open the case. Be sure not to break or unplug anything.
Step 3: Press My Buttons
Locate the button you press to take a picture. Notice the little metal tabs to each side of it. Begin connecting these tabs with a short piece of wire until you take a picture.
Step 4: Socket to Me.
Once you determine which two pins will take a picture when connected, connect a wire to each pin. Then connect these two wires to your socket. It is important to leave enough wire so that your socket can reach to the edge of the case.
Make sure when placing your socket that you have enough room for both the case to close and to rip a hole in the side of the case to poke the socket through.
Step 5: I'm Sticking With You
Carefully glue the socket in place. Make sure not to glue down anything that should not be. Also, don't get glue in the socket.
Step 6: Close the Case.
Yes, close the case. If you have done everything right it should close and you should still be able to get to your socket to plug wires into them.
Step 7: Relay
Take your relay and solder wires to each pin. The color doesn't matter too much.
Step 8: Plug and Play
Now is the time to plug it all in.
Plug the relay coil pins to Pin 7 of the Arduino and ground on the Arduino. The relay coil pins are the two pins that aren't towards the ends of the tube.
The two pins towards the end of the long tube go into the socket pins in the camera. It does not matter which wire goes in which socket pin.
Step 9: Programming
Now is time to program the Arduino and test your setup.
Follows is my code:
/* Time-Lapse Camera Controller
- ------------------
*
- Hits a camera shutter at a set interval
- for time-lapse photography. The rate of the
- delay can be manipulated for unique effects.
*
- Created 5 February 2008
- by Randy Sarafan
- http://www.randysarafan.com
*
*/
int camPin = 7; // sets the camera shutter pin
int stupidvar = 30000; // sets the delay between pictures
void setup()
{
pinMode(camPin, OUTPUT); // defines pin as an output
}
void loop()
{
digitalWrite(camPin, HIGH); // presses the button
delay(5000); // waits
digitalWrite(camPin, LOW); // release the button
delay(stupidvar); // delay between pictures
// stupidvar = stupidvar + 1000 // increments delay by one second for unique effect.
}
Step 10: Try It Out
Take a couple of pictures in sequence and see that it works.

Did you find this useful, fun, or entertaining?
Follow @madeineuphoria to see my latest projects.
87 Comments
12 years ago on Step 9
So how's it work? Turn the Arduino on, Turn the camera on and it just starts snapping pictures like mad?
Reply 12 years ago on Step 9
Pretty much, the Arduino just keeps running at whatever interval you set. Simply connect them together and turn them both on.
Reply 10 years ago on Step 9
So, do you need the 5V relay?
11 years ago on Introduction
I'm sure someone else has said this, but I don't want to go through 86 comments:
Program your arduino to send out a signal to your camera every x minutes through its Ir remote
there is a tutorial on adafruit on how to find the signal
http://www.ladyada.net/learn/sensors/ir.html#intervalometer
14 years ago on Introduction
If you didn't want to modify your camera, couldn't you put a servo into +5V, Ground, and one of the PWM-supporting digital pins and then have the servo push the button? I am hoping to pick up an Arduino Duemilanove at the Maker Faire this upcoming weekend and want to try this without sacrificing an innocent camera :-)
Reply 11 years ago on Introduction
I know it has been almost 3 years, but I have indeed done that. No need to reverse the voltage on the servo, just send it back to its starting position with the right pulse.
I tested everything with a nano and then just put the program in an Attiny85 with a potentiometer to set the interval
Reply 14 years ago on Introduction
You should be able to trigger it with a servo how you described. However, you would have to reverse the motor polarity for it to let go of the button and the response to do this will be relatively slow. Stop by the Instructables booth!
Reply 14 years ago on Introduction
Thanks! Will do! One more question: is it critical to "press" the button for 5 seconds, like your program shows? Could it be for less time, say 500ms? Thanks again!
Reply 14 years ago on Introduction
500 ms might be a bit short. I forget what the exact timing is on my camera, but you can get an idea of what will work for your camera by pressing down the trigger and counting until it takes a picture.
If it's a Canon camera, check this out:
http://chdk.wikia.com/wiki/CHDK_in_Brief
11 years ago on Introduction
It would be much easier and cheaper to use a transistor. That way you can take more pictures faster and don't have to worry about a dangerous voltage transient.
Reply 11 years ago on Introduction
He wanted to isolate the 'duino 5V from the camera 3V. A simple FET would do the job, or a optoisolator for isolation. Or just a diode across the relay coil.
Second thing I'd do is put in a focusing switch which clicked on the auto focus a couple seconds before clicking the shutter.
Third thing is use really fine wire going into the camera, like wire wrap wire.
Fourth thing is turn on the camera power with another timer. You can use a P channel FET for that, witching the camera 3V.
Reply 11 years ago on Introduction
Using a NPN transistor would isolate it from the camera's 3 volt line. I just think that using a relay or optoisolator is a bit overkill.
11 years ago on Step 9
Wouldn't the relay just spit dangerous voltage back into the arduino's pins when it releases the switch? I think you might want to put a diode between the relay's pin or just use a transistor with it.
12 years ago on Introduction
I followed your instructable but I don't think it's stable. For some reason when I set the picture delay more than 30000 it's acts sketchy. Even if it does work eventually will not stay sync. Can you tell me whats going on here?
Reply 12 years ago on Introduction
What do you mean by acts sketchy or won't stay sync?
There should be no problem with setting it over 30 seconds, as far as I know.
If the delay is too long for some reason, you could try making a for loop that delays the chip for 1000 milliseconds at a time and then have that repeat for as many seconds as you need it to wait between pictures.
Reply 12 years ago on Introduction
Maybe there's something wrong with my arduino. At first when I set to 75 seconds it worked for maybe 10 or more minutes then for some reason would end up eventually triggering every 10 seconds.
Reply 11 years ago on Introduction
I'm new to arduino (3 days...), and i realise you posted a year ago, but i understand intergers (as in "int stupidvar") can only go up to 34000 ish. After that use the long command so "long stupider = 60000;" will delay 1 minute. long can go up to 2.5 million or billion or some other much larger number.
12 years ago on Step 10
Nice ible but I would like to be able to leave a time lapse camera out in the open, maybe for 2 month or more, and only check on in on it like once every 3 days. Anybody know of plans that have an all-wether enclosure, and a power wake up feature? I have an arduino uno, and I'm comfortable with the programming, but why is the relay necessary? Can't the Arduino close the circuit on it's own? It's not like it's driving a motor. It's just sending a fairly long pulse, no?
Reply 12 years ago on Step 10
The easiest thing to do would be to find a clear waterproof case and stick it in and not fuss with custom building something.
The Arduino I'm using is operating at 5V and the camera at 3V. I didn't want to fuss around with joining the circuits.
12 years ago on Step 2
I see breakage. :-)