About: I'm a 36 year old DIY enthusiast from Vienna Austria with a strong background in mechatronics/automation. My DIY field is mainly video/audio/motion control. If you want to see what i do between posting it ...

edit: I rebuilt this dolly with 4$ steppers: https://www.instructables.com/id/MICRO-MIDI-STEPPER...

This Instructable is about building the smallest possible automated TimeLapse dolly.

Its also the most simple one i built to date.

It's controlled via servo protocol, and two rc servos.
One servo is modded to be endless, one is original.

It uses an Arduino UNO as test-controller, but i plan to build it with an ATtiny85

The drawing was just an idea, look at the photos for the final arrangement of the servos.




The chassis is built out of stripboard PCB.

It uses two M8 bolts as axles for the skateboard ballbearings.
The servos are mounted with two servo mounts from a TREX450-clone helicopter.

The distance between the bearings is set via distance-pipes from skateboard wheels.

On the photos, i use two sets of two bearings.
The intention for this is to only let it run on a track with one side.
The other side is being driven with the servo motor and runs on the ground directly.

Thats means that it only uses one pipe, which should be easier to organize on location instead of bringing two pipes.

I made a drawing that illustrates that option.

The top one is just a shim between two bearings, the bottom one is one distance pip between two bearings.


Turning the camera is the only "complex" thing with this dolly.

A servo can move 180degree in steps of 1 degree.

I used al the links because of two things:

- a nanoservo is way to weak to turn a GoPro and hold it in position
- steps of 1degrees is way to big for timelapse

With all the links you get 0.3degree resolution and 60degrees of movement.


For a simple time-lapse program see the script in the photo.

Make sure you connect the right pins for the modded and unmodded servo.

See one of the later steps for a small Arduino UNO compatible shield that uses the pins in the script.


The dolly drives with a modded nano servo.

You can mod nearly any servo to be an endless motor, by chopping a little knob inside the servo that mechanically protects the servo from turning over its limits. And you also have to take out the pot and replace it with an equally valued fixed resistor.

After you did that you can control it with the servo protocol like a normal servo.

By soldering two equally valued resistors in instead of the pot, you tell the servo its in mid position.

All the time.

So after the mod, when you tell it to go to position 90°, it thinks it already is at this position and does nothing.

If you tell it to go to 92° it doesn't full-power the motor because it (thinks it) knows that its only 2° away.

As it never reaches 92°, it goes on in this speed for ever.

Same as you give it the position 180° it thinks its 90° away, so it powers the motor up to the max to reach this position as quick as possible >> you get maximum speed.

And everything in between, of course, and in reverse direction with values lower then 90° (down to 0°)


If you don't want to play around with an ATtiny85 you can also use an Aruino UNO of course.

To make it easier to connect the servos, i made a micro shield.
It's four lines of stripboard PCB wide and connects to the following pins:


I will use the 3.3V for the light-resistor so it's better to already solder it to a pin.



    • Fandom Contest

      Fandom Contest
    • Arduino Contest 2019

      Arduino Contest 2019
    • IoT Challenge

      IoT Challenge

    3 Discussions


    4 years ago on Introduction

    very nice 'ible. In a project I'm working on I use servos to move a green laser to point to stars which requires much better resolution than one degree. I get pretty good results using the writeMicroseconds function of the servo library to give better-than-one-degree resolution. Still, there is a little 'wobble' in the servo position but I think it is very tiny for camera purposes. Have you investigated this method? It *could* save you complexity by eliminating the need for your linkage mechanics.

    Best Wishes

    2 replies

    Hi, thanks for your comment. Yes i tried that a year ago, but never could get it work with writemicroseconds, so i assumed its not for analog servos but stepper servos. Never investigated ever again :)

    until NOW hehe

    i still think that the weight from the gopro is way to much for the nanoservo, but i could get away with that. thanks again, i will read about microseconds :)


    Notez que certains fabricants ne suivent pas cette norme de très près afin que les servos répondent souvent à des valeurs comprises entre 700 et 2300. Sentez-vous libre d'augmenter ces paramètres jusqu'à ce que le servo ne cesse d'augmenter sa gamme.

    Continuous-rotation servos will respond to the writeMicrosecond function in an analogous manner to the write function