Parts Required

  • 1x Arduino UNO
  • 1x CNC shield
  • 3x 28byj-48 Stepper motor
  • 3x Limit switch
  • 6x 7x40mm Springs (end to end)
  • 6x M3 nuts
  • 30x M3 screws
  • 3D printed parts
    • 1x base
    • 3x arms
    • 6x connecting rods
    • 3x parallels
    • 1x platform


The parts do not need to be printed with high quality but it helps.
Some of the parts of the robot are difficult to print because they are a sphere. When the print starts (depending on printing settings), the spheres do not have much to start printing on. After some experimenting, I worked out it was better to drop the part down into the bed by 0.2-0.3mm (Z=-0.2 or -0.3mm).
After the prints finished printing its best to file/sand the sphere and the sphere socket to make them smooth. Avoid taking too much off.

How It is Assembled

Starting from the top and working down the robot stating with the base. The base is where the motors and limit switches are mounted. The base will also be used to hold the robot while in operation. The limit switch will be used to HOME the robot.
After the motors and limit switches are mounted the arms can be attached to the motor. Ensure the arm is the correct way around with notch facing away from the robot.

Next is to assemble the connecting rods, the connecting rods are used to connect the arms/motors to the platform. Connect the parallel 3d part to the middle of 2 connecting rods with M3 screws, it will be best if you first drill the parallel 3d part with a 3mm to make the screw more smooth. The parallels will ensure the connecting rods do not rotate out of the sockets.
Next, add 2 springs to the connecting rods, 1 at the top and 1 at the bottom, going between each side. The springs will help the spheres of the arms and the platform stay within there socket.

After the connecting rods are assembled, they can be attached to the robot. 1 at a time, attach the connecting rod from the arm to the platform. I used a bit of graphite powder on the spheres and sockets to help them slide around easily. The first end of the connecting rods is easy to get in place, the other is not as much. you will need to force each side of the connecting rod a little bit apart and push it into place. try not to pull them too far apart, you don’t want to bend the part. Once in place, the connecting rod should stay in place, they could pop out when the robot puts them in tight angles.

The Controller and Software

The controller is an Arduino UNO with a CNC sheld. X, Y and Z Stepper motor drivers are used to control the stepper motors. Each arm has 1 stepper motor and 1 limit switch. The limit switch is connected to the corosponding axis pin and ground (if the stepper motor uses the X axis driver, then it will use the X limit switch)

The sotfware is below and requires 2 libraries, DeltaKinematics and AccelStepper. DeltaKinematics is used to calulate the forward and inverse kinematics of the delta robot. The AccelStepper is used to control the stepper motors. Both have links below.

Arduino Program: 
3D prats: 
Delta Kinematics library:
AccelStepper library:
Gcode library: