DrawBot – The Face Palm

Okay.  Confession time.

First, if you have been following along at home, I’m sorry – I have been leading you on a fool’s quest.  I did warn you at the outset I had no idea what the hell I was doing.  Carry on, don’t worry about me, I’ll go down with this ship.

Second, here’s the actual confession.  Despite amazingly detailed directions from Adafruit’s website, I soldered the Adafruit Motor/Stepper/Servo Shield for Arduino Kit v1.0 totally totally wrong.  I soldered one of the L293D chips into the location for the 74HC595N integrated circuit chip.  And I wondered why it didn’t work.

This would completely explain why the shield made a pop noise, why there was the smell of burning, and why one of the L293D chips (which was not an L293D chip AT ALL) was getting super hot while the other was just fine.  I just tried to de-solder the L293D chip, but that’s not going to work.  I’ve de-soldered a part before, but surface mount parts are MUCH easier to de-solder. 1

At this point my choices are, from wisest to most foolish:

  1. Abandon all hope and prayer of building a DrawBot.  Power down my laptop, unplug my router, take the battery out of my phone and stop inflicting my delirium on the world.
  2. Order another Adafruit Motor/Stepper/Servo Shield for Arduino Kit v1.0, and start again. 2
  3. Keep trying to de-solder that damned L293D chip, hope and pray I didn’t destroy both the L293D and the 74HC595N, then try to put them in their proper spots.
  4. Damn the torpedoes!  Full speed ahead!  Who cares that one sad little chip refuses to act like another sad little chip?!  More power and brute force will carry the day.  If I cannot make this work, I will ride this project straight into HELL!  Mu-ah-ha-ha!!!3

I’ve taken a stab at desoldering the L293D, but it just isn’t working.  The solder isn’t really coming out.  Even if it does, I’m going to have one hellishly ugly board by the end of the day – and I’ve probably already burned out the L293D and/or the 74HC595N.

At this point, I think I’ll opt for #2 above.

Default Series Title
  1. Score one for SMT, eh? []
  2. It’s a nice day to start again. []
  3. The world is ours, let’s use it up. []

DrawBot – Halp!!! No – seriously, a little help?

Okay, I’m stuck.  I don’ t know what I’m doing wrong or what I need to do next.  So, I’m calling upon John Abella, Sandy Noble, and Kongorilla for your help.  :)

Here’s where I am:

  • The burning!
    • At last attempt, I hooked up some small steppers to the Adafruit motor shield, put the shield on my Arduino Uno, hooked up the USB cable and the 9v power adapter.
    • I heard a small pop and smelled warm electronics.1
  • After the burning
    • I can upload and run the Arduino basic blink sketch.  I can alter this to change the blinking pattern.
    • I can upload and run the Arduino sketches to operate a microservo.  I can alter this to change the microservo’s behavior.
    • I can upload the Adafruit sketches for steppers – but I can’t make the steppers move.
    • I can upload the Polargraph sketch – but I can’t make the steppers do anything.

Now, I’ve got tons of questions for you:

  1. Did I ruin my Arduino?  I can still run the blink and microservo sketches.
  2. Did I ruin my motor shield?  How can I tell if it is operational?  When I connect the power to the Arduino and have the little jumper in place, the green LED is lit up.
  3. What am I doing wrong?
  4. What should I try next?
  5. How should I diagnose a problem?
Default Series Title
  1. Now I’ve got a cold and couldn’t smell anything if I wanted []

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

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.”

    []

DrawBot – The Assembly, Part I

I assembled most of the Adafruit Motor/Stepper/Servo Shield for Arduino kit – v1.0 last night.  Since I don’t have an Arduino yet,1 I didn’t want to solder in the connector pins.  Other than those four connectors, it is all soldered up.

FYI, don’t try to put the L293D into the 16-pin sockets before you solder the socket into place.  I tried to do that and it was a mistake.  I bent some of the leads to the socket and stabbed myself in the finger with the L293D chip.

Default Series Title
  1. It’s on its way!!! []