About: We love robots, DIY and funny science. JJROBOTS aims to bringing Open robotic projects closer to the people by providing hardware, good documentation, building instructions+code, "how it works" info …

Basically, this robot will move a camera/smartphone on a rail and “track” an object. The target object location is already known by the robot. The math behind this tracking system is quite simple. We have created a simulation of the tracking process here.

The camera, placed on a carriage as it moves, will point at the target object according to the info provided to the robot (that is: the target current location. Keep in mind that the robot already knows where the camera is).

The speed and start/stop actions are controlled from your own smartphone. For this, the smartphone has to be connected to the robot´s WIFI network.
As the speed can be adjusted as desired (from the smartphone), you can move the “camera carriage” as slow as desired, making possible to create TIME LAPSE videos.

Control APP freely available on Google PLAY or iTunes Store

Step 1: PARTs LIST

We have used common elements from the DIY/MAKER World in order to make this robot accessible and affordable.

Parts list:

  • 1.4 meters of GT2 6mm width timing belt.
  • 2x aluminium pipes or inox steel bars (5/16 inch or 8mm diameter) up to 1000 mm long
  • 2x 623zz ball bearing
  • 1x 608 ball bearing
  • 3x LM8UU linear bushing 24x15x8
  • Set of M3 6mm bolts
  • Set of M3 15mm bolts
  • 1x M3 nut
  • 1x M3 self blocking nut
  • 1/4 "Screw For DSLR Camera / case / flashlight
  • 1x 20 teeth GT2 pulley (optional as you can print it by yourself. STL 3D models here)


You can get everything on your own (most of elements are the same used in the B-robot, iboardbot,sphere-o-bot, Scara Robotic arm, Air hockey Robot...) or save the hassle ordering the CUSTOMIZABLE KIT from our shop (and at the same time you will be supporting jjRobots):

GET THE CAMERA SLIDER PARTS from jjRobots (Customizable KIT)

Step 2: Controlling the CAMERA SLIDER (free APP)

More details at the end of this Instructable. You can control this robot from your smartphone. Go to Google play or iTunes Store and download the Android or iOS App

Then proceed to the CONTROL APP USER GUIDE or scroll down to learn how to use it

Step 3: Elements Used in This Robot

If you already have the parts needed to create this robot you already have 90% of the items needed to create:

  • the Sphere-o-bot: friendly art robot that can draw on spherical or egg-shaped objects from the size of a ping pong ball to a large duck egg (4-9 cm).
  • The Iboardbot: The iBoardbot is a robot connected to the internet capable of writing texts and drawing with great precision
  • or the Air hockey robot!: A challenging air hockey robot, perfect to have fun!
  • TheB-robot EVO
  • , the fastest self balancing robot

All of them use the same electronics and ancillary elements

GET THE CAMERA SLIDER PARTS from jjRobots (Customizable KIT)

Step 4: 3D Printing All the Parts. Printing Time: 10-14 Hours (depending on the 3Dprinter)

PLA will do the job. When printing, set the wall thickness= 1.2 mm and infill to at least 25%. The 3D part "10 teeth gear" has to be printed with an infill of 100%. This is important. This element will have to transmit the power from the NEMA motor to the rotating platform. Place the elements on the printer´s heated bed with the orientation indicated above. Depending on your 3D printer (nozzle size, type of PLA, flow...) the ball bearings/ metal bars can be hard to insert into their holes/slots but do not hesitate to use a small hammer to push them in. But be gentle!. All the 3D parts models are available at Thingiverse

Step 5: Assembling

Basically, this is a rail with a platform that will travel on it controlled by an Arduino + 2 NEMA17 stepper motors. The two motors will be in charge of: 1) move back and forward the camera platform 2) pan the camera as it moves on the rail. The GOPRO/Smartphone adapter is optional, so you do not have to 3D print it is you are planning to use a regular photo camera. The total length of the rail can be modifiable. Depending on the weight of the camera (SLRs) you will need to use steel bars for the rails or just aluminium tubes. The 3D parts have been designed for 8mm (or 5/16 inchs) diameter round tubes/ bars. To up to 1 meter, the robot behaves smoothly, over that length and for a camera of more than 500 grams (1.1 pounds) the metal bar might bend under the weight while the camera cross the middle of the rail.

This is the robot 3D model. Click on PLAY a take a 3D look at it. Get back to this model if you have doubts about where to place an element.

After printing the robot´s part, you will need to remove the support triangle/flap just under the shaft. It was needed to print it correctly but not needed anymore. Clean up the burrs. You can use pliers if you want. A knife will work too.

insert the 3 LM8UU linear bearings as shown. You will hear a "click" once they are fully inserted.

Step 6: GOPRO / Smartphone Holder

This is the GOPRO/smartphone adapter: This element is optional. We have created it as the GOPRO´s has the time-lapse feature and it is quite straightforward to use. The slider will allow you to place any smartphone on top of the adapter no matter it thickness. There is a 6mm M3 bolt in charge of keeping the slider (under my thumb in the photo) in the channel. You have to insert it from below and through the hole. Then "capture" it with the nut that you have previously inserted into the "nut cap". See the photos to get an idea of what we are talking about.

Insert the M3 nut into the "blocking cap" and use a M3 6mm bolt

NOTE: Over-tightening bolts: The frame of this robot has been made of PLA plastic. Do not force the bolts too much into their places.

Step 7: Using a SDLR Camera or a GOPRO /smartphone?

Insert the camera screw and the 608 ball bearing as indicated.

Camera screw: this screw (1/4 " + ring) will fix the CAMERA (DSLR) to the rotating plate. It can be accessed from below using a screwdriver even when the 608 ball bearing is in place. To detach the camera from this plate you will have to lift the platform and unscrew it.

You will need 2x M3 15mm bolts to fix the GOPRO/Smartphone camera adapter to the rotating plate.

Step 8: Attaching the Motors

Now it is time for the motors. Fix this one to the MOTOR Legs using 4x M3 6mm bolts. Let the cable connector pointing to the right

Insert two 623zz ball bearings into the pulley and use a 15mm M3 bolt + self blocking nut to fix it to the Pulley Legs part. Once placed you should not feel any friction on this part.

Step 9: Placing the Timing Belt

  1. Insert the GT2 timing belt as indicated. Keep in mind that the total length of the timing belt will depend on the rails length you have chosen. With the KIT, we supply 700 mm long bars/ pipes.
  2. Fix the motor to the carriage like this, use 4x M3 6mm bolts for this. The timing belt has to be under the motor.
  3. Insert the 10 tooth gear into the motor axis. You might need to use a small hammer to do this. Remember to be gentle. This part will have to move the rotating plate on top transmitting the power from the motor. Do not push it completely into the axis.There must be a tiny gap between the gear and the carriage supporting ring to avoid friction.
  4. Insert the 20 tooth GT2 pulley into the motor axis and fix it using an Allen key. This element should as low as you can place it but always leaving a tiny gap between the pulley and the 3D part.

Step 10: Finishing the Frame

Insert the 2 metal bars/pipes through the carriage and into the lateral legs. Run the GT2 timing belt through the pulleys as shown and pass the GT2 timing belt

With the KIT we supply 1.4 meters of GT2 6mm timing belt for a maximum rail length of 700 mm. Remember that you can use any length for this robot: The control APP can handle it. We will show that later. To finish this part, Insert the timing belt into the dented "catcher" as indicated and cut the remaining but before, tighten it.

Step 11: Top Plate

Try to insert the top plate into the carriage´s shaft. If the shaft is free of burrs, it should be easy (but tight). You can leave it on top if you are not planning to attach a camera which needs the camera screw to get fixed to the rotating plate.

Step 12: Connecting Everything

Time to connect the motors. Depending on the orientation of the cable´s plugs connected to the DEVIA Control board, the motors will rotate in one direction or the other. That might be useful at some point, but by default, check how to connect them to the Brain shield. The stepper motor drivers (red modules) must be connected as indicated. This is important. The heatsinks (small aluminium pieces with a sticky pad on them) must be placed carefully on top of the black modules not touching any metal headers. Otherwise, you can create a short circuit and damage the electronics.

GET THE CAMERA SLIDER PARTS from jjRobots (Customizable KIT)

Step 13: Programming the Arduino Leonardo


Camera Slider latest Arduino code: CameraSlider_V5_M0

a) Install the Arduino IDE on your PC from here (skip this step if you have the Arduino IDE already installed) This code has been tested and developed on IDE version 1.6.5 and later versions. If you have a problem compiling the code, let us know

b) Download all the arduino files , extract the files inside the same folder in your hard drive

c) Compile and send the code to the DEVIA control board:

  1. Open your Arduino IDE
  2. Open the main code in /CameraSlider_V5_M0/ CameraSlider_V5_M0.ino
  3. Connect your DEVIA board with the USB cable to the PC
  4. Note: If this is the first time you connect an Arduino board to your PC maybe you might need to install the driver.
  5. Select the board Arduino/Genuino ZERO (native USB port). In the TOOLS menu->board
  6. Select the serial port that appears on the tools->Serial port
  7. Send the code to the board (UPLOAD button: Arrow pointing to the RIGHT)

uploadSelecting the right board before uploading the code

d) Done!

[space size="20px"]

Controlling the CAMERA SLIDER

Get the control APP for your iOS or Android device:

Then proceed to the CONTROL APP USER GUIDE to learn how to use it

Step 14: Control It From Your Smartphone

Download it (freely available) from Google Play (Android devices) or iTunes (iOS version)

Link to the USER GUIDE here (frequently updated)

It has been created to control, in a simple way, the camera slider. It will allow you to move the platform with almost any camera on top, with a predetermined speed. This speed can be modified in real time for cool video effects. By default (the limits can be changed in the Arduino code), the travelling speed of the platform can be set from 0.01 mm/sec to 35 mm/sec

Depending on your set-up you will need to adjust the RAIL LENGTH value: measure the total length of the rail the carriage can travel on. For example, if you are using 1000 mm metal bars, the available rail for the carriage would be around 800 mm (1000 mm minus the piece of rail inserted into the lateral supports).

In order to control the CAMERA SLIDER you will have to:

  1. Connect the Arduino Leonardo to any DC power supply (from 9 to 12 V). With the KIT we supply a 12V 1A power supply or a battery holder (9V)
  2. Wait 5-10 seconds for the robot to create a WIFI Network (called JJROBOTSXX)
  3. Connect your smartphone to that WIFI Network using the password: 87654321
  4. Then start the control APP (CAMERA SLIDER APP). NOTE: if you are not already connected to the robot´s WIFI NETWORK, the APP will let you know that
  5. Move the carriage (the plate where your camera/smartphone is attached to) to the motor´s end. From there, the camera/smartphone should be pointing to the side indicated in the scheme below. That would be the "filming side" for the CAMERA SLIDER
  6. For a tracking object travel, the camera has to be pointing to the target object. To the center of the object to be filmed. The robot will keep orientating the camera to that point during the travel on the rail
  7. Configure the control values as desired according to your needs. How to do it:
  • CAMERA-OBJECT DISTANCE (X): The distance from the center of the camera platform to the point where a perpendicular imaginary line from the object meets the rail

    NOTE: You do not have to place the camera platform by the very end of the rail, you can start from anywhere.

    The RAIL LENGTH value, will let the APP know how long the camera carriage will travel before start coming back to the original location. This value does not have to be the real length of the rail, just the segment in which the camera will swing back and forward continuously. Take a look at the image below: you can set the RAIL LENGTH value equal to 400 mm even when the REAL length of the rail is longer. Doing this, the camera travel will be restricted within a virtual rail of 400 mm. Keep in mind that the camera has to be pointing to the object before starting to move to track it correctly

    NOTE: Using the DELAYED START option you will have enough time to configure the CAMERA SLIDER ,START it and place the smartphone on the moving platform

  • Step 15: Useful LINKS:

    Microcontroller Contest

    Runner Up in the
    Microcontroller Contest

    Be the First to Share


      • STEM Contest

        STEM Contest
      • Role Playing Game Challenge

        Role Playing Game Challenge
      • CNC Contest

        CNC Contest



      2 years ago

      How much does this thing cost aprocimatly?
      Nice Instructable by the way.


      Question 2 years ago on Introduction

      Hi! Is the iOS version available yet? Also can this unit run along side a timing device and do time- lapses?



      Answer 2 years ago

      The APP will let you know the time it takes for the camera to travel all the rail length

      time travelling.png

      Question 2 years ago on Step 1

      Hi is the iPS version Available?


      Answer 2 years ago

      Not yet. It has been uploaded to the Apple store but it has to pass some tests first. We will post in our facebook page ( once it is online


      2 years ago

      Wow! Good job! I want one of those! :D