Screen Shot 2014-03-24 at 10.41.42 AM

Auto Squiggler window mounted drawbot build notes

March 24, 2014

My Auto Squiggler project was certainly made standing on the shoulders of others, but the particular techniques I borrowed and combined might be relevant to someone’s experimentation.

Physical build

For the physical build I stuck pretty closely to the Der Kritzler design developed and shared by Alex Weber.

Most of the parts Alex describes are pretty easy to find, a couple of exceptions: I found the hobbyist 3D printing world a pretty good source for toothed belt, I got my T2.5 belt from MixShop here in Canada. For window mounting suction cups I used Bondo locking dent pullers suctions cups (from Canadian Tire). They had plenty of suction power but no easy way to mount my motors. To mount I drilled a couple of holes through the hard plastic shell – carefully not puncturing the suction cup inside.

I designed my own laser cut pen holder. My design had some major balance issues and wasn’t better than Alex’s in any major way, so I won’t bother sharing the design at this point.

For markers I followed the excellent advice I got from Midoco art supply here in Toronto. I tried chalk based markers, as Alex suggests, but I also tried Sharpie water-based paint markers (medium point). I found the Sharpie markers gave a really strong, opaque mark – so I went with them.

The overall design for the system is fairly straightforward, but there are a load of details that feed into how well it works. One important variable I found was the distance between the belt and the window at the motors relative to that distance at the pen holder. Alex suggested about 35mm belt to window at the motors and 70mm at the pen holder. I found that worked well for me, earlier attempts had my belt almost parallel to the window and that made for a much fainter drawn line.


For reasons I forget, I decided that I would use the client software from Makelangelo rather than what Alex developed and shared for Der Kritzler. I had to make some minor mods in the Arduino code to take into account that I was using toothed belt and cogs rather than bobbin and thread. Overall it worked pretty nicely though. With hindsight I think I may have been trying to solve problems with the software change that were actually down to mistakes in my early hardware build and calibration. One important factor that I initially missed was that the starting position for the pen needs to follow the geometry that the software expects as closely as possible or straight lines it draws won’t be straight.


For Auto Squiggler’s first public appearance I decided to create landscape inspired imagery. Turning the topography of real hills and valleys into simple line-based images for Squiggler to squiggle.

I developed a ridiculously laborious process that took NASA provided altitude data and converted it into the GCode instructions that the Makelangelo software understands. It looked something like this:

1) Follow the brilliant Onformative tutorial on using NASA’s SRTM land altitude data in Processing;
2) develop a custom Processing sketch to take that data and convert it into 2D slices;

Altitude data sliced up in Processing

Altitude data sliced up in Processing

3) manually trace those lines into a DXF cad file (using QCad in my case);
4) generate a GCode file that Makelangelo can read by loading the DXF into CamBam and explorting an .ngc file;

A note on using CamBam to generate GCode instructions for Makelangelo

Open your DXF file in CamBam, select all the lines and go to CAM > Engrave in the menu. When you export the GCode instructions (CAM > Create GCode File) they will include instructions that move the tool (pen in our case) up and down as lines start and stop. The Z heights it is moving up and down to need to match the ones you setup through Makelangelo’s Adjust Z option. Do that by setting appropriate TargetDepth and ClearancePlane values for the engraving in CamBam before you export.

If I can help please ask

Obviously that is in no way a complete tutorial. I suggest that you follow Alex’s Der Kritzler instructions and use this as an additional reference. Be prepared to fiddle around lots and enjoy the output when you get some – watching these machines work is a lot of fun. If you have questions and I can help then I will:

I have half a plan to write my own client code for controlling Auto Squiggler. Right now it is pretty much a matter of dumping a pre-drawn file to the machine – much as if it were a printer. I’d like to have some more back and forth going on to take advantage of the performance like way this machine works. So maybe there will be more to come on this file…

Tags: , ,