DrawBot – Design Considerations

This post isn’t really so much of an update as it is a way for me to jot down some thoughts about this DrawBot and to keep me occupied. 1 23

  1. Stepper motors mounts
    1. Right now I’m designing some rather mundane stepper motor mounts.  They’re inspired by Ed’s designs, but I’ve written the code myself.  I’ll post the code on Thingiverse once I’ve printed it.  It will output a good looking motor mount, but the design isn’t entirely parametric yet.
  2. Beaded cord, belts, and filament, oh my!
    1. If you check out this Polargraph video, you can see @ 0:22 where Sandy Noble shows a version of his Polargraph operating using two spools winding and unwinding filament.  The versions Sandy was producing for sale used a beaded cord.  The Der Kritzler uses a toothed belt.
    2. There are several downsides to using beaded cord4 or toothed belts.  First, they’re more expensive and slightly more work to obtain than simple mono filament line.  Secondly, they are both bulky.  If you’re using beaded cord or a toothed belt, they’re going to have to dangle off the side of your machine.  This means more moving and swinging parts – which is a whole other problem.
    3. One of the benefits to using a filament line is that you can easily route and redirect the line using pulleys.  This means that you could mount the motors and electronics in close proximity to each other – and then run the filament line through something like an eye bolt or a specially designed5 part.
    4. I don’t know how any of these options would affect the placement and usage of a servo for penlifts.
  3. In a box6
    1. I have this long shallow pine box, at least three feet in length, that may be perfect for this project.  I think I’ll be able to mount the motors, electronics, and just about everything I need entirely inside this box.  If I do, then all I’ll need to do later is mount the box to the wall, plug the USB cable into a computer, plus the power adapter into the wall, and start printing away!  Now, I realize that this implies a totally vertical drawing surface, but I think that is not as much of a problem as it could be.
  4. The Russians used a pencil
    1. Writing on a perfectly vertical surface with a pen can be challenging.  My thought is to create a gondola that has the weight farther back on the gondola – so that it is pushing the pen against the paper.  If the pen were angled down slightly, this might even work a little better.   But, obviously, I’ve never tried any of these variations.  I have to imagine that smarter men than me have considered and discarded these designs.  I have a crappy sketch for this, but I’m really tired and should get some sleep.

To sleep, perchance to dream.  Ay, there’s the rub.

Fear not gentle reader.  If history tells us anything, tomorrow shall bring your RSS feed another deluge of nonsense!

Default Series Title
  1. I don’t feel like working, even though the hour grows late and I will need to get a bunch of things done one way or another. []
  2. And, really making a drawing robot is SO much more productive than what I do on a daily basis. []
  3. I wish I were kidding. []
  4. Either metal or plastic []
  5. Perhaps printed?! []
  6. With a fox! []

3.57% More Contempt

I really hate January and February.  This year, I have 3.57% more contempt for February since it is a leap year.  Historically, these are dark and foreboding months for me.  I am grateful this month is nearly at an end, but fearful for what lies ahead.  I’m not overly superstitious, but like any reasonable man I believe robots work better with Daft Punk and the first two months of every year the darkest months indeed.

One little bright note.  Not this year’s Doctor Who Christmas special, but last year’s, had such a brilliant opening monologue.

“On every world, wherever people are, in the deepest part of the winter, at the exact mid-point, everybody stops and turns and hugs. As if to say, “Well done. Well done, everyone! We’re halfway out of the dark.” Back on Earth we call this Christmas. Or the Winter Solstice.”

On December 22, 2011 I happened to be having lunch with a friend.  As I did so I noticed there was a nearby table with about eight or so people.  I happened to overhear them toast the winter solstice.  That, in turn, made me think, “Hey!  We’re halfway out of the dark!”  That thought does warm me some now.  If this were merely a matter of seasonal affect disorder or just a superstition about the dark, that would be one thing.  Instead, my personal attitude of loathing towards these first two months is borne of a long experience.  Bad things just seem to stack up in these months.

