Pythagoras: Drawing Delta Robot

Pythagoras is a drawing delta robot. The goals for this robot was high speed and high precision pen work. OpenCV is used to vectorize images to send to the robot for sketching.

Current progress is on version 2.5. Drawing is successful and has high accuracy. The image processing program can tell the robot to either outline an image or shade it in.

Higher manipulator speed and accuracy using resolved rate path generation and Jacobians is in progress.

Potential further development includes using brushes instead of pens, a pen switcher for multiple colors, halftoning, and SVG support. More ambitious ideas include adding omniwheels on the legs so the bot can traverse large drawing areas.

Version 1
RC Servos. Easy to get working, hard to get precision.
Version 2
Currently in progress. Uses stepper motors instead of servos. More difficult to get working, but they are superior in controllability, accuracy, and speed.

Version 2.5
Beefier legs!

Raster mode enable!
Drawing a Pikachu, video taken in 3D by my friends at Lake Brantely High School. Part 1:
Part 2:

And finally, a time lapse video of a shading intensive drawing:


Microcontroller mbed with ARM Cortex M3
Motors Three NEMA-17 stepper motors
Gearboxes Planetary 5.18:1
Arm lengths 2.75" upper arm length, 13" lower arm length
Resolution At least 0.01"


All source code, Solidworks models on github:

See all posts about Pythagoras


  1. Came here from Hack-A-Day. Awesome robot. I like the omni wheels idea. You'd probably need a camera facing down to align the robot while moving...

  2. Came in from Hack-A-Day too. Nice build. Some cameras would be great addition, perhaps some outward facing ones to orient wrt room (fiducial tracking would be easy to augment a room temporarily).

    After those mods, I'd want to replace the pen with a marking laser :-)

    Keep up the great work.

    1. Hehe, I do have a 250 mW laser handy for marking paper. Maybe, once I get a hold of some laser goggles.

  3. Hi Aaron
    Very impressed by your lovely work. I want to try building your design to understand it a better. Do you have some more info on what stepper drivers you used and how you wired everyhing up? Please forgive my ignorance, I am an industrial designer, not an engineer. I would be very interested of later trying to build a bigger version of around 2 meters height from plywood – do you see fundamental problems of scaling your solution? And might you be interested in coming to Switzerland to give a workshop to our team? -->

  4. I used geared stepper motors from Phidgests [1] with driver boards from Pololu [2]. While it is possible to build the robot out of plywood, it doesn't seem to have enough rigidity at those sizes without adding structure. If making it out of wood, I would recommend planks of wood. However, if you have the tools, I think aluminum would be superior, since it would be significantly lighter.

    Other problems from scaling up include driving large motors precisely for accurate control. Once that problem is figured out, the high acceleration and deceleration possible with the delta robot design would require you to create a very sturdy base so it will not wobble and bend, reducing the robots precision.

    Let me know how your robot goes! I'm a college student in the United States, so visiting Switzerland, though it would sound like an amazing trip, isn't a likely possibility. But send me updates, and let me know if you have any more questions.


    1. Thanx for the quick answer! I am already cutting the ply and have ordered the parts you told me. Not sure that a large construction from plywood would be without hope, but let's go step by step. And I am pretty sure that I will have more questions indeed. In our school we have a model of inviting clever students from other countries as teachers, we got a tiny hostel for these, this week there will be coming ten architecture students from turkey, paying for their trip with a workshop they give us. Much more fun for all parties involved than inviting old guys like me!

  5. Hi, very nice job.
    For the arms-ball bearings Sarah Petkus has a brilliant idea. Take a look at


  6. hi, i also made this with lego but my problem is that , my pen Tip is not vertically straight at corners :(

  7. Hi Aaron,
    I am interested in working with high school students to build 3D printers. The local tech teacher says that is great for Fall 2014. Also, they have a robotics class and a robotics club after school one day a week.

    I found Sketchy by a guy in England
    I found some other drawing robots online.
    Your Github files look like they might be an easier way to get one up and running. Especially since I have three 3D printers at home.
    I saw you have versions 1, 2 and 2.5 but I was not certain of the version on your Github page.
    You have some great projects you have documented. Thanks for sharing.
    Any updates or suggestions on building a drawing Delta robot after you have spent some much time working on one?

    1. On my github, the firmware is for version 2.5, the solidworks model v1 corresponds to version 1, and model v2 corresponds to version 2.5.

      My suggestion would be to use proper photointerrupts to calculate each arm's home position (if using steppers) instead of silly inaccurate potentiometers. Since everything is nonlinear, any error would cause the end effector to move in curves instead of straight lines.

  8. Hello Aaron Fan. This is very nice job.
    You can send your circuit diagram, is not? Thanks!

  9. Hello Aaron Fan. This is awesome project
    would you like to send me the materials and circuit diagram of this project this a lot of help to me in my project. thanks

  10. I like it and I want to use this to show what is delta robot printer :-)

  11. Which program did you used to program the microcontroller ??