Picture of Polargraph Drawing Machine

This machine, a variation on the hanging-pen plotter is a conspicuous and wilfully naive attempt to break out of the pristine, pixel perfect, colour-corrected space that exists inside our computers. It's a drawing machine, that takes a pen (a human tool) and uses it to draw in a singularly robotic way, with some grand results.

It doesn't draw at all like we would (though it could), and we would struggle to draw exactly as it does (though we could).

It can draw on things bigger than itself - the question is really "how long is a piece of string?" when it comes to working out it's maximum area.

It's easier to look at what it does, than to explain it, so just have a look.

Step 1: History

Picture of History

Well there have been lots of new drawing machines doing the rounds lately, there's a real thirst to see devices that leap out of the virtual into the
physical. For me, it's all too easy to produce digital things which are interesting - programming or mash-ups or virtual experiments are devalued because they are intangible, you can run a hundred, a thousand, a million variations in a day - it's the proverbial roomful of monkeys with typewriters. The output becomes disposable, it get's hard to see the value, the craft.

So 3D printers and other desktop manufacturing tools and technologies (laser cutters etc) have got more and more popular, it's hard to overestimate how much hunger there is for a tangible, physical, touchable, smellable product of all this clever-clever digital work.

So this isn't wholly original, check out this prior art for more inspiration:

Hektor - the daddy of all hanging drawing machines
Der Kritzler - the smartest one yet
AS220 Drawbot - the basis for mine
SADBot - Instructable for an automatic drawing machine on the same pattern by Dustyn Roberts

But this is the original Polargraph! The term is a portmanteau word invented for this instructable, and it has caught on. People who don't know their drawbot history often use the word to describe any hanging-v plotter, but it is actually means something very specific: A machine that runs the Polargraph software.

Mostly based on the success of this instructable, I started a little workshop making Polargraph parts, and the next-generation Polargraph gear (PolargraphSD). Couple of links below:

Polargraph website
Polargraph wiki and code
Flickr stuff

1-40 of 330Next »
jdavid2213 days ago

I can not configure

10baileys1 month ago

Hey! I love this project, its great! I'm just having a slight (I hope) problem with the software, I think I have installed everything, but when I press play this message appears. Any ideas? (:

Euphy (author)  10baileys1 month ago

diwald_CV_kit is a library that the controller code requires. Exactly as the error message suggests, you are probably missing it. Put it into your libraries folder, along with geomerative and controlp5 libraries.

http://www.instructables.com/id/Polargraph-Drawing-Machine/step11/Controller-software-install/ has the details!

10baileys Euphy1 month ago

Hi, i've tried that and it still isn't working yet :/ any other things that might be the problem?

Euphy (author)  10baileys1 month ago

Nope, the only thing that could cause that error (library could not be found), is that it can't find the library. Now, I guess you've put it somewhere, but maybe not in the right place. It needs to be in <processing sketchbook>/libraries.

Zhen ChyenL1 month ago

Hi, I got a Tower Pro mg995 servo but the it rotates only to 1 direction! I want to make it go back and forth to the initial position but have no lucks. I already test different ranges of rotational degree but couldnt make it. Any helps? Thanks.

Euphy (author)  Zhen ChyenL1 month ago
The control code for the servo motor is very simple, so there's not much to go wrong there. Could the motor be faulty?
Euphy (author) 1 month ago

Hi, hello, I come from China,

Arduino to send commands from the controller directly with the SD Card This method http://www.polargraph.co.uk/2012/02/state-of-the-art-tangle/

I did not get success

Euphy (author)  海阔凭鱼跃1 month ago

Hi, the blog post you linked to is the only real documentation for this - it isn't really a supported feature. It requires a Arduino MEGA. You will need to figure the rest out yourself, unless you can tell me what you mean by "did not get success".

Please post on the polargraph forum instead of here - the commenting system here is poor.

Address Hello polargraph forum can be made about it

Hello, I'm from China

I would like to ask you a few questions arduino Uno there can also directly read queue commands directly from the SD card in order to draw from their own controllers

Euphy (author)  qu10722470691 month ago

Reading from the SD card requires an Arduino MEGA, as here


Just add an SD card from the computer controller will be able to continue drawing

Lemo_狸猫1 month ago


Hi, hello, I come from China, very like your robot, I am a UI designer, don't understand the procedure, but step by step down, my figure is vector graphics, but has not solved the problem of disorderly line, can when drawing a moderate amount of shapes to pen up automatically?

Euphy (author)  Lemo_狸猫1 month ago
Hi, I'm sorry I don't really understand what you mean. It looks like your drawings are working fine, but you don't have a pen lift servo motor fitted?

If it is fitted, then it is just not lifting the pen high enough?

ChristianE22 months ago

do you think that it will work on android?

Euphy (author)  ChristianE22 months ago
Definitely not.
qu10722470692 months ago

Hello Windows8.1 control software control software crashes often generated when the queue is often stuck how to solve this problem

Euphy (author)  qu10722470692 months ago
Seriously, this could be anything. The app is exported from Processing 1.5, so you can try googling for problems with exported processing apps. The problems I've had with the controller have usually been generic problems with processing, java environments, that kind of thing.

alan.phan12 months ago

Hi Euphy,

