Build your own Arduino-controlled camera slider!

Making is always better than buying 💙 Here’s my design of a 1m (over 3ft) long motorized camera slider that does both fast and super-slow slides!

Camera sliders. They’re awesome. But unless you’re happy with pushing the camera around by hand, they are really. freaking. expensive to buy if you want them motorized. And it’s pretty hard to find one that does the things I wanted: It should be really smooth, it should be useable for both short video clips and timelapses over multiple hours or days and it should be reasonably large. In my case, a one meter length sounded about right. So I designed and built one from scratch using some electronics from a 3D printer and, of course, 3D printed parts. The results are pretty fantastic, I’d say, and you, too, can build this exact same slider for less than 60 bucks.

Now, there are a few different options of making a slider like this, both when it comes the mechanical parts and how you control it – you could go with a true sliding setup, like with IGUS bushing or even just some felt pads on a pair of pipes, or with a roller-style axis like i have here, or even do a full-on linear ball bearing rail setup. Each one has its own advantages and disadvantages for smoothness, robustness and price. I settled on the Openbuilds system, since linear ball bearings are quite sensitive to dust and dirt and will always have a bit of sticky lube on their guides, while sliding blocks don’t care about dirt at all, but do have a bit of stick-slip friction, which isn’t the greatest thing for those super slow slides. In my case, this is 20x40mm Openbuilds-compatible Vslot with regular-sized wheels and the big plate for maximum flexibility later on, I do want to add something like a motorized pan at some point. For electronics, I went with a stepper motor, plus a driver et cetera. I specifically picked the stepper motor instead of a geared DC motor since the stepper first of all is much more consistent in its move speed, but also allows those super-slow moves that would require an insane amount of gearing with a DC motor.  Start of the show here is the Arduino with a touchscreen and a clickwheel encoder. As much as an all-touchscreen interface would be super slick and all, having that haptic control element plus the click for stop and go just feels so much more direct. Touching the touchscreen only sets the movement direction right now, but there is obviously room for adding more functionality there. This interface was already quite tricky to program with my limited coding skills as the screen I’m using is rather slow with the Arduino and just having the total runtime update as quickly as possible to make rotating the encoder responsive enough required the use of, let’s say, a few tricks.

Slider motion

The mechanics actually started out as a non-motorized slider with the option to upgrade later on. On one end, the slider has this aluminum flywheel that is essentially just a scrap part that I had picked up a while ago, and that really helps with getting smooth slides without a motor, but now that I’ve upgraded it to be totally controlled by the Arduino, it’s not really needed anymore, in fact, I can sometimes see it introducing a bit of resonance in the movement with medium-slow moves. On the other end, there is the motor mount that doubles up as the belt tensioner, and each end has these extra bearings to guide the belt so that it doesn’t rub against the V-slot or anything. The printed parts aren’t the greatest designs and do require support material to come out right, so if you’re making improvements to the design, please do share them.

So the two other printed parts are the Arduino and LCD mount as well as the battery mount, using Sony NP-F batteries, which are the de-facto standard for smaller video equipment like this. On the back, I simply put a small breadboard to hold the motor driver and the voltage divider that allows the Arduino to monitor the battery voltage. A soldered proto PCB would work just as well and be a bit cleaner, but I wanted it stay flexible and open for experimentation. Let’s build this thing!

So, starting at the ends, the bearings at the idler side are simply pressed in, if necessary with a bit of heat, and the piece of 8mm rod gets fixed in place just with the pulley’s screws. The extra bearing also simply gets screwed down with an M6 screw as the printed parts already come with the proper relief cuts on the back, but do need the thread tapped by hand. If you don’t have a matching tap, you can also just heat up a screw and use that to form the threads. Same on the other side, where you have the pulley on the motor itself, which needs to line up with the bearing, and then the motor gets clamped down with these long M3 screws.

Next up, we’ll need to mount whatever tripod head you want to use to the moving plate. In my case, I used a simple ballhead to quickly adjust the camera angle and these three screws instead of the ¼-20 thread to mount it because it was easier to do, but you could just as well go down that route with the tripod thread, it just depends on the exact head you want to use.

Now would be a good time to cut the belt to length, mine is 7 feet and ¼ inch or 2m 14cm long. The belt gets trapped in the printed belt holder before adding the OpenBuilds plate, and then gets screwed to that plate. This was the trickiest part to design since space is really tight and does require a bit of trial and error to get it perfectly lined up in the slot without rubbing. The last finishing touch is the mounting plate, which you’ll use to attach the slider to your tripod, I used a cheap Manfrotto-compatible plate, drilled a few extra holes and mounted that to the bottom of the track, but there are other, maybe more elegant options available. The most important thing is to use a good and sturdy tripod, I’ve got this 9901 model with the Manfrotto head, which is plenty strong for the setup.


The electronics are fairly simple, too. If you don’t want to use a battery, you can simply power the entire thing through the barrel jack on the Arduino with a 12V supply. But to prepare the battery holder, grab a pair of these 2.6mm mini plugs, get rid of their plasticky bits and solder in a wire in the back. Then simply superglue them into the holes on the holder and maybe, use a battery to align things while the glue sets.

The wiring for the slider is really simple – the screen just pops on as a standard Arduino shield, taking out the largest portion of work. The rest of the connections are battery to Vin on the Arduino and the stepper driver’s input, ground to ground everywhere, 5V from the Arduino to the encoder and stepper driver as well as its MS pins to enable 1/16 microstepping and to the inverted reset and enable pins. I also connected the battery’s voltage to analog pin 15 on the Arduino using a 2 to 1 voltage divider. Digital signals are step and direction for the driver, connected to pins 52 and 53, as well as the encoder’s pins going to pin 19 for the button and 21 and 20 for outputs one and two. All in all, one of these mini breadboard is more than enough for everything, and allows you to swap in different drivers or extend the circuit later on. I used the standard A4988 “Pololu” style driver, which is more than enough for the job, but of course you can go with a Trinamic driver if you want it extra, extra smooth. Upload the firmware to the Arudino and you’re ready to rock!

Best use

So now that it’s built, how do you use it? So when you start it up, the slider will be in the stopped state. As you turn the knob, you can adjust the time the slider will take to run the entire length of the track, that’s what it displays. If you just want a slow, steady sliding shot for closeup video, the minute range is a good start, but for larger objects, you’re going to need motion that is a lot quicker. The software has reasonable limits built-in for how fast the slider can move, but it doesn’t have endstops or any other safety measures, so you do have to be somewhat confident when using it for that. You can quite easily do manual slide + pan shots either by panning the slider’s head, which still has your camera moving along a straight line, which might be an interesting effect, but is going to cause issues with focus, or pan whatever head the slider is mounted to, which actually gives you a movement path that is much closer to a circle if you keep the object centered in frame and the camera perpendicular to the track. Of course, you can also use it for dolly zoom effects or vertical slides that look like jib shots and whatever else you might come up with.

The most interesting bit for me, though, is creating those super-slow motion timelapses that are impossible to do any other way. For this, you should definitely check the start and end points and adjust the sliding time accordingly. If you’re going to use a third of the track’s length, set the total runtime to three or four times of the total time you want that section to take, and you should be good to go! Here’s what that’s going to look like! Don’t forget to plug the slider into a power supply as even these larger batteries will only last about half a day.

And lastly, a few tips on camera setup for the resulting timelapse to look great: You should have it as manual as possible, using manual exposure, focus and white balance, as cameras will have a tendency of jumping around with their settings quite a bit between shots. Using a longer exposure gets that dreamy, motion-blurred effect if you’re filming something that moves, while a shorter exposure makes it crisper, but might look a bit stuttery in the final video. Most cameras have an interval mode built-in, use that to have it take pictures with a consistent timing, or alternatively, plug in an external intervalometer. Most cameras allow you to create a video file straight from the timelapse images, but you can always bring them into your video editor of choice.


Now, if I were to build this again, the only two things I’d really change would be the electronics mount to make everything a bit cleaner with fewer wires dangling around, and maybe try and find a different way to mount the belt, because right now, even though it works great, it’s really fiddly and just feels like it could be done better. Again, if you want to build it or make mods to the setup or software, I’ve released all that as open-source, you can find the links in the video description.

If you do build one, I’d really like to see it, tweet it @toms3dp. If you still learned something, give the video a thumbs up, if not, leave a comment on how I can improve. Also consider subscribing to the channel, and do click that bell or YouTube might not show you updates as new videos come out and livestreams go live.

Check out the affiliate links from the video description or head over to Patreon to support the channel and get access to monthly Q&A hangouts and more.

Design files and materials

👐 This video is licensed as Creative Commons Attribution Share-alike thanks to my supporters on Patreon!
Certain elements may not be included in the CC-BY-AS license, e.g. third-party images and music. Trademarks are property of their respective owners.

You can support me without spending a single penny!