Lapse Pi – Motorised Time-lapse Rail with Raspberry Pi

Page 1 – The plan and some construction shots and info
Page 2 – More Construction
Page 3 – The Circuits, the Code, plus a video of the rig in action

Here’s a side view. You can see in the picture below the way the skate bearings are bolted onto the dolly tubes and sit on the rails. The 45 degree angle of the bolts into the tubes allows easy mounting onto a 3/4″ or 1″ rail. And you can always use longer bolts for thicker rails. Thicker pipes give you the possibility of longer, more stable rails. Anyone for a 10 metre time lapse rail? ๐Ÿ˜‰ ย Seriously though, my local hardware store has 21ft gas pipes, I’m thinking about it! ๐Ÿ™‚

And a closer look. Underneath you can see the timing belt with bearings on the left with the motor, then the box with circuits in the middle, and battery pack on the right. I used 6-pin mini-din connectors from the Pi’s GPIO, as it gave an adequate number of pins in a nice neat form factor.

Another view from underneath .Velcro is great to keep everything attached!

Here you get a look at the timing pulley in that dark cavity above the motor. That’s what pulls the dolly along the rail via the timing belt. Sending a pulse of 12v for 150ms to the motor drives the dolly about 3mm. Perfect for those slow pans. It’s important that the timing pulley is correctly matched with the timing belt. The motor is a 15RPM.

And finally, a nice low angle shot. I must clean up that Velcro. Not the prettiest solution, but it sure works nicely. You can also see the switch which I’ve used to reverse the direction of the motor. That simply reverses the polarity coming from the transistor to the motor, depending on it’s position. A motor driver (such as the one I used in the Macro Pi blog article) would allow me to switch direction in software, but the switch is OK for the moment, I don’t change direction too often.

An add-on to this project that is not detailed here is my DIY dew heater. I found that during night time shoots, the camera lens can very easily get fogged up, especially that we have such damp nights in Ireland. The dew heater wrapped around the lens brought it’s temperature up a degree or two, just enough to keep the dew from forming on the glass. The build instructions for the heater are very well documented on Steve Maddison‘s ย blog, atย After a few failed attempts at a night-time lapse, I built the heater, and I was amazed at how well it worked. Zero dew on the lens in very similar conditions to the previous attempts.

Here’s a few images of the rig in operation.

In this image, you can see where I covered the viewfinder, as the sunlight entering the camera from the back was washing out the initial images.

A couple of rocks in each end of the rail to settle it down a bit. It was a bit windy that day.

I don’t mind people walking through the time-lapses much, I think it adds a bit of interest.

Sourcing the timing belt parts

