Polargraph Stockholm

Patrick Wagner designed, organised and ran a workshop at the Royal Institute of Art Stockholm, using Polargraph machines to create beautiful marks on flat surfaces. Two brand new PolargraphSD v3.0 machines joined their lineup, and it was co-hosted by Christian Bazant-Hegemark.

You’ll know Chris from the Polargraph forum and also from his documentary series On Doubt. Patrick is a printmaker and has ran workshops with the Polargraph at the Royal Institute of Art Stockholm a couple of times already, but this was the most focussed so far. They are both creative visual artists in their own right.

Explaining the magic

This was a session for an international crowd of people who are practicing artists or also educators in the fine art field, to learn about what a drawing machine could bring to their process, and they had a great time making some wonderful marks. I was so pleased and excited to see the pictures coming out of that week long session, and glad to see that two fresh PolargraphSD v3.0s worked great, alongside a cast of existing machines. Seeing what happens when the tool is recognised for what it is, and put into the hands of people who value the act and the process as well as the outcome is absolutely thrilling!

Drawing with bleach onto fabric

Discussing the workshop with Chris and Patrick was also seriously enlightening, it collapsed a lot of waves and really clarifies my thinking. When I don’t talk to people much, my mind runs away into little cul-de-sacs where I’m making decisions without much information. I used to be the customer myself, after all, I built the machine for myself to do my own work as part of my own process. Now however, I don’t use the machine much for creative work, and so I’m easily disconnected from “the user”. Workshops like this, along with the advocacy from experts like Patrick and Chris are so useful. I had ideas for a bunch of features that I’m not going to take further, and learned ideas for a bunch I will. Unglamorous stuff like “longer power cables” or “a pause button that works”.

One of the things that often introduces a tension into my thought is imagining that buyers just want a plotter, or just want something quick, or just want something easy to understand. It’s easy to get into that thought pattern, but it does you all a disservice, and it runs quite counter to the ethos of the Polargraph. It’s a luxury to have an principled stance in commerce, but I think that’s really one of the things that makes Polargraph different to other kits. I’m simply not that interested in Polargraph being a general-purpose, high volume, fast and perfect machine that does repeatable, sharp, registered editions. It’s never going to be that. It is simply the wrong process if that’s your goal.

The lines in between are the interesting bit

While this sounds like making excuses for sloppy engineering, it isn’t. Entirely. The truth is that the quintessential Polargraph artwork is full of characteristic squiggles, blobs and patterns. It doesn’t need to be brilliantly engineered. Like Chris wonderfully summarised:

“… these artists are OK with a process taking time, with fine-tuning sometimes going wrong, with stuff not working right away. While it can be frustrating as well, artists also often benefit from such mistakes (a pen drying up during an overnight print; a badly-positioned gondola resulting in the drawing not being perfect on the paper, etc).
So I think that while every artist would always say “make the tool perfect!”, this isn’t actually what would benefit them.”

Getting news of this workshop was such a terrific validation and a glorious piece of news that really helped my bring my full enthusiasm to the launch of the new PolargraphSD v3, which I’m finally getting some reliable stock on (see here for that: https://polargraph.bigcartel.com/product/polargraphsd-v3-0-full-assembled-kit).

Patrick Wagner is blackheartpress on most social media sites:

Christian Bazant-Hegemark just has his own name across the internet:

Chris also creates the On Doubt series of interviews and vlogs, which I love, they look at the process and background for a load of really interesting and exciting creative people:

Thank you very much to Patrick and Chris for running such a good event, and thank you extra very much for the folks who attended and helped inspire me to keep building the Polargraph.

How to upload new firmware to the PolargraphSD v3.0

This is for a PolargraphSD v3.0, that’s based on the ESP32 microcontroller.

I’ve switched to using PlatformIO with VSCode as a development environment for PolargraphSD. Although the Arduino IDE is ubiquitous, PlatformIO allows me to use a best-of-breed IDE like VSCode or Atom. I use VSCode because I had a couple of problems with Atom.

PlatformIO is an extension that interfaces with microcontrollers, and manages libraries automatically in a more mature way than Arduino IDE.

There’s a guide to compiling the code using PlatformIO and Arduino IDE in the project wiki: https://github.com/euphy/polargraph_server_polarshield_esp32/wiki/How-to-build-the-firmware

Uploading precompiled binary files

I will periodically include a compiled binary in the project, which you can use if you don’t want to go to the trouble of dealing with IDEs and source code and compiling it yourself.

The project binaries folder (https://github.com/euphy/polargraph_server_polarshield_esp32/tree/master/binaries) contains four files which should be loaded into four memory addresses on the ESP32.

| Address    | File                     |
| 0x1000     | bootloader_dio_40m.bin   |
| 0x8000     | partitions.bin           |
| 0xe000     | boot_app0.bin            |
| 0x10000    | firmware.bin             |

You can upload these files to the ESP32 that’s inside a PolargraphSD machine using a few methods.

ESP32 Flash Download Tool for Windows

The easiest for people on Windows is to use the ESP32 Flash Download tool that looks like:


You might also use esptool, which is a lovely python tool that does the same thing. It’s what most toolchains use because it’s command-line driven, and cross-platform. You’d use it with a command like this:

esptool.py --chip esp32 --port "COM9" --baud 921600 
  --before default_reset --after hard_reset write_flash -z 
  --flash_mode dio --flash_freq 40m --flash_size detect 
  0x1000 bootloader_dio_40m.bin 0x8000 partitions.bin 
  0xe000 boot_app0.bin 0x10000 firmware.bin

all on one line, and once you’ve changed COM9 to the name of your serial port.


When the tool connects, it sends a message to the ESP and waits to be invited in. It prints a little progress bar like this while it does so:

If it gets to the end of the line then it’ll time out. Try that a couple of times, but if it doesn’t take on it’s own, use a cocktail stick to hold down the little BOOT button next to the micro-USB connector, until it bumps into a upload mode.

Press reset to get back running again!

Well that happened fast

I posted a note out to the mailing list (http://eepurl.com/dhVafP to add yourself) announcing that the first eleven machines were in stock (https://polargraph.bigcartel.com/), and within two hours they had all been claimed!

I was amazed and encouraged and excited, because I was rather expecting that most of you would have given up waiting after getting almost a year’s-worth of “maybe next month” from me… So I’ve got a few left of that first batch still to pack up and post out, and then I need a bit of a pause to wait for some more lasercut parts to come in (congratulations to my lasercutting lady for her new baby – I can’t really complain too much about that delay!).

I got a big shipment of power supplies earlier this week and have half a dozen machines-worth of parts absolutely ready to go, bar acrylic cases. I’ll list those as soon as I can, and send a note out on the mailing list to those who have ticked the “tell me when you have stock” box.

Subscribe to the mailing list to be notified. If you’ve missed out this time around, please be patient. I feel very confident in this new design.

Software updates

The machines are shipping with firmware v2.0.1 onboard. This is more-or-less feature complete, matching what the old MEGA-based PolargraphSD could do. The main thing missing is the Norwegian Pixel style.

I’ve since worked up firmware v2.1.0 which reinstates the Norwegian Pixel style and also adds menus and buttons to the onboard touch interface to change machine size directly. It can also change the page size and position. This doesn’t really do anything yet, but I’m going to put a bit more thought into how the machine gets used in practice, hopefully helped by my beta testers Patrick (Wagner – Blackheart Press) and Chris (Bazant-Hegemark http://www.bazant-hegemark.com/) who will be testing this out in a workshop for The Royal Institute of Art Stockholm soon.


Since starting shipping I’ve already discovered an irritating issue where a 160 second pause randomly appears while drawing. It seems to be limited to USB traffic (I mean it doesn’t happen when drawing from SD card), and it doesn’t actually crash, it just stops to think for a couple of minutes. I’m sure this is a timer overflow or something like that, but these microcontrollers are hard to debug. That’s my number 1 priority because It Is A Stinker.

The future

Current roadmap:

  • Able to set up and specify a machine fully using the touch UI
  • Use millimetres to describe all dimensions (uses an odd mixture of mm and steps at the moment, which makes it very dependent on the physical motor setup)
  • Integrity checking: Emit warnings when the machine that’s specified in the controller doesn’t match the machine that is connected (this mismatch is the source of a lot of problems)
  • Specify and start drawings from raw image format rather than using the controller to build a queue first
    • Bitmap format drawn using norwegian style (for instance)
    • Vector drawing from raw SVG (but how to deal with shading/fill?)
  • Endstops for self-calibration and encoders for reliable long-term drawing

Subscribe for updates: http://eepurl.com/dhVafP