Polargraph, how I did it

Recently I came across polargraph project. I found it interesting, so I decided to build my own Polargraph.

polargraph

Messing around with Arduino
It is based on Arduino platform and after a bit of study of Polargraph sources and corresponding libraries I felt like porting to another platform would be more than difficult, so I decided to keep with Arduino, though it isn't my favourite platform. Since that day I thought Arduino is simple and open platform to home builders - it could be back in that days, however today it seems to be more for "buy it and don't care how it works" guys.
There is a lot of hardware Arduino platforms, sometimes different in subtle details, with poor or no documentation whatsoever and it "just works". To find out which bootloader actually works could be quite challenging. However I found combination of bootloader and fuses settings that work, even with huge binares as Polargraph's ones.

fuses

Screenshot from AVRStudio 4
Bootloader I found to work with Arduino "IDE" is at the bottom of this page.

Polargraph hardware
I had to print out schematics of motor shield (PCB is "shield" and source is "sketch", now this is what I call surrealism) and Arduino itself to find out how to connect it on protoboard. It was tedious work, but after all I managed to do it and it seems to be correct.
hw

I redraw it to Eagle and created small board with SMD components, however for testing of Polargraph I'm still using the protoboard version, si " didn't verify the Eagle one. You can download the Eagle package at the bottom of this page.

Polargraph software
Currently I'm using SW version 1.66 that works, except of moments when it doesn't work and locks up randomly. Because this lock-up can destroy whole drawing taking few hours, I decided to use it as little as possible.
Software basically loads the image and breaks it up into list of small segments to be processed with Polargraph hardware. Fortunately, there is option to export this list into text file and process it later. For this purpose I wrote simple software, so I use original Polargraph SW just for setting home position and processing of queue to be exported.
Software itself is quite intuitive once you get used to the GUI.

Queue processor
This is simple software I wrote to process Polargraph queue and emit commands to hardware, as I found original Polargraph software unreliable for this task.
You can build it under Linux as
gcc -o t qe.c
and then use it
./t <serial port> <input file>, for example
./t /dev/ttyUSB0 inp
where /dev/ttyUSB0 is path to serial device I connect Polargraph hardware to (USB-RS232 converter with FT232 in my case) and inp is ASCII file containing queue exported from Polargraph software.

Drawing table
I built cheap and simple drawing table, made from piece of MDF and some plastic parts I built using drill and needle files. I spent most of the time making the sprockets for beaded cord.
You better buy it from author of Polargraph, but I was not that patient to wait few days for delivery.

Results
Yes, it works as expected, after a bit of trial and error.

result

I'm drawing only small pictures, as my drawing table is not very good yet,.


Polargraph hardware in Eagle format
bootloader I used in Polargraph, see fuses setting above
Queue processor
link to youtube video
link to picassa album





Updated 10.12.2013
Back to topics