HackerGrant Project Report: Armed


The aim of project armed was to build an accurate miniature Robotic arm with machine vision based of the ABB industrial PalletPack robots, with the ability to attach different tools and apply it to different tasks.
I initially designed the Arm to be built using readily available tools.

You can find and follow the progress on github.
I have uploaded all the design template files as well as the Arduino code.

Design Overview

An arm of this design could have many uses, such as:

  • Sorting small components.
  • Miniature Pick and Place.
  • Playing Checkers, Connect 4 and possibly Chess.
  • Solving a Rubik cube.


Project Details:

  • Members: Skip Christian
  • Goal: Create a robot arm using readily available tools and hardware.
  • Biggest Challenge: The Inverse Kinematics algorithm that converts the Cartesian coordinates (XYZ) to the Polar angles of the joints.
  • Total Budget: $486 $571AUD
  • Total Time: 3-10 hours a week over the initial 13 week period and still on going.

Photo Gallery:

How It Works:

This Robotic Arm is designed with both the actuating motors located at the shoulder joint. The forearm is controlled via a lever to minimize the overall weight, required torque, etc. It utilizes 2 parallelograms to keep the end effector level to the ground through out the majority of it’s movement area.

The arm uses Inverse Kinematics to convert Cartesian Coordinates into the Polar angles required to reach the destination.


  • Being a completely new design and build there weren’t many resources I could turn to for guidance.
  • It may sound simple, but drilling a straight hole through tube stock has to of been one of the major issues I ran into. Even precise measuring and center punching holes produced enough error to be noticeable over a 30cm length of pipe.
  • Accurately knowing the Arms positions.

Prototype 1 issues:

  • Was belt driven using a GT2 timing belt with a reduction of 12t – 60t. The belts had a minor backlash issue so ramping the stepper speed up and down during movement was necessary.
  • I was using mechanical end stops and counting the steps to calculate the joint angles. This was fine until the Arm was fully extended and started missing steps and crashing into itself.
  • In the end the Nema 17’s I selected were not strong enough to be of any use, So I upgraded to ones with 100:1 planetary gear boxes and 10x the torque.

Prototype 2 issues:

  • Moving to the new steppers meant I had to change the base which made it hard to attach the end stops. I designed magnetic encoders to fit into between the 2 arms, The space was to small and one magnet effected both encoders.
  • I managed to reduce the magnetic interference with some Iron nails wrapped in shielding from an old phone. This bought it down to approx 2 degrees over the whole range of arm movement.
  • The shaft hubs were milled out of brass and over time the thread of the grub screw wore and finally gave out and rendering unable to move.


Although the arm currently isn’t in a working state I have learnt enough the the next design is already in progress. I plan to 3d print most of the joints which will hopefully increase the accuracy and enable me to place the magnetic encoders better. I will also include the end stops to stop the Arm being able to crash into itself.

You will be able to follow my progress here….


I have also listed My parts and costs of the first 2 prototypes.


  • Nema 17 Stepper Motors x 2: $40  (Was 4)
  • Nema 17 with 100:1 planetary gear boxes x 2: $125
  • Timing Pulleys and Belts: $25.50
  • Bearings: $18
  • Arduino RAMPS Control Board: $33.50
  • Power Supply: $24
  • Gripper: $35
  • Servos: $20
  • Pan & Tilt: $10
  • Bits and bobs: $20
  • Aluminum: $50
  • RPi2, Cam, PSU & SD Card: $90
  • Magnetic Rotary Encoders: x 3: $40
  • Custom Encoder PCB: $40

Total: $486 $571