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! []

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 []

DrawBot – Another Successful(ish) Drawing!, and an Update

A summer rose from our garden, drawn by a freakin’ narcoleptic robot

A summer rose from our garden, drawn by a freakin’ narcoleptic robot

The drawings are getting better with a little tinkering.  I’ve designed, printed, and installed new motor spools.  These have a thicker central core, so they should be able to collect more monofilament line with slightly less distortion.  I’ve made a few changes to the setup.  Dialing in the starting area and calibrating the starting home point were pretty important.

I’m still having a little trouble with the robot occasionally stalling out.  Although, now I think it is a symptom of the controller software rather than a problem with the Arduino.  There’s no set time after printing, no set time after running the program, or other noticeable precipitating event which seems to cause this problem.  At some point during a drawing, the controller software just reports the Arduino as being busy. 1  Here’s what I do to correct the problem:

  1. Disconnect the USB cable from the laptop
  2. Click “Queue->Export Queue” and save as a text document
  3. Open the text document and perform the following operation
    1. Select, copy, paste the first line above the first line – so now you see a duplicate.  So, for instance in the image above I had to copy “C05,2700,2370,10,247,END” and paste this above the same line – so that it would look like the robot would be receiving the same command twice.
    2. Edit the line “C05,2700,2370,10,247,END” so that I change the command to start with “C09” and delete the last two numbers and the “END” statement, so that it now looks like, “C09,2700,2370,END”
    3. Save the text document with these changes
  4. Shut down/close the controller software
  5. Restart the controller software
  6. Reconnect the USB cable to the laptop
  7. Click “Setup->Serial Port…” and click on the serial port of choice
  8. Click “Queue->Import Queue” and choose the text document I just edited
  9. Start the queue again!

The reason I suspect this is a controller software and not an Arduino firmware issue is that I don’t have to reset the Arduino at any point – just disconnect the USB, restart the controller software, reconnect the USB, and start the queue again.  I would think that if there were a problem with the Arduino firmware, I would need to reset the board itself.

The lowest you can specify as the “grid size”2 in the Polargraph controller software is “20,” but you can use a smaller value by editing the “polargraph.properties.txt” file.  In the image above I used a grid size of “10” which appears to cover 1/4 the area of the size 20 pixel.  That image probably took about five hours to draw.  I think it looks really nice.  The image above seems to have been distorted by my scanner.  It came out almost perfectly square with a slight warp to the top right corner. 3  You can see some bare spots in the image above – that’s where the pen, for whatever reason, just wasn’t making a mark on the paper.  I suspect it has something to do with that region of the paper being either slightly smoother and/or slightly more depressed than the surrounding regions.  Otherwise, there would be no reason why the next row would have a similar defect nearby.

I’ve noticed the controller software also tends to forget the machine width, page size, and page position.  I’ve updated this, saved it, and uploaded it to the Arduino several times, but it doesn’t seem to stick past a reboot of the software.  Ultimately, these are very minor concerns and really just something to be aware of when I’m printing.  I just about couldn’t be happier with the controlling software.  That piece of software plus the Arduino sketch together have basically made this a nearly effortless project.  Besides a hiccup soldering a circuit board wrong, this entire project went together very quickly and yielded almost immediately gratifying results.

I’ve done several drawings in the last few days.  I’m still having trouble getting a perfectly rectangular and centered result.  I may have to adjust the Y offsets and double-check my machine measurements.  I still also notice a slight upwards warp to a drawing in the top right corner.  But, I’m looking forward to additional experimentation – it’s all part of the adventure!

Last, but certainly not least, I want to make it clear that Sandy Noble’s software for the Polargraph/drawbot is really really great.  That I am having some minor calibration troubles speaks more to my incompetence than Sandy’s excellent program.  So, a great big thank-you to Sandy for his continued hard work on this software!

Default Series Title
  1. Aren’t we all, Arduino?  Aren’t we all? []
  2. What is essentially the pixel size []
  3. This one was commissioned at the request of my daughter and now hangs in her room. []

DrawBot – Onwards and Upwards!

A few thoughts about operating a DrawBot, in semi-organized fashion:

  • Vertical Surface Drawing.  There is an interesting tension in the design of a vertical line-driven drawing robot.  As the drawing surface orientation approaches horizontal, the easier time the robot will have using a standard pen to draw, the more difficult it will be to control the drawing component via a line system, the  greater the weight that would be required,1 a greater weight puts a greater stress on the line and the motor and has some effect on the responsiveness of the drawing component, and the more the weights on the drawing component would be in contact with the drawing surface – possibly causing smudges.  The closer the surface is to vertical, the easier it will be to actually operate as a line-driven robot, the less weight required,2 but the more difficult it would be to have a pressure from the drawing component on the drawing surface.
  • Robot Portability.  Right now my robot is quite portable – and, of course, there are costs and benefits associated with this.  Right now I’m limited to the “size” of my robot at 2’x4′ since that’s the size of the piece of plywood I bought and on which the motors are mounted.  However, it is very easy to just move the robot by putting the plywood in a different location in the house.
  • Robot Location.  This is, in some senses, the flip side to robot portability.  I’d love to put the ‘bot up on the wall and draw something really really huge.  I don’t see that happening until I’m more comfortable running the robot, have found a better pen/paper combination, and – perhaps most importantly – figured out how to run the robot wirelessly or off an SD card.
  • Drawing To-Do’s:  Ideally, I’d like to put the robot to work drawing something on an epic scale.  A high resolution photograph of earth, moon, or pretty much anything from NASA.  Perhaps a map of middle earth, the 100 acre woods, or the Princess Bride story?  A photograph of the world at night, with highlights of the world’s electricity consumption.  Or, some of the INSANELY awesome super sweet posters from various XKCD comics.
Default Series Title
  1. This my theory, anyhow.  My reasoning is that as the surface approaches horizontal, the more weight you’d need to pull at the drawing component because more of the force of the weight would be absorbed directly by the drawing surface itself – along with some friction as it passes over the surface as well. []
  2. See reasoning regarding weight above. []

DrawBot – Drawing Success(ish)!!!

Starry Night by Van Gogh, drawn by a freakin’ narcoleptic robot

Starry Night by Van Gogh, drawn by a freakin’ narcoleptic robot

I think that turned out rather well!!!  If you look closely at the area circled in red in the next picture, you’ll see where there is a discontinuity in the line.  You may have to look at the large version to really see where this happens.

Starry Night by Van Gogh, drawn by a freakin’ narcoleptic robot, with the error circled

Starry Night by Van Gogh, drawn by a freakin’ narcoleptic robot, with the error circled

I suspect that my attempt to fix the stalled drawing probably did not have a role to play in the robot drawing off the top edge of the paper.  I think that is my fault for badly centering the paper on the robot.  Let’s see it again, without the red circle, with the original image overlaid.

Starry Night by Van Gogh, drawn by a freakin’ robot with narcolepsy, overlaid the subject image

Starry Night by Van Gogh, drawn by a freakin’ robot with narcolepsy, overlaid the subject image

There is clearly some calibration and whatnot to be done, but I’m still amazingly pleased with the results.  As much as I’ve blogged about drawing robots, the entire process from assembling parts ordered online to having a machine that actually draws stuff has been amazingly painless.  Based on the image above, it looks like I need to:

  • Adjust the aspect ratio, so that the image isn’t made too wide by the drawing process.  I suspect this has something to do with the “Setup->Machine Width” setting.  That was the setting that caused the drawing to be unnaturally narrow.
  • Adjust the amount of line that is unspooled in the center of the drawing.  I suspect this has something to do with the “Setup->MM per Rev” setting.  I have nothing upon which to base this suspicion except that my feeling is the robot is spooling out too little line.  I suspect that if I tell it that the spool is slightly smaller (closer to 47 than the 50 I’m using now) I would end up with a better result.
Default Series Title

On Sketching

On a slightly wistful note, Kathleen Jennings’ simple, elegant, and evocative sketches make me miss sketching.  Once upon a time, a long long time ago, I would carry an analog notebook everywhere and sketch in pen and ink, my favorite media.

I still sketch occasionally, my most amusing sketches are now done at the behest of my daughter.

  • Draw me a sea lion!  So, I draw a lion wearing a SCUBA tank, mask, and flippers
  • Draw me a unicorn hula hooping!  So, I do.
  • Draw me a penguin, Mary Poppins, and Santa!  So, I do.
  • Draw me a cuttle fish!  So, I do.
  • Now a Lizard Wizard Library!  A castle!  These commands I obey as well.

Ah!  But, now the mood has struck!  I also find that my sketches that I appreciate the most are ones that are totally off the cuff.  Just pen, paper, and 30 seconds to draw something before my daughter’s attention fades. 1  We have a few of these little sketches framed around our home.

One of my favorites that is not framed was also inspired by my daughter.  I think I was teasing her about something, suggesting she was too good smelling to do something or other.  She insisted she was smelly.  I insisted she was not.  She said, again, she was and that she was rolling with the pigs.  You see, when you’re 3 years old the smelliest dirtiest thing you can conceive of is a pig rolling in mud.   The resulting sketch is of my daughter in what appears to be a sedan/SUV with several pigs, all of them wearing sunglasses, with her driving – as she rolls with the pigs.

I like to think she gets her artistic tendencies from me.  She probably colors something on the order of 20 sheets of paper a day in drawings.  Markers, crayons, and color pencils.  It’s pretty amazing to come home and find pages and pages of new artwork every day.  What’s more, there’s always a story to go with each picture.

I tend to sketch a lot more on vacation.  I’ll actually dust off a sketchbook to take with me and sketch things I see while out and about.  I have several pages devoted to the grad school road trip out to Las Vegas and New Mexico with my roommate.  It features the Grand Canyon, random exit signs, people we met, scenes and sunsets.  I have more pages devoted to a Mexican cruise from about six years ago filled with funny inside jokes and bits about the funny people we met.

Almost totally off topic, but while I’m in a sharing mood – tonight I kept my daughter entertained for about 15 solid minutes with several dozen variations of card tricks based on three slight of hand maneuvers.  The best part is she really and truly believes I taught her magic. 2  I put the deck in front of her and let her knock on it with her hand and tell me where the Ace of Spaces was supposed to be – the top, middle, or bottom of the deck.  And, wherever she said, that’s where it always was.

  1. I don’t mean to blame her for this – she get it from me.  And, really, my attention span is considerably shorter []
  2. Don’t worry, I’ll fill her in later []