Ideas for improving my DrawBot

Polargraph drawing by Sandy Noble
Polargraph drawing by Sandy Noble

I’ve given a lot of thought to how I can improve my DrawBot setup now that I have a Polargraph brain on the way1

  • Print a nice 3D printed plastic case for my DrawBot brain
    • The 3D printed plastic case I have for my current DrawBot doesn’t fit very well2 and doesn’t look awesome as it is literally duct taped to the plywood. An awesome new brain upgrade deserves a sweet new plastic case. I might customize Sandy’s design by adding some dual-extruded black/white hotness to it.
  • Putty, sand, prime, and paint my big chunk of plywood so it is presentable
    • Though, really, since I would just paint the wood white anyhow, I’ll most likely just prime the wood twice and call it a day.
  • Reconsider beaded cord versus fishing line
    • I’ve been using fishing line for my DrawBot, but many others including Sandy use beaded cord.
    • Fishing line. Fishing line is great when you enjoy the process of drawing as much as the drawing itself. From more than a foot or two away the pen holder looks like it is just floating in space. It is also cheap and pretty easy to manage with just a spool attached to the stepper motor. The biggest downside is that since it is wound around a spool a full turn of the spool when it is full of fishing line will let out more line than when there is little fishing line left on the spool. Every time fishing line is pulled in, it adds very slightly to the diameter of the spool and will skew the drawing. There are a few ways to compensate for this. You could enter the diameter of just the spool, spool full of fishing line, or spool half-full of fishing line. Each different usage will basically skew the drawing slightly differently. Another, more complex, alternative is to try to compensate for the extra diameter caused by the fishing line by fiddling with the code itself to consider a different spool diameter depending upon how much fishing line has been reeled in or out. Since this is way beyond my current Arduino programming capabilities, I’m just leaving it here as food for thought.
    • Beaded cord. Beaded cord is also fairly cheap, and certainly way cheaper than using a toothed belt. Since a beaded cord with matching sprocket does not accumulate on the sprocket, you have to figure out some way to manage the beaded cord – even if it just to let it hang off the side of the robot. With a kid and a cat, long loose lengths of cord might be problematic. Now that my daughter is older, this is less of a consideration. Lastly, the beaded cord will allow you to consistently draw images without having to worry about the spool-fishing line-variable diameter problem.
    • As I’ve been thinking about exhibit a drawing robot at the upcoming Bay Area Maker Faire in May
  • Design, print, and attach a mount for a large roll of paper
    • Ideally, when I’m done with a print job I can pull the paper across the print surface, tear off the finished drawing, and have a fresh new piece of paper ready to go without having to spend a lot of time re-aligning and re-mounting paper.
    • While it would be super cool to have the roll of paper motorized, I have no delusions that I’m going to do this.
  • Design, print, and use a new gondola, complete with servo powered pen-lift
    • Although I have the servo ready to connect to my existing DrawBot, I never did this. My favorite looking drawing robot drawing techniques were all TSP single line art or single-line-shading, so there was never a need for a pen lift or servo. I basically never invested the time to improve my gondola to do much more than create reliable drawings. As it is the gondola is weighed down by a piece of wire poked through a ziplock baggie with half a dozen old batteries inside. I like this solution because it is essentially re-using old batteries as small modular weights of consistent mass. But, there are so many better ways to use old batteries as weights without it being ugly. Plus, with a servo enabled gondola, I’ll be able to explore the world of vector drawings. I should probably just create a Polargraph style gondola and call it a day, since Sandy has logged more hours with a drawing robot than anyone else I’ve heard of.
  • Route wires in a pleasing manner
    • As you might have figured out by now, my current DrawBot set up is hacky and ugly. I’d like to have my DrawBot set up so that it looks nice and not a tangle of wires leaning against the wall.
Default Series Title
  1. Photo courtesy of Sandy Noble []
  2. I can only blame the designer – me []

All New Polargraph on the way!!!

Polargraph on the way!
Polargraph on the way!

A little while ago I purchased a Polargraph kit from Sandy Noble and now it’s on the way!!!

Sandy is responsible for having put together the best instructions for building a Polargraph/drawbot anywhere on the web.  Sandy’s latest kit uses an Arduino Mega clone, a shield specifically designed by Sandy to provide all the Polargraph functions, two StepStick motor drivers, an SD card slot, socket for an XBee wireless module, connections for endstop and servo support, and – best of all – an LCD touch screen interface.

While my own DrawBot was built entirely from off-the-shelf parts, I’d like to make it really polished.  At the moment my DrawBot does not look like much.  It is two motors bolted to a chunk of plywood with some circuit boards in a plastic holder which is duct taped to the chunk of plywood.  It works and is as reliable as the PC operating it, but it is far from pretty.  Stay tuned for some new design ideas!

Default Series Title

Maze Code + Polargraph?

My RSS feed for Slashdot brought my attention to an article on Slate.  The Slashdot summary stated:

This Slate article talks about a single line of code — 10 PRINT CHR$ (205.5 + RND (1)); : GOTO 10 — and how it manages to create a complicated maze without the use of a loop, variables and without very complicated syntax.

Even though that “one line” of code really is two lines and it really does use a loop, that short string of code is still very interesting.  While the way the code generates a maze isn’t immediately intuitive, it becomes obvious once you watch a bit of the video above.  All that code does is randomly kick out a forward slash or backward slash.  Once they wrap around to the next line, they start to form what looks like a maze.

As a little exercise I created something similar using PHP.  To make that work I had to use a fair bit of CSS to make it look decent.  In any case, it occurred to me that this would be a wonderful project for a Polargraph! Draw a random forward slash or backslash, get to the end of the line and make a bunch more on the return line.  How awesome would a huge paper roll of nothing but a giant maze look?

I think I may have found a project cool enough to show off at Maker Faire.  :)

Default Series Title

Sailfish + Print-O-Matic = Wow

dutchmogul's Keep
dutchmogul’s Keep

Last night and tonight I have been tinkering with Flexo, my Thing-O-Matic, to install Jetty’s Sailfish firmware update.  The setup text is very helpful, but not particularly optimized for a Thing-O-Matic with a MK6 extruder.  I also found that I had to heavily modify the “start.gcode” and “end.gcode” to keep my bot from shaking itself to pieces. 1

However, the results of combining Sailfish with ReplicatorG’s Print-O-Matic are impressive.  Dutchmogul’s Keep, pictured above, was printed with a layer height of 0.15mm, 10% infill, all with a stock 0.5mm nozzle.  That’s the very best resolution I’ve managed with my Thing-O-Matic, ever.  At 0.15mm thick layers, I have a difficult time seeing the layers if the model is more than 6 inches from my face and the ridges on the vertical parts is difficult to discern with a fingertip.

Now that I’ve finished that print I think I can push my ‘bot’s print resolution farther.  I’m willing to bet I can print down to 0.10mm layer height if I re-applied the Kapton tape and did a better job of leveling the print bed.  Also, one of the acknowledged challenges with 3mm filament based extruders is the pressure buildup that can lead to imprecise plastic deposits when dealing with non-contiguous parts. 2  Dialing in the Skeinforge “Retraction” or the Sailfish “Deprime” settings dialed in would really help with complex prints.

  1. The default “start.gcode” tried to home to the XY maximums and Z minimum – where there are no endstops.  The default “end.gcode” did the same thing for some reason.  I also had to modify the “start.gcode” so that the print head was better positioned for starting a print. []
  2. By this, I mean that when you’re printing two or more features that are not connected, say for example a table that is legs-side-up, an extruder will naturally ooze a little bit of plastic as it travels between legs, leaving a thin spider web like strand.  The “retraction” setting in Skeinforge is used to combat this, and does so fairly effectively in the case of a stepper based extruder.  That setting reverses the extruder motor quickly just after the print head leaves a leg and then quickly moves extra fast forward as it gets to the next leg, which prevents the spider web effect. []

Was This Made on a MakerBot?!

Doctor Who Christmas Special 2010: A Christmas Carol
Doctor Who Christmas Special 2010: A Christmas Carol

Netflix has nearly all of the “new series” Doctor Who episodes available for online streaming.  As a guy who grew up watching the show, having it on tap is just plain awesome.  Unfortunately, Netflix does not carry one my favorite episodes ever – the Doctor Who Christmas Special from 2010 entitled, “A Christmas Carol.”  You can’t get the DVD from Netflix and you can’t watch it online.

Thankfully, Empire State Building.  The screenshot appears above.

So, what do you think?  Does that Empires State Building look as if it was printed on a 3D printer?

The worst part about SaaS

And... that's why you don't hack the core
And… that’s why you don’t hack the core

Since I recently gushed on about how wonderful it is to run a SasS business, it’s only fair to share with you a downside.1

This morning I quickly checked my small-side-business SaaS site before heading off to work, only to find the thing that people actually pay to use was not working.  Dropping everything, I quickly started hunting through code.  I haven’t changed a single word of core logic on the site in about six months, so there’s no reason this problem should be occurring.

Except that whenever WordPress asks me if I want to update, I immediately do so.  Sometimes really minor changes to WordPress functionality create huge tangles of CSS and HTML, as it did in this case.  Once I tracked down the problem I quickly hacked together a solution and uploaded it back to the site. 2  Thankfully it’s now working as well as it did before I found this problem.

Because my site has been working so well for so long3 I’ve been loathe to build a better design for the logic.  In the very long run, it will save me time, but in near future/short run of a few months all it will do is suck up time without demonstrating a tangible benefit.  I suppose being less prone to breakage is a tangible benefit, but I spend less than 2 hours a year dealing with minor problems like this.  The prospect of spending two months rewriting and then rechecking code to save 2 hours a year doesn’t seem like a worthwhile investment.

Frankly, what I need to do is come up with some other tangible benefits that when added with the existing fixes I need to perform will have a more tangible4 benefit, and then jump into building them all.
Default Series Title

  1. I don’t know where the original picture comes from, but I got it from this website. []
  2. And, really, it’s a nearly unforgivable hack.  Rather than figuring out how to fix the problem in the plugin, I commented out the newly-bad code and hacked that same code directly into the website’s theme.  I know, I know…  nearly unforgivable.  At least I didn’t try to hack the core.  []
  3. The core logic of the site has been essentially unchanged since about 2008. []
  4. Read: immediate monetary []

Pantsless

Is it just me or it a bit breezy here?
Is it just me or it a bit breezy here?

Ever have one of those days when nothing goes right and you can’t find your pants? 1 Yeah.  Me too.

On the plus side, I’m working to make a cool new printable model.  :)

Also, word of advice.  Never search Flickr for the word “Pantsless.”  Ever.

  1. Photo courtesy of Klara []

Robbed. During broad daylight. At work. By the mailroom guys.

At least, this is what it felt like
At least, this is what it felt like

I was waiting to surprise you with this, but last week I bought a MakerBot and had it shipped to work. 1

Well, it arrived today… and really… I suppose this is my own fault… but… you see… I was just robbed.

One of the best and most irreplaceable things about getting an awesome new robot is unboxing it.  The mailroom guys at work, well intentioned though they are, opened my MakerBot box.  I suppose I could have told them in advance that the robot should be arriving soon and to be on the look out for it.

Nevertheless!  Tonight I have to clear a space in my Robot Work Area so that I can add my Replicator to the line of robot workers.  But what to name it?  My MakerBot Cupcake CNC is named “Bender,” the MakerBot Thing-O-Matic is named “Flexo.”  There are so many Futurama robots to choose from.

I suppose I could chose a non-Futurama name for my new robot, but it really seems such a shame to break a streak.

  1. Photo courtesy of Timo Newton-Syms []
  2. She’s also a bending unit! []

Swing States and Farming

Swing State: The state of being on or near a swing
Swing State: The state of being on or near a swing

