What’s a polargraph?

Polargraph? Polarshield? PolargraphSD? Huh?

polargraph is what I decided to call this drawing machine that I made, but it also describes the output. The machine is a simple device, that draws picture using a normal pen, some motors and some string. It is only just good enough to get the job done, and in keeping with this technical brevity, I’m going to spare you more explanations about how it works: The pictures tell the story better.

Polargraph / slow drawing show preview from Sandy Noble on Vimeo.

It’s called a polargraph because it uses a dual-polar coordinates system internally, rather than the regular cartesian system we (and computer systems) tend to use.

The mechanism is not wholly original: I have mainly taken inspiration from Hektor the spraycan robot, but in researching my machine came across prior art in the form of the AS200 drawbot and Harvey Moon’s drawing machine. And draftsmen will recognise this as a primitive, gravity assisted pen plotter. An awesome one.

The application that drives it from the computer is written in Processing. It decodes a bitmap and creates a map of the file using a polar coordinates system, recording pixel position, size and brightness. The hardware requests each pixel in turn, and renders it on the page using it’s own shading and movement algorithms.  You can also use it for plain plotter-type drawings, because it reads drawings in as SVG vector art files.  It’s not the most accurate plotter in the world, but it was good enough for Wes Nijssen to draw out a giant papercraft polarbear with.


The whole system is fairly technologically agnostic, I have written an instructable that shows how to put one together based on an Arduino microcontroller and an Adafruit Motorshield, along with a couple of stepper motors.

Polarshield? PolargraphSD?

Well, I’m glad you asked!  A PolargraphSD is the drawing machine I use myself, and am selling in batches.  It is based on an Arduino MEGA2560 board, with a custom designed and fabricated add-on board (called a Polarshield) that combines a pair of high current, microstepping motor drivers for reduced noise and increased smoothness, and a combination of an SD card reader and touchscreen LCD that means this machine can be used untethered from a computer.  The vastly increased memory means that new features, such as the norwegian pixel style, circular pixel and vector sprites are possible, and I’ve still got plans for lots more things to do with it.

The big sell.

You can buy full assembled, tested machines (just add a pen, paper and a surface to draw on), or parts-only “vitamin” kits that contain just the unusual parts.  I sell these things at the Polargraph Shop.  I’m not making my fortune off you guys, but I do take it seriously.  I really enjoy this project, and I think it’s a beautifully simple concept and design, it’s slow, but rewarding.

What’s in a name?

Polargraph is a particular brand of drawing machine. It is often used in a generic way to describe any of these kinds of machine, and I take that as a compliment to the ubiquity of the project, but it shouldn’t really be used except when referring to this Polargraph project.

It is not a generic name for a drawbot, and the term was not in use before this project began. Well, you know, except to refer to polar graphs.

15 thoughts on “What’s a polargraph?

  1. Pingback: Polargraph Drawing Machine | LED World

  2. Pingback: Polargraph Drawing Machine | Continuing Education News

  3. Pingback: Polargraph Drawing Machine

  4. Hey there Sandy…Andy?

    Polargraph guy.

    I’m building myself a kritzler/polargraph thing, and as far as hardware goes, I actually went with the arduino/pololu route, rather than an adafruit controller…would you know if your software would still work? Or would it just be a matter of changing the output pins in the arduino software? Or…would this require a whole work around of both the arduino software, and the polargraphcontroller program?

    I’m kinda new to the whole thing, and the drawing machines are relatively easy to start out with. Thanks for the help!

    • Hi Jimmy, the firmware needs a little tweak to use it, but helpfully, this has already been done by lanthan: http://www.polargraph.co.uk/forum/?mingleforumaction=viewtopic&t=21 has a link to his modified code. It’s actually not _quite_ as simple as just changing the output pins, because the adafruit shield has it’s own library, and that needs snipping out. But it’s almost that simple, and it works fine because the motors are all well wrapped up in the AccelStepper library. I’ve just got some pololus so I’m working on this too myself! Please let us know in the forums if your mission is successful! I think the next version of the kits will be Arduino Mega+A4988 based, so I’m keen to figure out any issues, electrical ones too.

      • Mega+A4988 sounds good to me, because with that I can build Polargraph from almost exactly the same hardware as Prusa Reprap i3 (which uses Mega 2560 and 4x A4988).

        I can also use NEMA17 motors, print the rest and basically have two machines for the price of one. That’s what I call the open hardware domination! :-)

        Anyway, what about Pen up / Pen down? Would you like to implement it using another motor (servo)?

        • The polarshield is based (originally) on a RAMPS board, so there’d be only very trivial changes required to use RAMPS to drive a polargraph machine. Change a couple of pin assignments. You wouldn’t get the LCD easily, but the SD card would work.

          Pen up/down should be easy enough too if you can find a PWM-capable pin that is spare on RAMPS. You _could_ implement a lift using a stepper rather than the servo, wouldn’t be difficult at all (code wise) but would require four wires and a heavier motor attached to the gondola. It isn’t something I’m interested in chasing myself.

          I’m getting tired of waiting for the i3 to mainstream, I’m debating about whether I can justify a mendel90 to replace my little huxley…

  5. Pingback: MAKE | Seb Lee-Delisle: Playing With Code

    • Thanks! The code uses the Accelstepper library to drive the motors, and that’s nice because accelstepper can talk to the adafruit shield (using the AFMotor library), or pretty much any other driver. So any driver that takes step and direction pulses will work ok. It’s all in the motor declaration.

      If you have a MEGA, then it’ll be easier because the polargraph_server_polarshield already uses step+direction directly with the drivers on the polarshield, and the Easydrivers interface in exactly the same way as those.

      If you want to adapt the standard polargraph_server_a1 to run on the uno, then you’ll need to change the motor declarations so they don’t use the AFMotor any more. Give it a shot, and if you have any problems, drop me a line, or post a message on the forum!

Leave a Reply