Introduction: Time-Lapse Photography

Picture of 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.

Picture of Go Get Stuff.

You will need:

1 - digital camera
1 - small 2-pin socket
1 - 5V relay
1 - Arduino (or other micro controller)

Step 2: Open the Case.

Picture of Open the Case.

Carefully open the case. Be sure not to break or unplug anything.

Step 3: Press My Buttons

Picture of 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.

Picture of 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

Picture of 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.

Picture of 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

Picture of Relay

Take your relay and solder wires to each pin. The color doesn't matter too much.

Step 8: Plug and Play

Picture of 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

Picture of 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.

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

Picture of Try It Out

Take a couple of pictures in sequence and see that it works.


DaniDiaz made it! (author)2014-03-29


I have made something similar with 3 wires from camera, negative, focus and shoot. Test code is quite similar but with two phases, first to focus and second to shoot. I would like to build an aerial photography balloon to take timelapse secuences, so I'll replace Arduino Mega for Arduino Nano.



Spanish: La idea es hacer construir un pequeño conjunto para fotografía aérea, de forma que pueda hacer secuencias de timelapse desde un globo. Por ahora he realizado el primer paso consistente en modificar la cámara para poder disparar desde un Arduino.

Ryutso (author)2010-11-26

So how's it work? Turn the Arduino on, Turn the camera on and it just starts snapping pictures like mad?

randofo (author)Ryutso2010-11-27

Pretty much, the Arduino just keeps running at whatever interval you set. Simply connect them together and turn them both on.

Ryutso (author)randofo2012-08-12

So, do you need the 5V relay?

Michael_Bell (author)2012-03-21

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

Radioactive_Legos (author)2009-05-24

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 :-)

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

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!

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!

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:

Robot Lover (author)2011-12-12

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.

jimvandamme (author)Robot Lover2011-12-13

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.

Robot Lover (author)jimvandamme2011-12-13

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.

spystealth1 (author)2011-12-06

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.

purpulhaze (author)2010-10-13

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?

randofo (author)purpulhaze2010-10-13

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.

purpulhaze (author)randofo2010-10-14

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.

dwosullivan (author)purpulhaze2011-11-04

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.

shakespeare1212 (author)2011-04-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?

randofo (author)shakespeare12122011-04-11

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.

shakespeare1212 (author)2011-04-10

I see breakage. :-)

tinstructable (author)2010-07-21

instead of using an arduino, couldn't you use a 555 timer?

randofo (author)tinstructable2010-07-21


ChickenGrylls (author)2010-07-09

I made this Instructable and it's totally awesome. I too (like someone else in the comments) used this for Kite Aerial Photography. I want to make the rig lighter though and get rid of the Arduino board and it's powerpack. Could I use a 555 timer chip and leach power off the camera? I know this is plausible. I just have no idea how to begin!

randofo (author)ChickenGrylls2010-07-10

They do this in an old volume of Make magazine.

Single-Use Digicam for Kite Aerial Photography by Limor Fried in DIY: Imaging. A simple, lightweight timer circuit triggers a shot every minute. MAKE 02 - Page 130.

Rmal (author)2010-05-13

source for the 5v relay?

randofo (author)Rmal2010-05-13

Radioshack or

p13m4n (author)2010-02-10

This is very wasteful for what it is - why not just use a 555 timer?

randofo (author)p13m4n2010-02-10

Why is it wasteful?

smb (author)2009-12-20
Nice Thing A Day. I didn't see this tutorial and inadvertently rediscovered the technique when hacking around with $10 keychain cameras from drug stores.

So, if you don't mind me cross-posting: For folks who see this who are hesitant to break open their fancy cameras, you can do pretty much the same procedure with an off-the-shelf keychain camera by following along with my Instructable here: Hacking a keychain digital camera for arduino control

That said, I opted for transistors and not relays - in part because I was less worried about messing up the camera if I didn't get the levels right. ;)


Now that I've seen this, you've given me the courage to find a really nice camera cheaply and see if I can't crack it open to do the same thing with a relay. (I probably wouldn't have had the guts to try it if I hadn't seen you do it here. :P) Thanks! :)

Dandeman321 (author)2009-05-19

What is the relay for? Is it to create a large enough voltage for the camera's switch to be tripped to make the camera take a picture?

randofo (author)Dandeman3212009-05-19

The relay is so you can trigger the camera's switch using a micro controller circuit that is electrically isolated from the camera's circuit. Basically, it allows you to use one circuit to control another without their separate power supplies ever meeting.

Dandeman321 (author)randofo2009-05-20

Yeah I understand that, I was just wondering what the relay was needed for? Doesn't the microcontroller put out a 5 volt high? Isn't that enough for it to trigger the camera button?

andrew101 (author)Dandeman3212009-08-15

see that isnt really the issue. the camera button is pressed by closing the curcuitbetween those 2 points. the way it does so will vary from camera to camera. and you would risk damaging the camera to apply more voltage to it in some cases. if you really cant find a relay, it would be possible with an NPN transistor i added a picture

Dandeman321 (author)andrew1012009-08-16

Thanks! I'll have to check it out. I may be getting a broken camera soon. May try this.

andrew101 (author)andrew1012009-08-15

you would need a multimeter to test wich way the voltage is trying to travel. and this would work similar to a relay. when a voltage is applied it allows current to go from the collecter to the emitter. note, you need to add a resistor between the base and the 1/0 pin, otherwise you risk burning out the pnp transistor.

randofo (author)Dandeman3212009-05-20

The camera is operating on 2 AA batteries at 3V. I didn't want to try sending a 5V signal into what is probably a 3V circuit. It's just easier to keep them separated.

Dandeman321 (author)randofo2009-05-20

Ahh Ok Ok. Makes sense. Do you need the relay? could you do this without it?

ReCreate (author)Dandeman3212009-06-24

Well, The relay is like the ardurino's "capture" button...So it is necessary...

ReCreate (author)2009-07-08

Why Isn't this featured?

ReCreate (author)2009-06-24

Wow, this i great, I don't see Why it is not features, I understand everything, Even the Code, For once :P

kholdsworth27 (author)2009-05-25

did the camera have any problems auto focusing? good work on all fronts

randofo (author)kholdsworth272009-05-25

No, but I never shot anything close/small enough where that would really become an issue.

halfblinddado (author)2009-05-01

This is great I made something similar and used it as a kite camera (Kap)

viniciuspedrozo (author)2008-05-01

You can sale to me??

randofo (author)viniciuspedrozo2008-05-01

I can't sail anywhere. I don't have a boat.

bluenightweasel (author)randofo2008-05-05

If you can obtain a boat, i'd be happy to sell you a sail. PM Me to finalize the sail sale =D

Derin (author)bluenightweasel2009-03-23

How is he going to sail to you to do the sail sale without a sail?

Heehee...viniciuspedrozo, I think you mean "Can you sell it to me?". I agree with you though, it really would make more sense to me if "sale" could be used as a verb...

jhorton (author)2008-06-09

Dumb question, but what part number did you use for the relay? Or what search terms can I plug into Mouser or Digi-Key? They have a bazillion different relays with vague or cryptic descriptions. Thanks!

About This Instructable




Bio: My name is Randy and I founded the Instructables Design Studio. I'm also the author of the books 'Simple Bots,' and '62 Projects to ... More »
More by randofo:Large Motor ProjectsRemove a Wheelchair Motor BrakeBuild a Robot
Add instructable to: