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

Fab.com – BEST unsubscribe process EVAR

Fab.com's AWESOME unsubscribe page
Fab.com’s AWESOME unsubscribe page

The other day I got sick and tired of my inbox getting daily e-mails from Fab.com.  It’s a fine site, but I don’t need a daily e-mail from just about anyone. 1  Naturally, I sought out the unsubscribe link at the bottom of one of the daily e-mails and clicked.  What I found was not the bland “Please confirm this unsubscription action.” page, but rather a “Oops!  Perhaps we came on too strong!  Sorry about that, how about we dial down the crazy just a tad?  Would that do the trick?  Listen, baby, we can work this out.  Maybe just a few e-mails a week about things you might really REALLY like?”  I’ve included a screenshot above, I loved this page so much.  Heck, I loved it so much I closed the browser window and didn’t unsubscribe. 2

What I like about this page is that:

  1. It isn’t a robotic “confirm unsubscription” link, but a very human and personal sounding page.  Unsubscription pages are basically kiss-off pages where a company loses contact with a person.  In such cases, it’s easy to write off the user as a lost cause.  This doesn’t have to be the case.
  2. That personal sounding message really made me stop and actually re-think what I had come to that page to do.  Did I really want to unsubscribe?  Maybe I shouldn’t try to go cold turkey?  I really wouldn’t want to miss out on something amazing… 3
  3. I was presented with some very simple options for managing the e-mail frequency.  I could, with a single click, turn off whole swaths – or even whole days – worth of messages.  I’m guessing for many people, this might be the right way to tone back e-mails.  I think they could have gone farther with this – by adding a button where you could dial back the amount of e-mails.  As a tongue-in-cheek message, they could indicate the current level of e-mails were at an “11”4 and a javascript dial to bring it on down to a 1 or 2.
  4. The first full paragraph of the “opt out” message is particularly interesting.  Fab.com suggests that if you unsubscribe, they won’t be able to even e-mail you a receipt for an order.  Surely there is a middle ground between marketing e-mails and confirmation/order e-mails.  But, by eliminating the line entirely, they ensure someone who was once a customer of Fab.com is unlikely to unsubscribe since they’re more likely to order there again. 5  I’m willing to bet that Fab might have very slightly higher e-mail retention if they gave the option of turning off all-but-confirmation-style e-mails.  Even if that’s not the case, such a policy is likely to increase the retention of previous customers.

Here’s what I would do if I were over at Fab.com and helping6 in their e-mail marketing department:

  • Monitor and track the number of users who go to their unsubscribe pages and don’t unsubscribe.  If people don’t unsubscribe when they visit that page for the first time, I would make a point of having their e-mails dialed back, with as much as a 75% reduction effective immediately.  Later, this could theoretically be increased slowly.
  • Do some A/B split testing7 on whether a playful e-mail marketing dial has any effect on customer retention after they visit the unsubscribe page.
  • Do some A/B split testing on how the sheer number of e-mail messages sent affect the percentages of people hitting the unsubscribe links.  At the end of the day, you just don’t want a potential customer going to that page – nothing good can come of it.
    • Assuming there’s X daily sign-ups for the e-mail marketing, you’re going to want an unsubscribe rate of Y to be less than X.  If you never send a single e-mail it is very likely no one will unsubscribe.  On the other hand, if you’re pounding your customers multiple times an hour, you’re probably going to lose them all.  The optimal result for an e-mail marketing campaign is a difficult thing to pin down.  Success for a given e-mail isn’t necessarily a binary thing, but a sliding scale of success from “did not click unsubscribe,” to “did not mark as spam/junk”, to “opened e-mail,” to “visited site”, to “made a sale”, to “made a sale of an item featured in e-mail.”
    • Facebook, Twitter, and LinkedIn send reminders – usually reminding you about your friends and suggesting things you’ll want to see. 8  However, I probably don’t receive more than one e-mail a week from any of these sites.  If these older, more established, sites don’t e-mail me more than once a week, Fab.com should really re-think starting with a default of daily e-mails.

Please take all of the above with a grain of salt.  I’ve got a web based SaaS B2B business that would really benefit from more A/B testing and e-mail marketing, and I’m not doing it yet.  :)

  1. Well, except YOU!  I love getting YOUR e-mails!  They keep me warm at night! []
  2. I finally did unsubscribe today, but that’s besides the point. []
  3. Then again, I have yet to visit the site after my first visit some eight or nine months ago. []
  4. After all, the user is at your unsubscribe page.  You stand a much better than even chance you’re going to lose them forever.  You might want to try to engage them a little []
  5. More likely than, say, someone like me – who has never ordered from them. []
  6. read: meddling []
  7. That link goes to a post on this same site where I express my frustration with the WordPress ShrimpTest A/B testing plugin.  I’m sure it was a great plugin – but it hasn’t work with the latest versions of WordPress for some time.  I keep meaning to crack it open, poke a round, and fix it up a bit.  Alas, it has not been a priority among other items. []
  8. I have friends? []

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

Driving Lessons from Google

Google’s self-driving car
Google’s self-driving car

Last Monday I noticed a funny looking Google vehicle while driving back home from Palo Alto. 1  It was a white SUV with a big Google logo on the back passenger side door.  Traffic was heavy and I didn’t get to look at the vehicle very long.  I’ve seen the Google streetview car before – and this was not it.  The streetview car has a tall device mounted on the roof with what appears to be four cameras pointing forward, right, left, and back.  The vehicle I saw last Monday had a device the size of a small toaster mounted to the roof with four white pipes – and it was spinning very fast.

My guess was this was the Google self-driving car.  When I saw this article the following day, picturing the exact vehicle I saw, I was certain.

I have to admit, when I saw this vehicle I was tempted, for just a moment, to drive slightly recklessly and unpredictably to see what Google’s vehicle would do. 2

My superego won out over my id, and I just observed the progress of the Google self-driving vehicle.  I wish I had seen the vehicle earlier so that I could have observed more of the vehicle’s behavior from behind it.  Here’s what I saw:

  • I was in the #3 lane on I-680 North and the Google self-driving vehicle34  was in the #2 lane.  Traffic was heavy during the late-afternoon early-evening commute and even though they were in a faster lane, we were probably both going no more than about 35 MPH. 5 6
  • They must have left at least at least 5 car lengths worth of traveling distance in front of them.
  • I didn’t see them switch lanes – except to take an exit.
  • Interestingly, with the ebb and flow of traffic, the Google vehicle was at times far behind me and even a little ahead of me.
  • Even though Google as a corporation is a person, and Google was likely present in that vehicle, it did not drive in the HOV/carpool lane.

If Google can drive for 300,000 miles without an accident, including travel in heavy traffic, I suppose there’s a few lessons we can learn:

  • The ebb and flow of heavy traffic is enough to basically normalize any efforts to “get ahead,” so you might as well drive as slowly, conservatively, and with as much following distance as Google
  • When traffic is congested, it might help to be in a lane farthest from the on/off ramps7
  • Always carry two backup passenger/drivers in your vehicle
  1. Photo courtesy of Saad Faruque []
  2. My guess – reduce my website’s PageRank and delete my Google+ page.  That’s worse than a ding on your driving record, right? []
  3. Along with it’s two passengers. []
  4. Prisoners?  How do you tell a self-driving vehicle you need to get out and pee? []
  5. The traffic was so bad that my Android phone, with the Google Maps directions showing me the way back home, displayed the dreaded deep-red path that indicates congested traffic. []
  6. I mention the Google Maps traffic congestion metric because I assume their vehicle was using the same information I was to make informed driving assessments. []
  7. Google didn’t have three physical people present, so they couldn’t be in the fastest HOV/carpool lane []

Wacky Realization #8565748

Shadows
Shadows

I had a lot of driving to do this last week. 1  For work I drove about 11 hours total on two separate days combined.  Then, on Friday, I drove another 4 hours or so to visit some friends.   Thankfully, driving back Saturday was only 3 hours.

Driving back at around dusk on Saturday meant lots of glare, lots of long shadows.  And then it struck me…  There must come a point when the Earth rotates relative to the Sun such that an object on the surface of the earth could cast an infinitely long shadow.  And, really, this should happen twice a day.

Now I think I have a new mission.  I need to find someplace on our planet to stand such that either at sunset or sunrise I would cast an infinitely long shadow.

  1. Garry via Compfight []

Has it really been that long?

2012. calendarI just fired up OpenSCAD, my 3D design program of choice, and then it occurred to me that it’s been quite a while since I’ve used it.  A quick search for *.SCAD files on my hard drive revealed I haven’t updated any OpenSCAD documents since 5/13/2012. 1

That’s more than two months!  How can this be?!  I’ve got a pile of ideas stacking up.

How do you organize your ideas?  I created an e-mail address for myself “ideas@DOMAIN.com,” jot down the ideas, and send them to myself constantly.  If I have paper, I’ll sketch the idea out, take a picture, and e-mail the picture to this same address.  I think I probably send myself about two or three e-mails a day.

I can’t wait to jump back into OpenSCAD and work on some of these ideas!!!

  1. Photo courtesy of Asja Borošvia Compfight []

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