All New Polargraph on the way!!!

Polargraph on the way!

Polargraph on the way!

A little while ago I purchased a Polargraph kit from Sandy Noble and now it’s on the way!!!

Sandy is responsible for having put together the best instructions for building a Polargraph/drawbot anywhere on the web.  Sandy’s latest kit uses an Arduino Mega clone, a shield specifically designed by Sandy to provide all the Polargraph functions, two StepStick motor drivers, an SD card slot, socket for an XBee wireless module, connections for endstop and servo support, and – best of all – an LCD touch screen interface.

While my own DrawBot was built entirely from off-the-shelf parts, I’d like to make it really polished.  At the moment my DrawBot does not look like much.  It is two motors bolted to a chunk of plywood with some circuit boards in a plastic holder which is duct taped to the chunk of plywood.  It works and is as reliable as the PC operating it, but it is far from pretty.  Stay tuned for some new design ideas!

Default Series Title

Maze Code + Polargraph?


My RSS feed for Slashdot brought my attention to an article on Slate.  The Slashdot summary stated:

This Slate article talks about a single line of code — 10 PRINT CHR$ (205.5 + RND (1)); : GOTO 10 — and how it manages to create a complicated maze without the use of a loop, variables and without very complicated syntax.

Even though that “one line” of code really is two lines and it really does use a loop, that short string of code is still very interesting.  While the way the code generates a maze isn’t immediately intuitive, it becomes obvious once you watch a bit of the video above.  All that code does is randomly kick out a forward slash or backward slash.  Once they wrap around to the next line, they start to form what looks like a maze.

As a little exercise I created something similar using PHP.  To make that work I had to use a fair bit of CSS to make it look decent.  In any case, it occurred to me that this would be a wonderful project for a Polargraph! Draw a random forward slash or backslash, get to the end of the line and make a bunch more on the return line.  How awesome would a huge paper roll of nothing but a giant maze look?

I think I may have found a project cool enough to show off at Maker Faire.  :)

Default Series Title

Why do DrawBots draw on walls?

A wall crawler - on the floor

A wall crawler – on the floor

A commenter named Ellison left a deceptively simple question on my first post in this DrawBot series.1

Ellison:  Why do it on a wall? Why not a drawing robot that draws on a large piece of paper on the ground? I think you’ll get better results from that.

I think there are a lot of good reasons reasons – some aesthetic, some technical, some practical – for having a DrawBot that draws on walls (or other vertical surfaces).

Aesthetically, I really like having a DrawBot that draws on vertical surfaces.  When placed in the room or an adjoining room, I can watch it scritch-scratching away at an enormous drawing.  In much the same way a snail’s meandering trail can be captivating, a DrawBot working out a TSP single-line-art drawing turns an apparently meaningless series of turns into a mass of scrawls that resolve into a work of art as soon as you take a step back. 2

Technically, the DrawBot is an exceedingly simple device.  You could build it out of little more than Arduino, a motorshield, two motors, string, a pen, and whatever you might have lying around.  Much of these pieces you could probably even scavenge for or salvage from other things.  In fact, only the Arduino and motorshield are things you wouldn’t be able to dumpster dive for.  The device works by moving the two motors in concert, such that by varying the length of string reeled in or out by a given motor is used to move the pen in an XY plane.  The one “ingredient” not listed in the preceding sentences is, of course, gravity.  If the point where the two strings meet at the pen did not hang essentially straight down, pulled constantly by gravity, the pen could go just about anywhere.  If you were to place a normally vertical standing DrawBot flat on the ground, the pen would no longer be pulled away from the two motors – and would just flop onto the drawing surface.  Now, you could add two more motors and more string and build a gondola that holds the pen vertically on a flat DrawBot surface while writing a lot more code…  However, I am doubtful you would get any more precision out of such a setup.  And, if you really require precision – an XY plotter might be more to your liking.  An XY plotter build would require lots of hardware (belts and metal rods or metal extrusions), more tools, and be big and heavy, and limited in the size of its drawing capabilities.  It would also be capable of really amazing speeds.  That’s a lot of extra materials, work, custom coding, and loss of drawing capacity for a dubious trade off in

As a matter of practicality, the simplicity of design and materials means this is an extremely cheap project.  An Arduino is only going to set you back about $30 and clones are as cheap as $15.  I picked up two of Adafruit’s motor shields on sale for $12 each, but they’re normally $20.  Screws and/or bolts, beaded cord or wire or fishing line, a big piece of wood or mounting things directly to a wall, 3D printed spools or just leftover spools from thread, a 3D printed gondola or a lasercut gondola or even a big red binder clip.3  Seriously, if you’ve got about $35 and some free time, you’re basically half way to building an awesome fun robot that can make arbitrarily large drawings.  If you’re willing to buy all the materials, it probably won’t cost you more than $150.

I’ll say it again – a Polargraph DrawBot is a quick, cheap, easy, entertaining, and useful robotics project – especially for beginners.  Outside of my 3D printers, this was easily the most rewarding DIY project I’ve ever attempted.  The results are astoundingly disproportionately awesome to the amount of time, energy, skill, and money used to achieve them.

Seriously, what are you waiting for?!  Go order a Polargraph kit from Sandy Noble45 or source the parts from Adafruit6 .7  Or, if you’re going to scavenge and/or source some parts, check out my Polargraph DrawBot parts/shopping lists.

Default Series Title
  1. Photo courtesy of The Kozy Shack []
  2. And, I wonder – if you could map all snails in the world at the same time, could they be working in concert on an enormous message?  Perhaps something along the lines of “So long, and thanks for all the fish”? []
  3. I just love that Polargraph video by Sandy Noble.  To see binder clip in action, skip ahead to 0:27. []
  4. Whose open source work I use for my own DrawBot []
  5. The next time he’s in stock, you better pull the trigger – he runs out of stock SUPER fast []
  6. Where I bought most of my parts! []
  7. And, why not tell them I sent you too? []

The biggest inkjet printer ever

Big Printer

Big Printer

The other day I wondered what people have done with their InkShields1 2  Then I got to wondering what people were doing to mount their InkShield printer heads and move them around.  Then I thought… hey!  It would be pretty awesome to attach an InkShield printer head to a Polargraph / DrawBot gondola.

I could see how an InkShield might improve a Polargraph.  You could theoretically have a small sensor to test the ink levels and pump more ink in from a larger reservoir – and never worry about a pen running out of ink again.

I could see how a Polargraph might improve an InkShield.  With a DrawBot string setup, you wouldn’t need a huge or expensive XY gantry – just a lot of string, two motors, and some other bits and bobs.

Default Series Title
  1. An InkShield is an Arduino shield that allows the Arduino to control an inkjet cartridge. []
  2. Photo courtesy of iLEZ iLEZ []

DrawBot Practice Tip: A Watched Pot

Winter Is Coming

Winter Is Coming

It’s been a while since I’ve talked about my DrawBot.  In large part that’s because it’s been a while since I’ve even used my DrawBot.

After a little dry spell of making, I’ve been rocking the DrawBot.  Previously I had been drawing things about the size of a sheet of paper.  While this meant the drawings were relatively quick, it also meant I could just print whatever I wanted directly onto a 8.5″x11″ sheet of paper using my traditional black and white laser printer.  This weekend I’ve cranked out a few drawings – but on a much grander scale.  Several months ago I picked up a large roll of white paper at the local office supply store – and I’ve since created about three 3-foot tall drawings.  One is a House Stark direwolf from Game of Thrones, one is an R2D2 commissioned by my daughter, and a third is an R2D2 and C3PO also at the request for my daughter.1

The last one is particularly cool.  I’ll take a picture for you later.  There’s a lot of room for improvement with the gondola.  The current setup is… let’s say… non-optimal.  I’m working on an improved version.

Where was I?  Oh yes!  The watched pot!

I’m using Sandy Noble’s seriously awesome Polargraph software to power my DrawBot.  I’m rocking version 0.182 and noticed that when I’ve got the program on the “Input” tab it draws about 42 points a minute and when it’s on the “Queue” tab it draws about 96 points a minute when working on SVG / vector graphic.  The cool part about drawing with the “Input” tab open is that you can see the drawing in progress.  So, when I’m watching the drawing, it runs slower.

Default Series Title
  1. She likes R2D2. []
  2. He’s continually working on the software and is already out with v.0.19! []

Excellent DrawBot Slides

Dan Royer just posted his slides and notes from a recent talk at his local hackerspace.  What I particularly like about these slides is that they simply and clearly lay out the math required to operate a DrawBot as well as some potentially practical implications and applications for a well designed DrawBot system.

Default Series Title

 

Two new DrawBot links! And an update!

Thanks to Dan Royer, I’ve added two new links to my really huge list of DrawBots.  That brings the total to 28 drawing robots! 1  That’s a really incredible number of people who have shared documentation for their hard work.  Six months ago I wouldn’t have guessed there were more than a dozen such projects on the ‘net.  Clearly, the six-month-younger version of me is a fool.  Thank god I know better, eh?

So, Dan appears to be using an Arduino + Adafruit motor shield, much like I’m using, but he’s running custom Gcode software with a Java GUI.  It looks like Dan was wrestling with the problem of how to maximize drawing speed without causing his ‘bot to hang over the serial connection.  If he gets some decent speed out of his setup, I’m definitely going to give that a shot.

Unfortunately, I haven’t done much in the way of robotic drawings lately.  After experimenting with TSP drawings and finding out they would take an excruciatingly long time I set my drawbot aside for a little while.  Fortunately, Sandy’s been on the case and has worked out a new firmware version that might prove to be twice as fast as the one I’m currently using.

Default Series Title
  1. <queue thunder and lightning> 28! 28 drawing robots!  Ah-ha-ha-ha-ha! []