If the posts on this blog take a melancholy turn for a bit, please do excuse.

Goodbye Kitty

This past Thursday one of our kitties was acting very lethargic and withdrawn.  Highly unusual behavior for such a social, friendly, and outgoing creature.  We took her to the vet for tests that day and heard back from them on Saturday.  I was in a meeting in San Francisco when I got the news.  I left the meeting immediately and rushed home, picked her up, and took her to the vet.  Her kidneys were failing and there was very little to be done.  They tried to hydrate her, but she kept getting worse.  When it became apparent there was nothing more that could be done, we sat with her, talked, petted, and kissed her.

Our kitty had such personality – affectionate, friendly, curious, and adventurous and we will miss her terribly.

It was tough telling our daughter.  We answered her questions the best we know how.  But, how do you explain the absence of a thing?  As amazing as the Greeks were, they didn’t have a concept of “zero” of nothingness.  I must say, she’s dealing with all of this far better than we are.

DrawBot – The Assembly, Part IV

Here’s what I was able to do last night:

  • As I’ve mentioned, I know very very little about Arduinos or how to hook them up.  Although the Adafruit stepper motor page gives some guidance as to how to hook up the Stepper motor – 200 steps/rev, 12V 350mA, “Red, Yellow, skip ground, Green, Brown,” I have no idea which side or starting from which end of the terminal block this is supposed to go.  Admittedly, I have a 50/50 chance of wiring it up properly.
  • I tried hooking up two old steppers I had scrapped from some old electronics – but all I got for my troubles was a small popping noise and the smell of electronics.  There was no blue smoke, no apparently burned parts, and I was able to program the Arduino Uno to blink and then run a servo through the Motor Shield.
  • I designed and printed a spool for holding the monofilament line and which will fit snugly on the stepper motor shaft.  I got a little sidetracked playing with Skeinforge settings, but the spools turned out really well.
  • I printed a gondola for holding the pen, designed for the Polargraph by John Abella
  • I designed and printed a holder for the Arduino with the Motor Shield on it – but it was slightly too narrow for some reason.  I’ll have to redesign, reprint.
  • I’ll have to design and print a new motor block as well as a filament line guide.  I have some cool ideas for the latter.
  • I tried to use the Polargraph controller, but I wasn’t able to get it to do much.  I”ll give it another whirl tonight.
  • I know I’ll also have to change some of the Polargraph Arduino code to accommodate the motor and spool combination I’m using.
Default Series Title

DrawBot – The Assembly, Part III

I debated with myself over how best to lay out my build log for this DrawBot. 1  Is it better to post the build process as I’m working on it, so that it would span numerous posts, or is it better to try to keep posting all the major steps into one post so that it is easy to follow?  At the cost of appearing repeatedly repetitious over and over again, I think if I were following along at home I’d want to read either one long post that covers everything or a small series of posts that cover the few major steps.  It’s easier at this stage to put all the information into one long post, revising it as I go along and pruning the ubiquitous2 nonsense out as I go.

Here’s what I’m adding in this iteration:3

  1. A section about optional hacks to the Adafruit Motor Shield
  2. More detail about the various libraries and the sketch necessary to upload the Polargraph source code
  3. Instructions for uploading the Polargraph source code
  4. Slightly better organization of my build outline

Continue reading

  1. FYI, I was explaining this DrawBot to a friend at a party yesterday.  He suggested I create a wipe board robot instead, similar to the Lady Ada and Matt Metts robots, and call it the BotWiper. []
  2. Don’t you just love that word? []
  3. Since this information is 95% stuff you would have seen from the prior Assembly post, I’ll put it after a little “More” tag. []

ProfileMaker Update – and an apology!

Last week, in an attempt to improve ProfileMaker I actually made some things worse – including screwing up the calculations.  So, if you ran some calculations last week and got some terrible results, that’s why.  Extra apologies to Tyler, since this was his first experience with ProfileMaker.

So, what’s different?  Well, a lot.

  • I added a rollover image of Albert Einstein to the “Advanced” link.  This just makes me happy.
  • I’ve moved the “thread width” option to the “advanced” section.  Overall, I find that the best results for thread width, and by extension the various “width over thickness” (W/T) parameters, are when you have a resulting W/T of 1.6 or greater.  The W/T is basically about how much the plastic is squished down when it is extruded.  If the plastic is not squished at all, such that the W/T is equal to 1, then the plastic extrusion doesn’t have a lot of contact with the layer below.  The problem with this is that the bond between the layers1 would be very weak, creating a weak finished product.  This is a long way of saying that if you don’t touch the advanced settings, you’ll get a W/T of at least 1.67 or greater generated by ProfileMaker.  This should give you a good strong result each time.  If you just have to tinker with those numbers, you can still override this default by specifying a new “thread width” in the advanced section.
  • I’ve added “nozzle diameter” as a new variable.  Tony Buser suggested in a recent conversation that the optimal thread width is probably equal to the nozzle aperture diameter.  I suspect you could get away with little bit more than this – probably equal to the nozzle diameter itself – as in the measurement from the outside edge of the nozzle to the opposite outside edge of the nozzle.  My reasoning is that the thickness of the metal that comprises the nozzle should be able to help squish down a little more plastic.  In some senses, this is really a better determination of a nozzle’s precision than just the nozzle aperture itself.  If you think about it, if your thread thickness setting is exactly equal to the nozzle aperture, then when the nozzle lays down a thread the edge of the nozzle will have to run over the thread next to it.  I should think that this is not optimal – since it could cause the nozzle to mess with the layers nearby.
  • I’m working on adding a few suggestions to the output that will only pop up when people use unrealistic values.  There may or may not be an Easter egg in this if and when it is completed.
  1. Usually called interlayer adhesion []

DrawBot – The Assembly, Part II

Now that all the parts have arrived, I’ve finished soldering the Adafruit Motor Shield, it’s time to figure out what the hell I’m doing.

  1. The Parts
    1. 9 VDC 1000mA regulated switching power adapter – UL listed 
    2. Stepper motor – 200 steps/rev, 12V 350mA
    3. Micro servo
    4. Arduino Uno R3 (Atmega328 – assembled)
    5. Adafruit Motor/Stepper/Servo Shield for Arduino Kit v1.0
  2. Assembly
    1. Adafruit soldering and assembly instructions for the Adafruit Motor Shield
      1. Hint:  Don’t try to put the L293D into the 16-pin sockets before you solder the socket into place.
      2. Hint:  While preparing to solder the header pins into the motor shield, I found that the motor shield would not sit flat on the Arduino Uno because the leads from the motor shield’s reset button were in the way.  I crimped the leads slightly and then motor shield sat flat.
    2. Download and read the Polargraph Instructions
      1. Polargraph build instructions on Instructables
      2. Latest Polargraph Build Instructions circa 11/28/2011
      3. Polargraph Instructions circa 10/20/2010
      4. Polargraph Instructions circa 10/9/2010
    3. Install the Processing environment
      1. Processing environment download page
      2. It’s necessary to run the Polargraph controller software
    4. Update the Arduino Uno’s firmware
      1. Go to Arduino.cc and download the latest software (Version 1.0 is 85.9MB for Windows)
        1. The latest version of Sandy Noble’s Polargraph software requires the Arduino 1.0 firmware
      2. Install the Arduino drivers123
        1. Plug in your board and wait for Windows to begin it’s driver installation process.  After a few moments, the process will fail, despite its best efforts
        2. Click on the Start Menu, and open up the Control Panel.
        3. While in the Control Panel, navigate to System and Security. Next, click on System. Once the System window is up, open the Device Manager.
        4. Look under Ports (COM & LPT). Â You should see an open port named “Arduino UNO (COMxx)”
        5. Right click on the “Arduino UNO (COmxx)” port and choose the “Update Driver Software” option.
        6. Next, choose the “Browse my computer for Driver software” option.
        7. Finally, navigate to and select the Uno’s driver file, named “ArduinoUNO.inf”, located in the “Drivers” folder of the Arduino Software download (not the “FTDI USB Drivers” sub-directory).
        8. Windows will finish up the driver installation from there.
      3. OMG!  I just made an LED blink!
        1. I followed up this incredible success by adjusting the amount of time the LED spent off and on.  It was pretty cool. 4
    5. Download Sandy Noble’s Polargraph Controller v2.0
      1. Download the Windows binaries or
      2. Download the source code and compile them for yourself
    6. Download the AccelStepper Arduino Library
      1. Direct download
    7. Download the Adafruit Motor Shield Arduino Library
      1. Direct download
      2. When I tried to drop this library into the “arduino-1.0/libraries/” subfolder, the Arduino IDE freaked out.  I had to rename the library sub-folder from “adafruit-Adafruit-Motor-Shield-library-dd30da7” to “AdafruitMotorShieldLibrary” since the IDE would not recognize a library with spaces, dashes, etc.
    8. Um… now what?
      1. As I’ve mentioned, I really have no clue what I’m doing here.  I’m mostly just banged away at the motor shield with a hot soldering iron, jammed it onto an Arduino…  and don’t know what to do next!  Halp?
Default Series Title
  1. This was written for Windows XP, Vista, and 7, there’s also guides for Mac OS X and Linux []
  2. I’ve just copied and pasted this info here for completeness. []
  3. MacOSX []
  4. Arduinos can be used for MORE than this, you say?!  Tell me more! []

DrawBot – The Delivery, Part IV

It always kinda freaks me out for a moment when I am talking to someone and they reference something I’ve written in a blog post.  It takes me a little bit to process that the act of blogging isn’t really a solitary one – that I’m usually interacting with the people who read it.  While I understand intellectually that there are people who read this, part of me1 2 3 4 5 6 7  is nevertheless surprised. See, I was on a conference call tonight and someone mentioned they were happy to hear I was experimenting with a DrawBot8  ANYHOO!

My order from Adafruit arrived today!  This was my very first order from Adafruit Industries and I have to say all of the parts were packed very well and thoughtfully.  It’s a small thing, but I like how the Adafruit logo is printed right on the external USPS shipping label.  The box was sealed with clear packing tape and then additional paper packing tape was put down over that,9 with everything inside bundled inside bubble wrap. 10 11 12 13 14 15 16 17 18 19 20

This order contains my very first stand-alone Arduino. 21  It’s an Arduino Uno and it thoughtfully comes with four little rubber feet, several cool stickers, and a little thank you note for supporting open source.

It’s really just as well that the USPS website didn’t update until after 5pm, otherwise I would have been tempted to rush home to fawn over the parts.

Default Series Title
  1. The self-effacing / self-depricating part wonders … why?! []
  2. Don’t you worry gentle reader, that is by far the smallest part of my psyche. []
  3. Ladies and gentlemen of the jury…  Allow me to bring your attention to Exhibit A. []
  4. I suppose you’d probably get more out of this post if you weren’t always poking around in the footnotes trying to see if I’ve written something clever here. []
  5. In fact, I really try to keep the clever stuff out of the footnotes entirely. []
  6. Boobs. []
  7. I ask you, ladies and gentlemen of the jury…  is this the work of a sane man?  A stable man? []
  8. Hi Brian! []
  9. Nothing could escape that box.  Not even light. []
  10. Pop! Pop! []
  11. Apparently I’m having a very parenthetical day. []
  12. I didn’t even know such a thing was possible []
  13. I think it stems from my… []
  14. Oh!  Shiny! []
  15. extreme ADD []
  16. Okay, would you like a story about my ADD? []
  17. You would?! []
  18. Of course you would! []
  19. Ages ago I was in the boy scouts and I had, as all good boy scouts do, a copy of the boy scout’s handbook.  Everyone was instructed to write their names on the sides of the book so that they would be able to tell them apart.  I wrote my first name along the side and half of my last name.  Apparently, I got distracted halfway through writing my last name … and never finished it []
  20. Thirty years later I’ve more or less moved on.  I suppose I may go back and finish writing it, but I’m clearly in no hurry. []
  21. I say stand-alone since there are apparently already Arduinos in my home – in my MakerBot Cupcake powered by a Sanguino and MakerBot Thing-O-Matic rocking an Arduino Mega. []

