Introduction: Fully Automated Photography Panning Rig


Hi All, This is my automated Camera Panning Rig!
Are you an avid photographer, who's been wanting one of those really cool automated panning rigs, but they're really expensive, like £350+ expensive for 2 axis panning? Well stop right here, and scroll on, because I've got the solution for you!

Not only is this solution customisable, you can use my application to remotely control settings of the camera mount, such as pan speed, movement speed, manual control to exact positions, and even do time lapses! All using my app which connects via bluetooth. The aim was to create a simple, customisable camera rig which is both sleek and powerful. I hope I suceeded! But would love to hear your comments down below as this is my first instructibles!

I hope you enjoy the project, it has been a year in the making, I started as a complete novice to arduino's completely which is why I think this project is suitable for any beginner but also beneificial for more experienced as well!
In addition I built a 3D Printer from old printers, which made all these parts significantly cheaper as they are pretty much all spare parts from an 3D Printer!

It only costs less than £60 for buying everything from scratch or if you are a 3D Printer enthusiast or have electronics parts lying around, it will likely only cost you around £20. Using an Arduino Uno, Some Stepper Motors + Drivers and my cool app, you too will be able to create stunning masterpiece photos! And the best bit? The whole project is designed so that any length panning rig can be created, and all the code adapts accordingly!

The best bit about this project is, if you are a 3D Printer enthusiast like me, you will likely have every part you need already lying around! So it could potentially cost you nothing! (Except the PLA to print parts ofc)]

Enjoy and Happy Making!!!

Step 1: Is This Project for Me?

This Project is aimed at Arduino Beginners, the code is already made, the app is ready to download for IOS and Android, and some but little experience below is needed. Limited Experience of how to follow wiring diagrams, soldering, using Heat Shrink and tapping.

You will need access to a 3D printer, or if you contact me, I am happy to assist in printing parts for this project.

Step 2: What Tools Do I Need?

  • Tap and Die Set (8mm and 4mm internal thread tapping is required)
  • Wire Strippers
  • Needle Nose Pliers (Optional but recommended as just makes life easier)
  • Access to a 3D Printer Capable of printing PLA (Bed Size at least 150mm cube)--contact me if needed
  • A circular Saw Capable of Cutting Aluminium Extrusion OR Purchase the Aluminium Extrusion pre-cut (450mm length is what I chose, but the code will adapt the system to any length)
  • Oil for the BearingsCirclip Pliers for putting bearings in bearing holders
  • Allen Keys (Full set preferrable)
  • Screwdrivers of varying widths (Standard DIY Set should suffice)
  • Potentiometer to tune Vrefs on A4988 Stepper Drivers

Step 3: What Materials Do I Need?

Materials: (Note all links are included in the names of the materials)


  • Dupont Connectors for wiring (Or protowire satisfies too)
  • Plenty of wires (Both Single Core and Copper can be used, works best if you just have wire you can cut to length)
  • Heat Shrink to make it look neat (Heat Gun or Lighter or Soldering Iron to shrink it)
  • 1x Arduino Uno
  • 1x Toggle Switch
  • 2x AC/DC Plugs with 5.5mm socket for Arduino and Stepper Driver (Plug 1: Standard Arduino PS Capable of 7-9V @ 0.5-2A Output. Plug 2: Old Laptop PS worked for me needs to Output 12V and ~4A or higher)
  • 1x Corresponding Plug Connector for the 12V Plug
  • 1x 3.3K Resistor (Or close to)
  • 1x 6.8K Resistor (Or close to)
  • 1x 100 MicroFarad Capacitor
  • StripBoard (Or Matrix Or Proto)
  • 2x A4988 Stepper Drivers: Standard 3D Printer Part
  • 1x 40mm 12V Cooling Fan: Standard 3D Printer Part
  • 1x HC05 Bluetooth Module (Does not need to be master-slave compatible, only slave needed)
  • 2x Endstops: Standard 3D Printer Part


  • 8x M3 4mm screws (I preferred to use Allen Key heads)
  • 4x M3 Nuts
  • 8x M4 12mm screws
  • 3x M4 20mm screws
  • 3x M4 Nuts
  • 6x M8 12mm Screws
  • 4x 4040 Ali Extrusion Slot Nuts (Get type that match your Ali Extrusion)
  • 1x 400mm 4040 Aluminium Extrusion Cut to Length with Tapped Centre-holes (Or your own custom length)
  • 2 x 400mmx8mm Diameter Linear Shaft Rod: Standard 3D Printer Part (Length to match Ali Extrusion above)
  • 2x Linear Shaft Block (For 8mm Linear Shaft Rod with Bearings inside--Igus recommended for quietness) :Standard 3D Printer Part
  • Roughly 200g of PLA (Over Estimated with 5 perimeters/layers, 25% infill and room for a couple of failed prints)
  • 1x GT2 Pulley with Bearing:Standard 3D Printer Part
  • 1x GT2 Pulley for Stepper Motor:Standard 3D Printer Part
  • 1x 1m GT2 Timing Belt (If you choose to make longer or shorter version of this mount, you want 2.5x length you want to make it, so you have plenty of spares for mistakes):Standard 3D Printer Part
  • 2x Nema17 Stepper Motors (I used 26Nm Bipolar 1.8 degree 12V steppers--Most common type but others can be used so long as 1.8 degrees and sufficient torque. You want keyed shaft (Flat section)):Standard 3D Printer Part
  • Cable Ties Small

You should now be ready to go!

Step 4: How Much Will This Cost?

Breakdown of costs below (Using prices at the time of writing from Ebay, RS and AliExpress)

(Note it is expected that majority of these components can be found lying around from old broken products which helps save costs--e.g. toggle switch or equivalent switches etc)

It is also expected that if you are a 3D Printer Enthusiast, you will already have 95% of these lying around

  • Dupont ~£5.40
  • Heat Shrink ~£3.99
  • Toggle Switch ~£1.40
  • Strip Board ~£3.50
  • Power Supply Input Jack ~£1.20
  • HC05 BT ~£4.30
  • Endstops ~£1.50
  • Linear Rods ~£6.50
  • Linear Rod Block ~£2.50
  • Arduino Uno ~£4.50
  • A4988 Drivers ~£4.00
  • GT2 Pulleys Both ~£1.40
  • GT2 Timing Belt ~£2.50
  • Nema17 Steppers ~£15

Total for complete project with everything from scratch: £57.70

Total for most people with odd bits lying around ~£20

Enough prep, now lets get building!!!

Step 5: The Build: Printing the Parts

The first stage is 3D
printing the parts. I recommend 4 perimeters, 4 top and bottom layers with around 10% infill. All parts are designed so that absolutely no support is needed and as such, most of the parts should come out strong and clean. But use your discretion if you feel necessary.

My print settings are below, it is expected your printer is already adequately tuned and has a heatbed

Layer Height: 0.2mm

Infill: 10%-20% (I used 10% and was fine as components aren't under load and increased shells provide necessary strength)

Perimeters Shells: 4-5

Top Layers: 4

Bottom layers: 4

Support: None Needed

Brims: At your discretion but I didn't need them

Any further questions, feel free to ask. If you don't have access to a 3D printer, feel free to contact me as I might be able to help

Step 6: The Build: Electronics

1.Using the schematic included in the download files (and below), wire up the Arduino and bluetooth modules appropriately. It is advised you do this in protoboard then transfer to stripboard when you are confident.

If more experienced, just do straight onto stripboard.

Use Stripboard and Dupont Connectors for everything, it makes life much simpler.

I do have an apology on the schematics, they are correct, however I couldn't find the emblems I wanted to use on fritzing, if there is any confusion caused by the use of a componenet that looks slightly different to a normal endstop etc then please feel free to ask, and I will clarify, I will aim to update this shortly once I have figured how to do it, given this is my first time using fritzing.

Step 7: The Build: Sourcing the Power

1.Your next stage will be sourcing the Power Supply, for this I used an old laptop charger, you should find 2 plugs. One that outputs DC that is suitable for the arduino uno (7v-12v with 0.5A +).

2.I used a 9.5V 0.5A UK plug for the Arduino Uno (from an old telephone), although the official one is recommended if you have it.

Step 8: The Build: Preparing the Peripherals

  1. First we want to start by tapping the ends of the Aluminium extrusion you already cut to the same (or close to) length as your linear shaft rods. This is the centre hole highlighted in the image above. This is a M8 hole, so we want to tap it using an M8 Tap. For optimum results, use tapping fluid (machining oil) and slowly tap it, doing 1.5 turns forwards, one turn back until completely tapped and your M8 screws fit all the way in.
  2. Next we want to check the tolerances from our 3D Printed parts, using the CAD Parts Rod Holder End Motorised, and Rod Holder End Non-Motorised Parts, we want to make sure that our Linear Shaft rod fits snugly into it. If not, tickle it with a 8mm drill bit, but be careful not to go overboard such that it slides freely. We want it to be a tight push fit, which is should be depending on your printer quality.
  3. Handy tip for this is to only drill 2/3 of the way, such that it slots in nicely, and then is a super tight push fit for the remaining 1/3 of the depth of the hole. Hopefully you won't have to do this though!
  4. Now, before we assemble the main slide, it is useful to attach the stepper motors and GT2 Pulleys as shown in the images above.
  5. With the stepper motors and pulleys attached, we want to assemble the main carriage.
  6. Use the Sliding Plate CAD file, we may need to tap the holes for the linear rod blocks, making sure the bearings are already in place. To do this, we use a M4 Tap and screw the blocks on from the top side of the mounting plate to the underside.
  7. We want to attach the Endstops using the M3 screws and nuts to the plate such that it is spaced up from it by around 2mm. You may wish to also thread the connector through the holes on the plate such that they are nice and tidy.
  8. Next we want to attach the stepper motor to the Sliding Plate. We do so in the same manner.
  9. We Thread in our 2 M4 Countersunk 20mm screws which will be what your GT2 Pulley attaches to. (See above images)
  10. Then we carefully take the Motor Disk and Camera Disk CAD Parts, we want to attach them to the keyed shaft of the stepper motor. A nut should slide into the Camera Disk, which allows the screw to become a grub screw, applying pressure to the keyed shaft.
  11. Now attach the Tripod Mount to the slot nuts on the bottom side, and tap the centre hole with a 1/8 inch tap or you can just thread in your tripod mount thread if you don't have one, the plastic should tap fine.
  12. Once this is complete, we now have all the individual parts and can assemble the main slide.

Step 9: The Build: Assembling the Slider

  1. Now everything all fits together. We want to firstly make sure that we have put our slot nuts in.You want to put 2 in one slot, and 2 in the slot perpendicular to it. The orientation will be such that one set of 2 slot nuts faces downwards where we attach the Tripod Mount, and another set face horizontally outwards, where we will attach the electronics case.
  2. Next, slot the 8mm Linear Shaft Rods both into the Rod Holder End Motorised part, we will then attach this to the aluminium extrusion, using a single M8 Nut which will screw into the tapped centrehole on the aluminium extrusion, making sure to use a washer and where possible a star nut to ensure that it doesnt slip.
  3. Making sure we tighten that completely up, but not as so far as to crack the 3D printed part. (Unlikely but possible)
  4. Slot the Main Carriage with the attached Shaft Blocks (prev. section) onto the linear slide! Don't forget to do this!!!
  5. Next, we will attach the reciprocal Rod Holder End Non-Motorised and make sure that our linear Shaft Rods slot all the way in snugly.
  6. We want to test to make sure that the linear slide rods don't move about on their own, such that the bearings just slide nice and easily over the entire length of the rod.
  7. If you have friction whilst moving the carriage, your rod could well be bent, look at straightening it for the best results but if you have a sufficient torque Nema17, you should be fine.

This is the main slide now assembled. All to do now is put the electronics in its case, program the arduino, link up everything and attach the peripherals!

Step 10: The Build: Loading the Software

  1. From the Downloads File, open up Arduino IDE (If you have not installed, you can get it here or on the windows play store)
  2. Now, load the INO file, go to tools on the top bar, select Board: Arduino Uno, and then go to Port.
  3. Plug in your Arduino, one of the ports will now have appeared that wasn't before there, going to tools (Red Circled), port again, we select that port that is new.
  4. Now we go to tools, Programmer: AVR ISP for most official Arduino Unos, if it is a cheap Arduino Knockoff, you may have to try a different one, see where you bought it as usually have the name included, if not, you can go to sketch (Blue Circled), include library and search Arduino Uno and install a 3rd party one till you find one that works.
  5. Now we click the compile button (Highlighted Yellow/Green on image above)
  6. It should now all being well compile perfectly!
  7. Download and install the software for the app from my QR code, and try connect over bluetooth.
  8. If you have issues connecting, you may wish to try the following tutorial for help

Now we have finished installing all the software on the Arduino! We can quickly test everything works by plugging it in and running it!

Step 11: The Build: Attaching the Peripherals

  1. We can now finally attach our GT2 Pulley, slotting it over the GT2 Pulley on the Stepper motor, and round the reciprocal end pulley.
  2. Make a loop on one end, and tighten it using cable ties. We want to slot that end over one of the exposed 20mm M4 Screws we put in earlier on the Camera Carriage. This will hold one end of the pulley.
  3. Next we want to measure to make sure it is nice and tight on the other end, and do the same with a loop and slot it over the M4 screw.

Step 12: The Build:Preparing the Electronics Cae

  1. The next part is tidying the electronics, I would advise slotting in the power supply for the arduino before anything else.
  2. Now using those M3 screws, screw in the arduino, then put the stripboard alongside.
  3. Next, we want to attach the 40mm fan to the lid.
  4. The main leads going external move out the side to the slider, but everything else should fit neatly inside.

Step 13: The Build: the Finals

Congrats on getting so far, if you're at this stage, all you have left is to attach the electronics case using 2x M8 screws to the slot nuts. Screw on the front case, and take it for a test drive!

    Now for the fun!

    You have built my entire camera panning mount, hopefully it didn't take you as long as it did for me, but I thought I would just explain a few of the features on the app so you know how they work.

    First before plugging in, make sure that the screw of the motor plate touches the screw on the plate which holds the GT2 belt.

    When you open the app, first you want to click Select Bluetooth Device, make sure bluetooth is on, and then select the BT Name of the Camera mount from the list

    You now need to calibrate (Do this everytime you logon). This ensures that it adapts to the length of your slide.

    Now the features.

    Move to Manual Position: Use the Manual Move Slider/Pan Position sliders to select your pan location.

    Note: The Pan is limited to 120 degrees as this is most useful, can be changed in the Arduino Code: See comments

    Clicking Move to Manual Position: This then moves the camera to that position, where it will stay for 2 minutes before returning. This time can be altered in the Arduino Code.

    Speed Select Slider alters the speed of the system. Using that slider, then clicking Run From Settings then activates at this speed. The slowest speed roughly takes 5 minutes for a 400mm slide. Fastest Speed is around 5 Seconds.

    To run a Time Lapse, you can edit the length in Arduino Code, select that on the app, then click Run From Settings

    Quick Run, this just activates a standard quick run for if you just want to get a quick video.

    Clear buffer, if you want to repeat a move, you can click the buffer, then click what you want to repeat twice. This just clears the buffer connection between the BT and your phone.

Step 14: Thanks for Building!

I hope you enjoy my instructibles, this project has taken me a year to do, given it was my first ever proper arduino project.
If you make one of my camera mounts, I would love to hear from you and see your build and videos!
Please comment if you have any issues, questions or improvements for the instructibles to make it easier for others.
This is my first instructible so I would appreciate honest feedback.

Take care and Enjoy!


Arduino Contest 2020

Participated in the
Arduino Contest 2020