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!

Posts in the DrawBot Adventure Series
  1. Wanna make a DrawBot?
  2. DrawBot Resources and Links
  3. DrawBot, the Adventure Begins
  4. DrawBots for the slow learner
  5. DrawBot - Parts Ordered!!!
  6. DrawBot - The Breakdown
  7. DrawBot - Parts Shipped!!!
  8. DrawBot - What would you draw?
  9. DrawBot - The Plan!
  10. DrawBot - The Hacks
  11. DrawBot - Giant Unicorn?
  12. DrawBot - The Delivery?
  13. DrawBot - The Delivery, Part II
  14. DrawBot – The Delivery, Part III
  15. DrawBot – The Software, Part I (and an existential conversation)
  16. DrawBot – The Delivery, Part IV
  17. DrawBot – The Assembly, Part II
  18. DrawBot – The Assembly, Part III
  19. DrawBot – The Assembly, Part IV
  20. DrawBot – Design Considerations
  21. DrawBot – Halp!!! No - seriously, a little help?
  22. DrawBot – The Delivery, Part V
  23. DrawBot – The Silver Lining of Failure
  24. DrawBot – The Delivery, Part VI
  25. DrawBot – The Assembly, Part V
  26. DrawBot – The Assembly, Part VI
  27. DrawBot – Printed Parts
  28. DrawBot – The Operation, Part I
  29. DrawBot – The Assembly, Part VIII
  30. DrawBot – The Breakdown, Part II
  31. DrawBot – Printing!
  32. DrawBot – Printing, Part II
  33. DrawBot – Why are you crying?
  34. DrawBot – Calibration
  35. DrawBot – Pen Selection
  36. DrawBot – How to Recover from a Stalled Print!
  37. DrawBot – Drawing Success(ish)!!!
  38. DrawBot – Pen Selection, Part II
  39. DrawBot – Onwards and Upwards!
  40. DrawBot – Another Successful(ish) Drawing!, and an Update
  41. Restarting a Stalled DrawBot Drawing
  42. TSP FTW!
  43. Speedier DrawBot Drawings
  44. Excellent DrawBot Slides
  45. Another Drawing Robot!!!
  46. DrawBot Practice Tip: A Watched Pot
  47. The biggest inkjet printer ever
  48. Why do DrawBots draw on walls?
  49. Maze Code + Polargraph?
  50. All New Polargraph on the way!!!
  51. Ideas for improving my DrawBot
  52. DrawBot Aesthetic Re-Design Ideas
  53. The Eagle Has Landed
  54. Every Body Needs a Skull
  55. This project is not going to overengineer itself
  56. Overengineered Spools
  57. Overengineered Stepper Motor Mounts, Filament Guides
  58. Overengineered Bolt Endcaps, Case Holder
  59. Sourcing DrawBot Parts
  60. DrawBot - A Tour!
  61. DrawBot - A Preview
  62. Building an Arduino Drawing Robot - On The Cheap
  63. Unidentified Foam Object
  64. Arduino Powered Drawing Robot - Take 2 (Or 3)
  65. DrawBot, now ACTUALLY wall mounted!
  66. A Study of Drawing Robot Pen Holders and Design Considerations
  67. Drawing Robot Pen Holders, Calligraphy Pens, and Thought Experiments
  68. Ideal Qualities in a Drawing Robot Pen Holder
  69. Enough talk! Finally a pen holder!
  70. DrawBot Pen Holder Post Mortem
  71. To Maker Faire!!!
  72. Skipping! How could I forget the skipping?!
  73. Drawing Robot Penmanship
  74. PlotterBot at Maker Faire Bay Area 2013!
  75. PlotterBot.com - a new site dedicated to drawing robots
  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. []

11 Responses to “DrawBot – Another Successful(ish) Drawing!, and an Update”

  1. Sandy Noble says:

    Great stuff! And thanks for the props – very kind of you. I’m still troubled by the pauses, and agree that it doesn’t seem to be a problem with the board itself or the firmware. I’m leaning towards thinking that it’s a serial port / driver type thing. The controller decides if the machine is busy by assuming that it is until it’s told otherwise (with a “READY” signal). Now if the machine _is_ broadcasting that it’s ready, but the controller can’t see that then it will stay busy forever. I did work on a way to manually override the “busy” status when I thought I was having problems a bit like this, but because it stopped happening that feature never appeared. I will see.

    Calibration turned out to be much more important than I thought, and even fairly small inaccuracies sometimes skewed the picture significantly. The most common is putting the home point too high or too low.

    A home point that is too low (that is, it is physically lower on the surface than you’ve told the controller it is) will tend to have a narrow top and a wide bottom. A home point that is too high will tend to have a wide top and taper towards the bottom. Too far left or right will create an asymmetrical distortion. It looks to me that your rose drawing was homed a little too far right, and a little low.

    If you want to check geometry without having to do a big drawing every time, remember you can drag a select area and hit “Draw Outline box” button and it’ll quickly move to all four points of the selection area. It won’t necessarily draw straight lines there, but you can rely on the corners being in the right place, so you can trial homing settings.

  2. John Cliff says:

    Thats interesting info about the homing point leading to tapered drawings, the output from my machine has a distinct taper, will have to play with the settings and see whats going on.

    Makerblock – am sorry to have only just found this series of posts, I built a machine very similar to what you’ve built a couple of months ago, with hindsight while the wife is very pregnant isnt the best time to start such projects, and it got to the ‘kinda works’ stage just before our litte guy turned up and stole every waking moment when I’m not at work!
    Mines doesnt have anything as fancy as motor mounts, I simply bolted the motors to a bit of ply which I stuck to a large MDF board that I got from a B&Q (uk home depot) The electronics consists of 2 easydriver boards from sparkfun stuck in a solderless breadboard, connected to an arduino which lives in the plastic box it got posted in, which is zip tied to the board, all very professional :)
    Will have to have another play with it. I really wanted to convert SVG to polargraph instructions, so that I can export lineart from inkscape and have it draw it.

  3. MakerBlock says:

    @John Cliff: Now that Sandy mentions the homing point, I think I’ve been misplacing my home point on my machine.
    As for just finding this series of posts – I only started mid-January! If you had stopped by a couple of months ago when you were working on robot, you would only have found posts about MakerBot, 3D printing, doctor who, and assorted random nonsense. I started with some very cool nifty designed motor mounts – but what I ended up using is little more than a rectangle with five circular holes in it. :) I’d love to see some pictures of your setup if you get a chance! I know how busy being a new father can be. You know, your son might get a kick out of watching your drawing robot do its thing!
    Also, if you’re looking to do SVG’s, Sandy Noble’s latest Polargraph controller software has support for vector graphics!

  4. MakerBlock says:

    @Sandy: Could the trouble be with my laptop itself? While I’ve turned off the screensaver and changed the power settings so that it isn’t supposed to go to sleep, the intermittent stalls have persisted. I’m using a very underpowered netbook (a Dell Mini 10). I’ll definitely recalibrate my home point. I’m pretty sure it’s not set up right – causing some of my drawings to go off the end of the paper. I have tried that trick of drawing the outline box first! That’s what I’ve been using to dial in my settings.

  5. John Cliff says:

    I’m familiar enough with your blog, been reading it for a while, just hadn’t been for a couple of months clearly! Read about Sandys updates to the controller about 2 minutes after posting that message, will have to have a play now!
    Will take some photos of my machine this eve. (there may be a couple of pics on Sandys forum, called the thread the ugly cousin or something I think)

  6. MakerBlock says:

    @John Cliff: Awesome! I can’t wait to see those pics!

  7. MakerBlock says:

    @John: I was able to locate those posts on Sandy’s forum. I’ve added a link to your photos and forum posts on my DrawBot links page. http://makerblock.com/2012/01/drawbot-resources-and-links/

  8. Sandy Noble says:

    @Makerblock I wouldn’t have thought so, at least I don’t really see why it would. It’s not like the connection gets to idle or anything. And your netbook is running it at all then I don’t see why it should stop halfway through.

    When it stalls, are you able to change the serial port to a different one and back again?

    John, good to see you again – lots of good work gone on with the project since october – none quite as important as your project though – congratulations!

  9. MakerBlock says:

    @Sandy: You know… I’ve never tried that! I’ll give it a shot!

  10. […] 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 […]

  11. […] I have been having SO MUCH FUN with traveling salesman problem / single line art!  I can’t wait to draw some of these with my DrawBot! […]