What does it mean by "Have added MEGA as a compilation target" in


Does that mean I can upload "polargraph_server_a1_adafruit_v1.cpp.hex" to my mega using "xloader"?

Euphy (author)  alan.phan12 months ago
Hi, no, the precompiled hexes are for regular Arduino UNOs.

The note refers to these lines https://github.com/euphy/polargraph_server_a1/blob/master/polargraph_server_a1.ino#L35-L41 that allow you to compile for the MEGA, and access a couple of the features that don't fit onto an UNO.
AxelandsW2 months ago

Hello euphy.

Im litterally in love with this machine, i am actually going to do this to make some art for my institution, i wonder does the pen lift if i use images/vectors ? (not including the beginning and end of the queue) .

im currently getting the 3d printed gears sometime this week and im going to finish this proyect, i will ask if i find any issues, thanks for your work

Euphy (author)  AxelandsW2 months ago

Thanks, no problem! The pen lift is definitely required for the vector drawing stuff. It's less essential for the bitmap work, because that is continuous anyway.

Good luck!


AxelandsW Euphy2 months ago

This Is Comming Up Great!... Though... i have this problem where , even if fill the whole board with an image, it cames out REALLY SMALL like an 1:10 Ratio, searching the forum i have seen that increaing weights might help this...

sunfffd2 months ago

Hello! Thanks for all the details.

I quickly hacked around with some hardware on a whiteboard, while i was trying to draw a square image, the output turns out rectangular (width is larger than height). How can I correct this?

I'm using two 200 steps motors with a 40T 2GT belt pulley (~24mm diameter), mmPerRev set to 70mm. And also I have set the step multiplier to 2.

Euphy (author)  sunfffd2 months ago
Hello, you've describe quite a general symptom that can have more than one cause, and I don't think you've given enough information to be able to diagnose it:

What motor shield?
What step type?
Is the width correct?
Is the height correct?
Is the position correct?
Why is the step multiplier changed?
Did you also change the stepsPerRev?
Why is the mmPerRev not 24*3.14 (75mm)?
sunfffd Euphy2 months ago

Hi! Thanks for the help!

I'm running UNO with Adafruit motorshield v1. All with default libraries (AFmotors)
I didnt change the step type (actually I cannot find the place to change it)

The width and height should be correct. I have setup a new test with step multiplier set to 1 and stepsPerRev set to 400, also with 75mm mmPerRev.

The output is much better now. But it seems the proportion of the drawn image is still a little bit off (the height is still a bit short).

Screen Shot 2015-06-15 at 11.39.02 pm.pngScreen Shot 2015-06-15 at 11.38.55 pm.pngIMG_3599.JPGIMG_3598.JPG
Euphy (author)  sunfffd2 months ago

Is the position correct? Use ctrl+I to show the "INFO" and that shows the mm coordinates (Machine x/y mm...)
Is the mmPerRev correct? I mean have you measured it or just calculated it?
What's with the jaggedy line leading from the home position?
Is the home position correct? Measured from the line between the two axes of the motors?

Remember you can use "draw outline selected" to draw the outline of the selected area, rather than waiting to draw the whole image. It's faster.

sunfffd Euphy2 months ago

The belts tends to skip when the motor is going to travel for a long distance.
I have reduced the motor speed from 600 to 300 and it seemed to solve the problem! It got pretty accurate now, thanks! :D

Photo 18-6-15 2 57 38 am.jpg
Euphy (author)  sunfffd2 months ago

Oh nice and square!

alan.phan12 months ago

Is it just me or are my l239D chips really hot on the motor shield? is this normal? I'm running on 9V 2amps plugged into arduino Uno.

Euphy (author)  alan.phan12 months ago
It might be, yes, depends on how much your motors draw though - the L293D is rated to drive 600mA motors, so if yours are pulling down more, it'll get hot.

https://learn.adafruit.com/adafruit-motor-shield/power-requirements has more information.
alan.phan12 months ago
just want to say thank you for your help. Love your detail in your instructable and your dedication in answering questions after such a long time.
alan.phan12 months ago

If I want separate power to the arduino and a separate power to the MotorSheild V1. Do I need to remove the "jumper" on PWR on the motorshield?

Euphy (author)  alan.phan12 months ago
From the motorshield documentation (https://learn.adafruit.com/adafruit-motor-shield/power-requirements):

"If you would like to have 2 seperate DC power supplies for the Arduino and motors. Plug in the supply for the Arduino into the DC jack, and connect the motor supply to the PWR_EXT block. Make sure the jumper is removed from the motor shield."
gliuzzo2 months ago

I have a fastidious problem. I attached a servo and when I try "Pen lift" and "Pen drop" they work perfectly. but if I click these commands after "Set home" the controller shows "BUSY C14, 180"

Euphy (author)  gliuzzo2 months ago
Hello, that is a weird one, does anything else work after you have done your "set home"? Can you drive the pen around with "move to"?

gliuzzo Euphy2 months ago

I don't know because I resolved it. The power supply didn't have enough Ampere..

GowthamV23 months ago

i can't get the software running xloader says upload failed and even the polargraph controller doesn't open up. Somebody help !!!!!

i'm using ATmega 328 arduino clone

adafruit motor shield v1

windows 8.1

1-40 of 330Next »