Let's Make Robots!

AX-12 Robot Arm

Draw numbers of the winners of the LMR Donation


This is my competitor for the LMRv4 Donor Appreciation Robot challenge. Using 5 Dynamixel AX-12+ Servos and an Arduino Mega. Programming has been done through Pypose, part of the Arbotix project.


5 Dynamixel AX-12+ servos has been used to build the robot arm and gripper. The arm has 4DoF and the gripper 1DoF. An Arduino Mega board has been used to control the servos. Only UART1 (RX1,TX1) are needed to control all servos. No external hardware is needed to attach the servos. The gripper is made by a claw from the local home depot. The idea has been lent from the Make project Teleclaw.


There is no real programming needed. The Pypose sketch from the Arbotix project has been used without any modification. You can create poses very easy using the Pypose editor. Also sequences (running different poses time controlled) can be created with a few mouse clicks.

Update 2012-04-30:

This is my actual setup. Nothing has changed on the robot arm. A bowl with 140 wooden dowels has been used for a sample drawing. Each dowel will get a unique number from 1..140 or whatever the actual number of contributors is. No detection of invalid drawing so far (if the gripper gets none or more than one dowel). The robot arm is doing some kind of stirring now, before the drawing. But it doesn't work well, the bowl is moving more than the dowels. The 2nd video shows a sample drawing 5 out of 140. It takes 7 attempts to complete. 2 failed attempts.

Sample numbering of a wooden dowel.

Update 2012-05-04:

The winners of the LMRv4 donation marathon has been drawn. I couldn't show the drawing live at the RobotParty, but a prerecorded video has been showed during the hangout. Spacial thanks to Andrew 'inoblegnome', Erin 'RobotGrrl', Nils 'NilsB' for their efforts and all others that gave me great tips to complete this challenge.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

That is one elegant arm! One very nice electro-mechanical design. Its good someone knows how to do that (I don't!)

Just one question. Why didn't you use a FEZ controller? You said your system doesn't need programming (an excellent reason to use the systen you did), but just imagine what a FEZ based system could have done. (Something to think about in the future.)

(Hey, its  you guys that turned ME into a FEZ fan, and I am sure glad you did!)

Thanks. Maybe there is a misunderstanding. The term no programming needed means, that I don't have to write a program by myself. You will need the Arbotix firmware which includes a sketch for the Arduino to make it work. These sketch works out of the box without any programming. It is just a router for the messages from USB serial to Dynamixel serial.

Not sure if this will work on the FEZ too. You ill need to rewrite the Arbotix library to run on a FEZ device. One problem I see is a proper way to disable the UART transmitter after sending a request to the servo. In Arduino language this is easy, because you have full access to all UART registers. On FEZ side this is hidden by the NETMF framework. You can disable the transmitter, but you don't know if:

  • all bytes where send
  • how long it takes to disable the transmitter. If the servo responds too early, this could fry your transmitter pin. Or at least you will need some extra hardware.


With all that, I would definitely stay with the hardware you are currently using. 

It is one awesome looking arm (better than I have seen in kit form). Great job!

(I just hope you can get back to a FEZ project soon! More of us are becoming FEZ users and you help to make a strong group.)



For this project, the Arduino Mega is the best choice because of the limited time I have. But it's good to know other controllers.  Who knows, for the next project FEZ device could be the better choice.

Nice work RobotFreak, that gripper looks really good.

I see you're communicating to the servos directly from the Arduino - how did you go about connecting the RX/TX lines together for the half duplex mode?

Thank you Telefox. The RX/TX lines are simply tight together. The Arbotix firmware is doing the job to disable the UART transmitter after sending the data to the servos. Because the servos act as slaves they will never send any data without a request from the Arduino. That works great without any issues. But there must be done a simple modification on the Arduino core library to make the UART receiver work at 1 MegaBaud.

Nice work, RobotFreak - very "robot", very fantastic, way cool :D

Cool idea to select winners!

This is looking great!

A low tech fix for the mixing is to secure the bowl to the table with double sided tape or something similar.

Very nifty little arm, great work!