DrawBot – The Software, Part I (and an existential conversation)

This morning the USPS website told me that the remaining parts from Adafruit left Oakland yesterday.  As of this moment, they should be sitting at my local Post Office… but not go out for delivery until tomorrow as today is a postal holiday.1  In any case, I just realized that a DrawBot based on Sandy Noble’s Polargraph will require some basic knowledge of Processing.  I guess I better get learning!

Default Series Title
    • My current self [CS] would like to point out to my past self [PS] that if you had only placed the order one day earlier, you’d probably have had all the parts this weekend to work on.  Heck you could even have been done by now.
    • PS would counter, first, that I couldn’t have ordered all of the parts necessary without having first sought some input from people who have done this before me.  And, second…
    • CS would interrupt saying, “Hey PS, what happened to you, man?  You used to be so cool!  What you were afraid of?  Burning a chip or some damn thing?  That’s how you learn!  Buy a helmet!  In any case, people have built these things out of complete junk before!  Where is your sense of adventure?!”
    • PS would remind CS it is not polite to interrupt, “And, secondly, as I was saying, there’s no point in not making use of the various resources available to one.  It would be brash and foolhardy to simply jump in not knowing what the heck you/we were doing.  And, thirdly, in the fullness of time, I think you’ll come to understand that a few day’s delay in assembling a robot is but a blink of the eye in comparison to the time you’ll spend assembling, tuning, and operating said robot.”
    • CS, “Really?  ‘Fullness of time’?  Seriously, man, who talks like that?  I suppose the delay is not such a big deal, but the momentum one has when tackling a project is not an inconsequential concern.  I don’t know about you, but I have the attention span of a gnat.  <Oh!  Shiny!>  It is entirely possible that by the time the final parts arrive, in less than 24 hours, I may have moved on to some new project.”
    • PS, “Momentum, schmomentum.  You might move on to a new project?  Do you realize that you’ve got 16 posts on your site yammering on about this project – when all you have so far is one half-assembled circuit board?  No, you’re going to have to do better than that.  Besides, if you had simply moved to Brooklyn already like I told you, none of this would have been an issue.  You could have just walked over to Adafruit and picked up all the parts you required.”
    • CS, “Move to Brooklyn?  That’s your answer?  I live in the Bay Area, as in ‘California.’  Chances are work is going to have me driving down to Silicon Valley at some point this week anyhow.  And you want me to move to Brooklyn over $100 in parts?”
    • PS, “Well, it looks like you just admitted that this project wasn’t important enough for you to conjure up an excuse to drive to San Jose or Palo Alto.  You didn’t even try to visit a Radio Shack or a Fry’s.  Hell, the time you’ve spent griping about the delays you’ve caused yourself would have been enough for you to drive down to an electronics store and pick up the parts.”
    • CS, “Yeah, at a 50% markup?  Right.  Good plan!”
    • PS, “Okay, which is it?  Did you want the cheapest result or the fastest?  Having chosen an economical middle ground, it seems somewhat silly to blame me that the parts didn’t arrive as fast as fast can be.”
    • CS, “Shut up.”
    • PS, “No, you shut up.”

    []