Speedier DrawBot Drawings

When using my DrawBot to draw pixelated drawings (versus TSP or vectors)1 I don’t really notice a pause from the machine between each pixel.  It takes a few seconds to shade each pixel, then it moves to the next spot and starts over again.  However, when trying to draw TSP art I discovered that the time spent shading a picture obscured the amount of lag time that occurred between each drawing point!  As I tried to draw a TSP portrait of my family I found it was taking about 3 seconds between each little point – which translated to a VERY VERY long time for a VERY small drawing.

When I asked Sandy about this, he suggested that this lag would be eliminated by drawing from an SD card.

Sandy’s current setup, which allows for computer free printing, consists of an Arduino Mega 2560 R32 , a MicroSD card breakout board3 , and an Adafruit Motor Shield4 .  Thus, the electronics setup would cost about $100 if you were starting from scratch, or another $80 if you have been following along at home and have a similar setup to mine.  Apparently the problem is you can’t just shove a MicroSD card into an Arduino.  If you try to add one to an Arduino, then the card shield will end up taking up the pins necessary to use the Motor Shield.  Since the Arduino Mega has a lot of extra pins, some of those can be used towards accessing the MicroSD card.

However, I thought I had seen an Arduino that had a MicroSD slot on board. 5  When I searched around Adafruit, I found this Ethernet Shield R3 with MicroSD connector6 .  Not only does this little shield fit my existing Arduino Uno, have a MicroSD slot, and have an Ethernet port, but it also has input pins so that it can be stacked!  This makes me then wonder…  Could I just pop this $45 board between my Arduino Uno and Motor Shield, add some software and get cooking?  I have to admit, the idea of spending $45 more, rather than $80 more for a Mega and MicroSD breakout board appeals to me.  I suppose there’s the added benefit that I might be able to run a REALLY long ethernet cable to the ‘bot if I so desired since it would have a built-in ethernet port on the Ethernet Shield.

Now, I’m the first to admit that I know next to nothing at all about programming Arduinos or fiddling with such things.  I’m just a fair hand at slavishly following some other person’s excellent directions.  Please do me a favor and let me know whether you think adding this Ethernet shield between my Uno and the Motor Shield will or will not work.

Default Series Title
  1. Actually, the TSP drawings ARE vector graphics… []
  2. $65 at Adafruit []
  3. $15 at Adafruit []
  4. $20 at Adafruit []
  5. Spoiler alert: I was wrong []
  6. $45 at Adafruit []

Restarting a Stalled DrawBot Drawing

Over the last two days or so I’ve drawn the largest picture yet with my DrawBot.  I started it on Friday night and, with numerous pauses and other misadventures, finished it this morning.  The drawing is roughly 12″ x 18″ or so. 1  With no apparent rhyme or reason the drawing would pause numerous times.  I would estimate about 25 or so.  Also, the pen had a difficult time towards the end.  I believe this was in part due to the angle of the pen on the drawing surface and the quantity of the ink left.  As of this morning I was still using version 1.1.2, but I’m installing version 1.1.4 right now. 2

Here are some additional thoughts:

  • In an earlier post I had mentioned I was having stalling problems while drawing.  Sandy asked whether I was able to change serial ports to a different one and back again.  The answer is “sort of.”
  • When there’s a stall, here’s what I do:
    1. Click “SETUP->SERIAL PORT…
    2. Click on some other serial port other than the one I’ve been using
    3. Disconnect and then immediately reconnect the USB cable from the computer
    4. Click on the original serial port I had been using
    5. As soon as the Drawbot reestablishes a connection with the Polargraph controller software, it starts drawing right where it left off
  • I used to export a copy of the existing queue before doing all of this, and while it is still a very good idea, it doesn’t seem necessary.
  • This exact process has worked several times in a row without a problem.  Interestingly, step number 3 above3 is critical.  If I exclude this step the program crashes.
  • For this drawing I used a Pilot Precise Rolling Ball V5, extra fine tip, black.  I had used a red pen of the same make for a prior drawing and it worked reasonably well.
  • I’m in the process of designing a new pen gondola.  I think something that can angle the pen downwards would help the pen apply ink to the page.
  • Interestingly, I noticed after about 80% of the drawing was done the pen had a little bit of paper fuzz on it.  Once I removed this, the pen seemed to work a lot better.
  • The pen stopped drawing completely after about 85% of the drawing over all.  This was a bit disappointing.  However, since I was drawing from the top right to the bottom left and the version of the Polargraph controller I was using allows you to specify which area to start from, I just restarted the same drawing from the bottom right corner and ended up with a very satisfactory result.

In other words, it’s a nice day to start again.

Default Series Title
  1. I rolled it up and gave it to a friend before I thought to take a photogram []
  2. One of Sandy’s latest posts suggests there’s a 1.1.5 available, but I couldn’t find it. []
  3. The disconnect and reconnection of the USB cable from the computer []