This election has been an interesting one to watch – especially since following the analysis on Nate Silver’s 538 blog at the New York Times.  It seems like there are really two different kinds of campaigns going on right now.  (Actually, I’m pretty sure this has been happening every four years – I’ve just been too oblivious to notice).  Living in California, I only see one kind of campaign – a half-hearted attempt from the GOP and Democratic parties to vie for votes, but a lot of political fundraising.  I’m sure that those living in a swing state like Ohio or Nevada see an entirely different election – because this is where the money raised in other states gets spent. 1  All of this makes me think of a national campaign in terms of a RTS video game2 – you farm and defend in one area so that you can fight in another.

Which makes me think, why should I be the plankton?  Why shouldn’t I be the one whose vote is being courted?  And, really, shouldn’t one vote count as much as another vote?  Of these three the less petulant question is about the worth of a vote.  If a presidential election comes down to the opinions of 11.5 million people in Ohio, this means that a single vote cast in Ohio has more of an impact on an election than 300 million other possible votes. 3  So, it seems that although Ohio only 3.69% of the population, their votes mean more than the 96.31% of us.  Fully admitting I have no idea what I’m doing with these numbers, and someone else please correct me, it would seem an Ohio vote is worth 26.10 more than the vote of a non-Ohio voter.

This makes the very cynical part of me want to move to Ohio for six months every four years.  What responsibility and what power!  Imagine being able to cast a super-vote for the presidential election.

  1. Photo courtesy of Bernat Casero []
  2. WarCraft II and StarCraft I being prime examples []
  3. Admittedly, I’m leaning heavily on Google here.  Google tells me that Ohio has a population of 11,544,951 and the U.S has a population of 311,591,917 circa 2011.  Clearly, these are not all people who are eligible to vote.  But, making the totally unfounded and unresearched assumption that Ohio has a roughly similar proportion of voters to general population, we can estimate with wild inaccuracy, or at least flagrant disregard for a scientific method, a rough proportional impact of an Ohio vote versus a non-Ohio vote. []

So THAT’S why I’ve been a bastard each morning

I AM smiling
I AM smiling

I made a large pot of coffee on Saturday, more than I would drink in a single morning, specifically because I’m lazy and thought I would just drink the second half of the pot the following morning. 1  Saturday morning I didn’t see any of the white mugs we’ve been using lately, so I switched to one of the Impressionist-artist themed mugs in the back of the cabinet.  I drank my coffee, had a good day, and all was right and well with the world.  The following morning I poured another mug of coffee, drank that and went back for a second – to discover there was barely any coffee left.  I had just made enough for four cups, so what gives?

It turns out that the white mugs are smaller than the Impressionist mugs by about 1/3.  After making more coffee it slowly dawned on me…  very slowly…  I had been under-consuming coffee2 for almost the last year by about two-thirds of a cup.

Totally unrelated story of this morning.  The coffee shop near my work is apparently undergoing a remodel.  Which explains why no one was there to serve me coffee.  Back across the street to a restaurant that I generally don’t frequent to get coffee. 34  I go in, ask for coffee, and the woman behind the counter5 asked me if I had been there before.  “Yes, a while ago, but I usually get my coffee from Pete’s.”  She went on to explain they have all fair-trade organic coffee, it doesn’t have an aftertaste, and it’s very good.  I said something polite and non-committal – but, really, I would have still bought it and drank it if she had told me their coffee was made from baby seals and brewed with orphan tears.

It occurs to me that I could have done a “This is not normal.  But on meth it is.”-meme style joke. 6

  1. Photo courtesy of patries71 []
  2. That’s a thing, right? []
  3. I’m a simple man and this is an unreasonably complex cafe.  You walk up to the counter, order your meal, then sit down, if you want water you go get it yourself, someone brings your meal to you, and then you go back to the counter to pay.  It’s this weird hybrid between self-service and service that I’m just not comfortable with. []
  4. Plus, they were kinda rude to a friend of mine. []
  5. She had the air of an owner about her []
  6. If you’re not familiar with the meme, you could click through – but some of it is NSFW []