Programming examples for the µArm robot arm.
Switch branches/tags
Nothing to show
Clone or download
Pull request Compare This branch is even with 46bit:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

µArm Developer Quickstart

The µArm is a great bit of hardware, but since shipping the software has let it down. The official software isn't readily usable to kickstart your own programs. This Quickstart contains several ready-to-hack programs that will get you started immediately.

This is an unofficial collection of software, intended for experienced, cautious hackers. µArms are easy to break by misuse of the servos and the current firmware doesn't do much to prevent such harm.

Solving the Tower Of Hanoi

Tower Of Hanoi in Progress!

This used ./bin/hanoi - details below.

Setting up the µArm

Make sure your µArm servos at in the correct position shown in the construction guide. They will rapidly burn out if not.

  • Install the FTDI drivers on your computer. These are needed for the integrated programmer on the Arduino.
  • Install the Arduino software.
  • Add the firmware/UF_uArm libraries to Arduino, and copy the contents of firmware/arduino.txt into your Arduino code editor.
  • Connect your µArm to power and your computer. If this is your first time connecting it will emit a very loud continuous beep.
  • Select the correct port in the Arduino software menus for your µArm.
  • Upload your Arduino software to the µArm. It should stop beeping once this is complete.
  • Hold the front µArm button until it beeps. Immediately push the rear cylindrical joint all the way down. Then pull the µArm 'hand' all the way forward. Now hold the front button again until it beeps.

Controlling your µArm

I suggest placing the µArm on a flat, smooth surface. Clear the surrounding area of anything you don't want to get knocked over.

Edit the serial port in each .c program. Run make to build the provided demo programs into ./bin/test, ./bin/hanoi and ./bin/uarmin.


This test program just moves your µArm about a bit.


This can be used to solve the Towers of Hanoi, if you have a pile of 3 objects to place.


Pipe commands to the stdin of this program to forward them to the µArm. We've used this to control it with an Xbox controller.

Command format for ./bin/uarmin

Commands must be formatted like 30 120 180 0 0 and separated by \n newlines. Each integer corresponds to:

  • Arm Rotation in degrees. Ranges from -90 to 90.
  • Arm Stretch. Ranges from 0 to 210.
  • Arm Height. Ranges from -180 to 150 but values below 0 will go through your table.
  • Hand Rotation in degrees. Ranges from -90 to 90.
  • Gripper. Set to 1 to pick up an option, 0 to release.

I suggest leaving 1-2 seconds between commands to ensure previous movements have completed.


There's a lot of problems with the official firmware, a quick list here. I aim to build a new firmware that resolves many of these issues, and would love contributions to this Quickstart in the meantime.


The µFactory team have done a great job designing and shipping the µArm.

Scott Gray wrote up the useful uArm Serial Protocol Manual.

Tod E. Kurt produced the arduino-serial library these programs use to reliably talk to the Arduino over Serial.

This unofficial µArm quickstart was made by Michael Mokrysz with the help of others at University of York HackSoc. All contents except the firmware folder are licensed under MIT.