Introduction: Time-lapse With Any Camera, Using Arduino

Sometimes you find yourself in a situation where you want to capture situations where filming would be entirely impractical, or even impossible. For those moments time-lapse photography is a god-send, until you realize that your camera did not ship with that feature and there seems to be no way around it.

Fret not instructaloid, salvation is here, in the form of a small Arduino sketch which will make your incapable camera capable again! Grab a seat, make some popcorn, and watch the video for how to get it done!

For this instructable you'll need:

1 Arduino (UNO or other board)
1 Micro servo, any brand will work
1 Thin aluminium strip
3 Jumper wires
1 Camera + tripod

For the extended project described towards the end of the video you'll also need:

1 Prototyping board, I used the Perma-Proto Half-sized Breadboard PCB by Adafruit
1 Arduino Pro Mini (instead of the bigger Arduino previously)
2 Kingbright SC56/11HWA 7 segment character displays
2 74HC595N shift registers
1 Toggle switch
1 Pushbutton
1 Rotary encoder
1 10kOhm potentiometer
2 Knobs
1 Enclosure
, whatever will fit all the stuff

So get started on your next time-lapse project already, don't let lack of features stop you. What doesn't exist we build or hack together!

For a closer look at the schematics for this project, find the PDF here:

The link for the Arduino sketches used in this instructable can be downloaded at the following link:

Stay tuned for more videos from Switch & Lever, and check out the rest of the material here on Instructables and YouTube for previous uploads!

Thanks for watching!


Tanterolf (author)2017-04-25

Did it (version 1) and works perfectly. Many thanks from good old Germany.

jimvandamme (author)2014-10-30

I've hacked into a camera and triggered the switches (focus, then shoot) with a couple 555 timers. Smaller and cheaper than your arduino version, but harder.

It's definitely an option, but it will no doubt void your warranty. I personally wouldn't do it as I would prefer there not to be cables running out of my camera when I'm using it normally. If you have a dedicated camera for this, then go for it!

And the first step is to disassemble the poor thing and trace the circuit out, and write out the circuit so you can figure it out.

It worked for me. It was a drone application and I needed to keep the weight down. But it was a job getting into the camera, figuring out the schematic of the switches, wiring into them, and making a transistor driver circuit. Then getting it all back together! Seems like it would be so easy to put this capability into a camera and leave out some of the doodads you never use.

Hello, jimvandamme!
I'm interested in your solutions since I have a dedicated low-cost camera for this.
Would You share some directions and advises, please?
Thanks in advance!
Best regards
Nikolay Nikiforov

Well, like I wrote, it's harder. You have to tear into the camera and figure out how the switches work, so that requires electronics knowledge. Draw a schematic, then figure out how to replace the switches with electronic equivalents. Since they're usually just button switches with one side ground or to the + power, you can use a transistor to pull the floating side of the switch down. Drive it with a 555 or whatever trigger you need, then trigger the second 555 off the output of that, giving it some time to focus, and trigger the shot.

There are probably cameras that have programming ports that don't require hacking into. I have an older HP 4 MP camera that has a "sharing" plug on the bottom, but I haven't found a pinout for it. Supposedly it outputs video, too.

It's been 8-10 years since I did this; it was for a small drone before drones were all the rage.

Thank You VERY MUCH!!! I appreciate You take your time to answer!!!
It is really useful to me, especially the part with the programming ports - I didn't know that !!! No matter if I succeed or not - it's good to know that there is someone willing to help!!! Thanks again and good luck with your initiatives!!

brandadvisers (author)2015-03-28

Great solution.
I failed to do the exact same idea 3 years ago, just becouse I didn't know about Arduino. Now, I'm learning it and this tutorial is a great inspiration.

ddemedeiros06 (author)2015-01-16

I have an error with the code. Encoder does not name a type. What does this mean?

SebastianB2 made it! (author)2014-12-21

I made it after this instructable, TimedFinger-V2 but only the time part as my camera always will be the same. I learn a lot, control twice and make the single parts work.

I added to led, green for at program run and red for program setup. The button has to option, 2 = the normal setup and 1 = make the buttonState go to 0 again to make a new time choice. For the servomotor i used a usbconnector, the other is to connect the battery. with greeting from Denmark

Screwpa (author)2014-10-29

Nice build. But, should you happen to have a Canon powershot there's a great mod so you can program not only time-lapse but motion sensing, lightning capture, even program games. Unlock the full potential of your Canon with CHDK. Install on the SD card and doesn't harm the original programming of the camera. Here's the link : Very cool build though. Keep em coming.

Switch and Lever (author)Screwpa2014-10-29

Indeed, as written in several comments before.

Thank you!

Screwpa (author)Switch and Lever2014-10-29

Sorry I missed the earlier posts. Don't have all day to read everything. Thanks for the thanks though. What I would really like is an Ardino script to block all the politically based commercials. :). Take it slow.Doug
PS, quality editing. Very easy to follow.

schaude (author)2014-10-29

muy bien hecho! well done! sehr gut gemacht! maladjetz! tres bien!

geneorama (author)2014-10-28

This is one of the most pleasant videos I have ever watched. It's slow enough to follow, covers many types of problems you may encounter, the picture in picture is great, and it's fast enough to not get bored... great job!!

I personally think this is an elegant solution. It has a certain reliability to it and it uses the most complex technology (the camera) to do just the parts that it should be doing (taking pictures). It also illustrates how you can use the arduino to interact with the physical world... this is so cool.

Plus, great servo explanation. I wasn't sure how they work in terms of rotating back all the way to start and how to make the mechanics work efficiently. I think I might make the 1.0 version.

Thank you, I do put in great effort to make sure my videos are not just instructional to watch, but also easy and to some degree entertaining.

I would love to see your approach if you end up making it, do keep us updated!

geneorama (author)geneorama2014-10-28

I meant to say "most pleasant how-to video". Obviously there are some pretty pleasant videos on reddit.

Rosas1 (author)2014-10-28

you know There are mechanical intervalometers you can fit in any camera that do exactly what you did, in a smaller package. Check this one out:

Switch and Lever (author)Rosas12014-10-29

Indeed, but the complete cost for this project was less than $50, whereas the TempusAll is $149, that's easy math to me.

jimsims (author)2014-10-29

Great project and just in time. I had gathered some parts to do similar. I was planning to use a push / pull solenoid to actuate the shutter. Any comments on that approach?

What are the options for post-production software? In other words, how do you assemble the individual jpgs into a video?

Again, great job. Superb production value on the video!

Switch and Lever (author)jimsims2014-10-29

I thought of using a solenoid, but I didn't like that approach since they are very immediate in their movement, basically hitting the button instead of pushing it. Also, it feels like the mounting for the solenoid would be a bit more complex than for the servo.

As for post-production there are lots and lots of software that is suited for it. Anything from Adobe's Premiere or After Effects, to iMovie for the Mac, to Vegas, Windows Movie Maker and the list goes on and on. As long as it can import image sequences and output video you should be good.

rondacosta (author)2014-10-29

Great instructable.

I am trying to create a jig with a tiny Casio camera to take pictures of old 35mm slides. I just got an Arduino and a couple of servos, still in the box.

My question is: could you point me in your Sketch where or how to modify it so that i can use an external push-button to make the servo take each picture manually? rather than automatically every so often?

I need not to disturb the tiny camera by me pressing the tiny shutter button with my big fingers.

If needed, please use my

I wouldn't use my code to do what you want. Instead I would load up two examples in Arduino, the Digital > Button example, and the Servo > Sweep example. Combine those two to trigger the servo whenever the button is pressed and you're done. You're essentially making a remote trigger, and for that you definitely don't need all the code infrastructure I made for this project.

thundrepance (author)2014-10-29

you're too smart for me, so i sent this cool diy to my son ;^D

seamster (author)2014-10-24

Very interesting!

I was a little surprised to see that you made the camera take time lapse photos with a mechanical action . . . I guess I was expecting to see some kind of a software mod!

Nonetheless, very nicely done. Thanks for sharing this!

billgeo (author)seamster2014-10-28

That depends on the camera. The software side will be the same, but the actuator will change. Some cameras accept a (hardwired or IR) remote shutter device. So you can use a relay as an actuator. If yours does not support a remote shutter the only option for the shutter to be controlled if by physically pushing on it (or one could hack open the camera and take out two cables from the switch contacts to a relay, or mosfet)

Since that's not an option for the Sony RX-100, the camera I made the project for (not the stand in Canon in the video), I couldn't go for the software route unfortunately.


The A85 isn't supported by CHDK anyways from what I can see.

Perfectly understandable! I think this is a great solution, and many people will find it useful.

bergerab (author)2014-10-25

Nice! One suggestion I'd make would be to just use one shift register, and one transistor to control both 7 segment displays. It'd be a bit cheaper and less wires. However, as you know, driving two 7 segement displays is pretty time intensive.. so if you want to save an hour or two of your time you could even use a pre-made 7 segment module. Anyway, great project! I like the second version you made!

Intriguing, how would you go by using just one shift register and a transistor?

Yeah, I definitely could've used a premade module, but I really wanted to learn how to use shift registers, and this felt like it was a great opportunity. :)

Sorry actually you would need two transistors and then a shift register. Since the 74HC595 gives us 8 outputs, and we need to control two seven segment displays, we can attach each segment of the displays together (but keep the common anode/cathode seperate). Then connect each segment to outputs 0-6 on the shift register. Finally connect one displays common cathode /anode to the last output pin using a NPN transistor and the other using a PNP transistor (And a pull down resistor) . This allows you to multiplex the 7-segment displays. If the last output pin is high, only one of the displays will be on and you can write the number to the display. If it is low, the other display would be on and you can write numbers for that display. If you do this faster than 30 times per second, it will look just like you've used two shift registers only it will be multiplexed!

I had to go through quite the trouble coming up with that transistor method. It's nice because it takes less room, and is cheaper than using two ICs. But the way you did it makes it a bit easier to program and is more straight forward!

Again thanks for sharing your project! It's a very original way of making a time lapse. I love the 3d printed case too!

Oh, that is a really interesting method for doing it! Definitely cheaper as far as components go, but it does indeed feel like it would be a bit more complex to program. You should make an instructable detailing it further, I'm sure there are a lot of people who could benefit!


g4ipz (author)2014-10-28

Nice instructable . May I suggest that people check their camera to ensure that it doesn't automatically take a stream of photos if the button is pushed for too long. If that happens then you'll need to play around with the arduino action timing somewhat to avoid multiple shots.

Switch and Lever (author)g4ipz2014-10-28

I would say that's likely a setting in the camera than anything else, that the shooting mode is set to continuous instead of single shot. Before messing around with the arduino timing that would be the first place to look.

KyleTheCreator (author)2014-10-25


Timofte Andrei (author)2014-10-24

you actually need two servos, one for turning camera on and one for taking photos ;) because you cannot leave the camera on for hours and hours and those new cameras has timer built in to automaticaly turn off to save battery

Yes and no. For cameras with external power you can definitely leave them on for hours and hours, and there's most often a setting to turn off the auto-turn off of the camera. Whether it's actually good for the camera or not I'll leave unsaid.

If you've set the camera up for timelapse you have often set it to a specific zoom level, and to a specific fixed focus. The last thing you want is for the camera to turn off between shots and nullify that.

For the Sony RX-100, which I made this project for, I used it for my previous instructable where I'm assembling a 3d printer. It was left on taking photos for hours and hours, somewhere around six hours total, and I didn't experience any issues with that.

SparkySolar (author)2014-10-24

Thank you for your nice instructable.


leadzeplin (author)2014-10-24


leadzeplin (author)2014-10-24


leadzeplin (author)2014-10-24


mazzmn (author)2014-10-24

I can def see reasons for a mechanical solution so thanks for putting this together. Seamster has a point and particularly for a Canon camera such as this, software such as CHDK is another solution, check it out

Switch and Lever (author)mazzmn2014-10-24

Indeed, with Canon you have a point with CHDK (even though it corrupted an SD card for me once). The camera I actually made this project for I couldn't feature in the video, since it's the camera I'm doing my video shooting with, so the old Canon had to be used as a stand in. My Sony RX-100 doesn't have the possibility of either a USB trigger, nor hacked firmware like CHDK for the Canon, so mechanical triggering was the only way out.

The MKII and MKIII of the Sony RX-100 has the possibility of a remote trigger hooked up to USB, and with such as set up it's trivial to cut the cable and hook it up to an Arduino for triggering.

About This Instructable




More by Switch and Lever:Giant Gummy BearMake a Candy Advent CalendarMake a GoPro Tripod Adapter
Add instructable to: