Instructables

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.
 
Remove these adsRemove these ads by Signing Up

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.
tl2B.jpg
Carefully open the case. Be sure not to break or unplug anything.

Step 3: Press my buttons

Picture of Press my buttons
tl3B.jpg
tl3C.jpg
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.
tl4B.jpg
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
tl7B.jpg
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
tl8B.jpg
tl8C.jpg
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.
DaniDiaz made it!26 days ago

Hi,

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.

BR.

Daniel.

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.

DSC_0004.JPGDSC_0005.JPGDSC_0008.JPGDSC_0009.JPG
Ryutso3 years ago
So how's it work? Turn the Arduino on, Turn the camera on and it just starts snapping pictures like mad?
randofo (author)  Ryutso3 years ago
Pretty much, the Arduino just keeps running at whatever interval you set. Simply connect them together and turn them both on.
Ryutso randofo1 year ago
So, do you need the 5V relay?
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
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
randofo (author)  Radioactive_Legos4 years ago
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!
randofo (author)  Radioactive_Legos4 years ago
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
Robot Lover2 years ago
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.
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.
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.
spystealth12 years ago
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.
purpulhaze3 years ago
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)  purpulhaze3 years ago
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.
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.
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.
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)  shakespeare12123 years ago
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.
I see breakage. :-)
instead of using an arduino, couldn't you use a 555 timer?
randofo (author)  tinstructable3 years ago
Sure.
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)  ChickenGrylls3 years ago
They do this in an old volume of Make magazine.

http://blog.makezine.com/archive/2006/03/how_to_kite_aerial_panogr.html

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.
Rmal3 years ago
source for the 5v relay?
randofo (author)  Rmal3 years ago
Radioshack or Jameco.com
p13m4n4 years ago
This is very wasteful for what it is - why not just use a 555 timer?
randofo (author)  p13m4n4 years ago
Why is it wasteful?
smb4 years ago
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! :)

Dandeman3214 years ago
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)  Dandeman3214 years ago
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.
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?
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
arduino setup.bmp
Thanks! I'll have to check it out. I may be getting a broken camera soon. May try this.
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)  Dandeman3214 years ago
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.
Ahh Ok Ok. Makes sense. Do you need the relay? could you do this without it?
Well, The relay is like the ardurino's "capture" button...So it is necessary...
ReCreate4 years ago
Why Isn't this featured?
Pro

Get More Out of Instructables

Already have an Account?

close

PDF Downloads
As a Pro member, you will gain access to download any Instructable in the PDF format. You also have the ability to customize your PDF download.

Upgrade to Pro today!