The most important parts are the motor, the timing belt, and the timing pulley. The links here may expire, as they’re on eBay, but the search terms should still work OK to get you what you’re looking for.
I use 9mm wide belts, with 5mm between the teeth (the pitch). So go to ebay and put in “9mm 5mm timing pulley 14” (the 14 is the number of teeth on the pulley, small enough to fit nicely under my dolly, and small enough to give good torque from a 15rpm motor. For example, a part called “P14-5M-09F” means 14 teeth, 5m pitch, 9m wide. and the chart attached to the ebay page shows the bore diameter, which is 6mm, important for matching to the motor.
Now to the Timing belt.ย I usually look for 2 metre HTD timing belts on eBay. Again, 9mm wide and 5mm tooth pitch, to match the timing pulley. Searching for “HTD 2000-5m-9” will usually show up a list of sellers of various lengths, and I pick the 2meter version.
Then, get a motor with a shaftย diameter the same as the hole in the timing pulley, i.e. 6mm. ย “12v 15rpm geared motor”. Look down through the specs of the motor, and make sure the shaft is 6mm, preferably with one flat side for the lock screw in the timing pulley to rest against so it won’t slip when the shaft is rotating.

Next page, the circuits.

Page 1 – The plan and some construction shots and info
Page 2 – More Construction
Page 3 – The Circuits, the Code, plus a video of the rig in action

61 thoughts on “Lapse Pi – Motorised Time-lapse Rail with Raspberry Pi”

  1. Great work – must admit I’m in the process (and may be for some time) of building the same thing -taken some inspiration from the focus stacking project, and got the stepper motor bit working. Now need to build the hardware, though I’m planning to invest in an Igus rail – I presume you’ve seen the Chronos project….

  2. This is incredibly neat! I just have a few questions: What program did you use to render the video? I presume ffmpeg?

    Also, how many shots per minute did you take? Thank you!

    1. The frames were stitched together using VirtualDub, which is a great little program for this type of thing.
      All sequences were planned for 24 frames per second, so that makes 1440 shots per minute. However, there are a couple of HDR sequences in there, so I did 3 shots for every frame, so that’s 4320 shots per minute. Kinda hard on the DSLR’s mirror mechanism! ๐Ÿ˜‰

  3. very good, will try to make some myself, may use a threaded rod instead of a belt, we’ll see
    where did you get the legs? (I’m in Dublin in case you could share where you got them)

    did you say where you got the motor from? just curious

    1. If you use threaded bar for this, then when rewinding the dolly, the nut on the threaded bar can overheat and seize, unless you cool it, bit too troublesome that with oil or coolant getting everywhere. Been there.

  4. Legs were in woodies, but they only had 2 left where I got them. Looked like some kind of wall hangers. โ‚ฌ1 each!
    And eBay for the motor.

  5. Hello,

    I’m thinking that most of the parts you used are familiar to professional photographers, because nearly all of them are a mystery to me! I would love to build one of these, but I don’t have a clue about what these parts are or where to buy them:
    skate bearings
    dolly tubes
    timing belt
    mounting plate

    Would it be possible to make a list of parts with their original purpose and where you got them from please? Just a wee bit more detail?

    1. Brian,
      None of those terms are photographic terns! ๐Ÿ™‚
      I sourced most stuff from my local DIY store. mounting plate is simply a rectangular piece of steel, which I drilled myself. Tubes are pieces of pipe, timing belt from auto shop, skate bearings from ebay. Research, research, research! ๐Ÿ™‚

    2. Thanks Dave,

      in that case, would it be possible to get a few more pictures of e.g. where the timing belt is connected at each end? (And what is a timing belt when it isn’t used for this job please?)



      1. Brian,
        I’ll try and get a picture of the timing belt clamps. It’s all made with what I had available to hand, or available in the local hardware store.
        Wikipedia has a very good explanation of what a Timing Belt is.

  6. Hi!
    Some of the images are just beautiful!
    Is it possible to get them in digital format to use them as desktop wallpaper ?

    Thanks in advance,


    1. Emanuele, let me know which scene, and the resolution you want, and I’ll send you one! ๐Ÿ™‚

  7. Fantastic work again Dave.
    As the timing for the shutter isn’t quite as critical as for the water drop shots, you could use gphoto2 to control the camera via usb.

  8. Pingback: Slo-Pi
  9. Thanks for sharing this, I feel inspired to try this myself and am wondering if you had considered trying curved pipes? I know that getting two pipes curved the same might require some metal fab equipment. But imagine the shot you could get as the time elapse pans over a shot with another axis in play.

  10. Hi,
    for the toothed pully and belt, try looking at the 3d printer spare parts on eBay.
    They are usually T5 pitch and can be bought together.
    At least, that’s my plan ,lol

  11. Pingback: DISKIDEE
  12. I’m wondering if any of your shots used the whole length of the rail and if so, how long it takes to run the complete sequence. Obviously it would depend on shutter speed, but what would be a ballpark figure for a daylight shot vs a night shot?

    I’m also guessing you have to take your laptop with you to start the pi off and adjust the variables according to conditions?

    Would really like to put something like this together myself so just trying to figure out everything that’s involved.

    Thanks for the excellent post though!

    1. Bob,
      Rail length is 1.8m, so if you want 240 shots (10 seconds at 24fps), you’d move 1.8m divided by 240, or 7mm each frame. It doesn’t actually depend on shutter speed.
      If you’re doing 240 shots in day-time, and using 3 seconds between shots, that’s 12 minutes.
      If you’re doing 240 shots at night-time, and using 30 seconds between shots, that’s 120 minutes (2 hours).
      If you want to do a lapse with more frames, reduce the distance moved between each frame. 3.5mm will allow you to shoot twice the number of frames.

      1. I’m still a little confused. Does this mean you’re just using the camera in bulb mode and controlling the shutter with the Pi? Or is the camera setup, and the Pi just triggers the shutter and waits until it’s done?

        I would have thought if the GPIO pin was set high for a certain length of time, this would be controlling the shutter.

        And how do you configure it on location?

        Sorely tempted to swing by Maplin and B&Q on my way home tonight ๐Ÿ™‚

        1. Bob, Camera is triggered, and then waits. Then moves the camera, and triggers again. You need to be careful that the delay is longer than the shutter speed. Have a read of the Python code, and it might be a bit clearer.

  13. Love it.

    By changing the track system you can have one with sleepers. This means that your track can be as long as you want. If you make it in sections then you can make a whole Hornby system and run it where you will.

  14. I’m planning on having the rPi trigger my camera as well, but it is a VERY long time since I last played around with electronics. Could you provide what transistor and resistor you have used?

    1. Jimmy,
      I pulled the transistor from an old PC PSU, so I don’t exactly know. It’s a beefy enough one, though. As for the resistor, I think I used 1K.

  15. Can you provide any more details about the motor. Is this a stepper motor, or just a standard dc motor?

    If its a DC motor does it have to have a certain RPM, or does it need to be geared down, how are you making it turn (and then move the rig) an accurate amount.

    1. 12V DC motor @ 15RPM. Pulse 12V to it each shot. Have a look at the code to see the pulse sequence.

  16. This is a very nice time lapse rig. I’m impressed by the build quality.

    In the Shutter Release circuit, what is the purpose of the NPN transistor? Is it used as switch?

  17. Thank you so much for sharing this build, I just stumbled across it chatting with someone at work. As I see it you are only restricted to the pole size and timing belt length for Hzl movement? This has really inspired me, thanks once again from Brisbane QLD, Australia.

  18. Pingback: LapsePi
  19. Pingback: Pi-Rex
  20. Pingback: CameraPi
  21. Hello David,

    I recently came across your blog and loved each one of the entries. I especially loved the things that you did with the Raspberry Pi. Awesome stuff! Now I am inspired to get on for myself and try the moving timelapse rig and the Drop Pi. I have a question: How did you wirelessly connect your PC to the Raspberry Pi.Did you use a wireless USB adapter? If so, then can you use it outside your home network?

    1. Thanks! Yes, wireless USB dongle, set up as a hotspot, so I can connect in with laptop, phone, tablet, etc.

      1. I am not sure I understood completely. Do you use a wifi adapter to connect the pi to the home network. And then do you ssh to the pi? Sorry about asking so many questions!

        1. No home network. Wifi in pi in master mode, then ssh direct to pi from laptop. Sorry short comments, on phone here.

      2. Also, where did you buy the timing belt and the pulley from? I am trying to look up that item, not sure what width I would need. When you keep the dolly slanted, what keeps it from rolling down the rail? Is it a geared motor, or is the teeth of the timing belt is strong enough to hold it.

        1. Pulley from eBay. 9mm wide should do. Geared motor, plenty of torque, but also a weight on a pulley to counterbalance camera.

  22. Hi Dave,

    Great work mate, I love your precision and your neatness. Also, I admire your patience with replying to everybody’s questions and enquiries.

    Talking of which, I have one regarding your timing belt and cog combo, do you know the pitch of the belt you used and the diameter / no. of teeth in the cog? Or was it just a matter of grabbing a belt and finding a cog that fitted?


    1. Htc 5mm pitch 9mm wide 14 tooth. Had to drill the hole for grub screw myself with a tap & die kit to attach pulley on to motor shaft properly. Short message, writing on phone. ๐Ÿ™‚

  23. Hi David,

    I’ve just hacked the remote for the 5d and obviously it has 3 wires, red, white and green (presumably +, – & GND) I’ve figured out that touching red and white together triggers the shutter. So that’s what I’ll be using in my circuitry but what should I be doing with the green wire??

    I’ve noticed that if green’s wrapped around red then there’s no noticeable difference but if wrapped around white then the camera doesn’t show a preview of the shot on the rear lcd screen.

    If left out of the equation altogether, again, no noticeable difference.


    1. White is most likely ground, with red and green being shutter release and focus respectively. You don’t really need the focus for typical timelapses, as your lens will most likely be on manual focus. Rgds, Dave.

  24. Great David, thanks for all the tips.
    I m trying to control my Nikon through a cronjob calling gphoto2 every minute but I have to perform a USB reset after each shot. Would you have an easy solution at hand for this matter?
    thanks in advance


    1. Laurent, the latest version of gphoto2 has fixed this problem, version 2.5.2. Are you comfortable compiling the libs and binary from source ?

  25. Hey Dave,
    I really find your work pretty inspiring and fantastic.
    I am definately planning on building a timelapse-rig myself but since you pointed out that your’s is heavy and awkward to transport I will make slight changes to your setup.

    First of all, I’d prefer more security for my camera to prevent the dolly from falling of the rail. I was planning on adding some kind of security-catch or an additional set of skate-bearings under the rails, so that it’s impossible for the dolly to fall off when assembled.

    for the rails, i have too have the feeling that carrying around 2 tubes of 2m length is a bit too much. BUT I am happy to own one of these backdrop-systems: Walimex Background System

    they consist of 2 tripods and 5 connectable tubes of 90cm length each . Using 4 tubes would make 2 rails with 180cm length each. Plus: If you work clever, you could still use them als backdrop-kit.

    What kind of dc motor do you use? Can you perhaps name the model?



    1. Marcus,
      Thanks for the comment! It’s a good point about the rail, I was thinking of getting some pipes that screw together so I can transport easier. But finding pipes that are smooth when assembled are hard to find. Do yours give a smooth surface at the join?
      On the motor, it’s a 12V DC reversible 15RPM model, very cheap on eBay.
      It’s not powerful to move the camera when the rail is at an angle, so I use a weight and pulley as a counterbalance.

      1. Hey Dave,

        I am pretty sure that they are pretty smooth (but not 100%) when assembled but doubt that there should be any problems with the dolly. I can try and send you closeup picture of those pipes assembled, as well a pic of the stuff used to put the pipes together.
        Thanks for the specs of the motor! Have you ever thought of using a steppermotor to get accurate steps?

        1. Steppers require constant current for “holding” position, whereas in the DC motor there’s enough holding force to hold the position without current, so uses a lot less battery.
          It would be great to see a close up of the pipe you’re using. I might get one myself, as I could do with a portable backdrop as well! ๐Ÿ™‚

  26. Hey I am trying to build the same thing I am using this other guys website but I don’t really understand how the circuits are supposed to look can you plz email me a picture of them or something? and not the circuit that’s already on here because I don’t understand it. thanks ๐Ÿ™‚

Comments are closed.

%d bloggers like this: