The Incredible Computer-Controlled … Computer!

wcb-surface 7

A guest post by Daniel Gentleman 

About a year ago, I started working on a project that used robotics to control a Surface Pro tablet. Not long after I started, I got my first glimpse at the the WaterColorBot on display at Maker Faire Bay Area 2013. The WaterColorBot is designed to carry a paintbrush over a piece of paper, raising and lowering it as needed to paint a picture. The movement and software control is similar to CNC router with special design modifications to make it lighter, cheaper and easier to control. A CNC router has to move heavyweight cutting bit with friction so needs expensive motors, rails, and belts. The WaterColorBot, on the other hand, needs only to move a paintbrush in a low friction environment.

I was instantly sold on the idea of using a WaterColorBot to control the Surface. I backed the Kickstarter, waited for my bot to arrive, and started working on software. When the WaterColorBot arrived, I was not disappointed. The assembly was quick and I was robotically painting in no time.

With the big mechanical and electronic solutions solved, my attention turned to the tablet. The Surface Pro is rare among tablets in that it uses a digitizer that allows extremely precise tracking with a stylus along with “hover” and “right-click” functionality. It does not need to be electrically grounded like a stylus for a screen that only supports capacitive touch. I was certain that the Surface Pro was the way to go, but not quite how it was going to be held together. The project was about to take a another serendipitous turn.

 

wcb-surface 1

The custom-cut spoilboard

At this point, I shared my enthusiasm with Windell and Lenore of Evil Mad Scientist and they gave me a unique offer: Stop by the Evil Mad Scientist shop and together we would make a custom cut spoilboard (lower deck) fitted to mount the Surface Pro 2. Wielding digital calipers and other measurement and software tools, Windell came up with a design that held the tablet firmly and had extra space cut out for the charger, power button, and USB cable.

wcb-surface 2
wcb-surface 3 wcb-surface 4

The area beneath the tablet has a lip and a lower recessed area. This design reduces wobble and makes it look even better. On the topic of machining – I got a few lessons in how larger CNC machines work. Windell showed me some design considerations in software and gave me a safety briefing about the CNC router itself. This thing can cut fast.

After a little sanding, we fitted the tablet, spoilboard, and WaterColorBot together. Having the co-creators of the WaterColorBot with me on this journey was priceless, as we can see from the final assembly. The first spoilboard we cut matched perfectly and the tablet is held firmly in place.

wcb-surface 6

With enthusiasm fueled by seeing it all fit together, we decided to tell the WaterColorBot to do some painting. Windell loaded up an example sketch in Inkscape and, with only a minute to calibrate the stylus height, we were drawing!

wcb-surface 7

The software running on the Surface Pro is called FreshPaint and we chose a simple marker tool. In the video, you’ll hear a laughter break where the Surface picked up the floating toolbar in the app and dragged it around the screen.

Given a little time, we could have taught the WaterColorBot to change brushes and colors in FreshPaint, but our goals for the day were met. The light weight and low friction of the Surface stylus is perfectly matched for use on the WaterColorBot. A custom fitted spoilboard means the Surface will always be at the exact same place on the X/Y plane, greatly simplifying future software development. Next project: Teaching the robot how to see!

wcb-surface 8
(Full disclosure: My day job is Systems Operations with Yammer, a Microsoft company. This project and use of the Surface Pro 2 is not affiliated with Microsoft in any way nor did they influence the project with sponsorship or exercise any editorial control. If they had, I’d try to talk them into contributing a Surface Pro 3! “Surface” is a trademark of Microsoft Corporation.)
 

BAMF2014: Makesmith CNC

BAMF 2014 326
BAMF 2014 327
Part of our continuing coverage of highlights from the 2014 Bay Area Maker Faire

Let’s file this under “intro machines.” The Makesmith CNC, currently available on Kickstarter for just $195 including everything but the Dremel tool. It makes very clever use of appropriate technology: Three tiny hobby servo motors, modified for continuous rotation, turn gears that turn the lead screws (well, all-thread) to drive the XYZ stage. An magnetic encoder monitors the rotation, making a high-resolution, closed-loop control system.  No bushings, melamine-coated MDF parts, Arduino control.  Planned for future open source hardware+software release, too.

Perfect?  Nope, but the creators of the project seem to be keenly aware of its abilities and limitations (many discussed here), and oh does it have affordability on its side.

StippleGen and a low-power DIY laser cutter

Jens demonstrates using StippleGen2 with his low-power (300 mW!) DIY laser cutter and a classic image of Louis Armstrong.

After letting StippleGen2 crunch the numbers for a while I imported the resulting vector graphic file into inkscape and generated the G-code so that I could use my laser cutter to cut the image into a black paper. 2 hours and 23 minutes later I had a 20×20 cm piece of paper with about a 1000 holes in it and it looks awesome! Would be perfect for a lamp shade or just nice to put up in a window and let the sun shine through. I can highly recommend StippleGen2 it’s super easy and a lot of fun.

The Egg-Bot Electro-Kistka

Hardware 1
Pysanky eggs

We’re pleased to announce the availability of the Egg-Bot Electro-Kistka: An electric hot wax pen designed to be used with the EggBot. A kistka is the wax tool used in the traditional wax-resist and dye (batik) method to produce colorful eggs in the same fashion as Ukranian pysanky.

We would like to acknowledge that this is not by any means the first time that anyone has strapped a kistka to an EggBot— We wrote about Ann’s DIY version a few months ago, and we’ve seen other versions (both manually heated and electric) in YouTube videos dating back several years.

Hardware
 Hardware 2 Hardware 4

The Electro-Kistka consists of two main parts, connected by a cable: A heater assembly that gets mounted to the EggBot’s pen arm (in place of the usual pen holder), and a power control board that sits behind the EggBot.

The power control board is relatively simple: it accepts input from a plug-in power supply, and has an adjustment pot so that you can set the power level of the kistka.

The heater assembly has two parallel surfaces that you can see in the pictures.  The upper is a yellow circuit board with control electronics, and the lower red part is a machined aluminum heater block that holds the actual kistka tip.

Hardware 3 Hardware 6

The kistka tip (right) has a small wax reservoir at the top and a smaller-yet point on the bottom that feeds molten wax onto the egg surface through gravity and capillary action.

Designing a good kistka tip is an art unto itself, and we are using field-proven kistka tips, wax, and other accessories from Folk Impressions, manufacturers of the excellent “white handle” electric kistka.  The tips are interchangeable and a number of sizes are available. For all of the examples shown here, we’re using only the #2 (medium) tip that comes with the kit.

Process: two-tone

The basic wax resist process is as follows: Apply wax to the parts of the egg that should remain the present color, and then dye the entire egg a different color.

Twain 1 Twain 2
Twain 4 Twain 5

For a simple two-tone image — white on black — we started with Mark Twain, one of our example images from the StippleGen project.  From a user standpoint, drawing wax onto the egg works exactly the same way as using a felt tip marker in the EggBot — it’s just a different tool that does the drawing.  The wax itself is black-colored beeswax, which is nice because you can see it against the egg.

After the EggBot finishes, we dip the egg in dye for a couple of minutes, and leave it to dry on a grid of little nails.

Twain 7

Once the egg is dry, we remove the wax with a heat gun on the low setting (a glorified hair dryer…) and a tissue. With the black wax gone, the contrast is stunning. (If you are interested, here is how it looks before the wax is removed.)
Eggbot Logo 1 Eggbot Logo 2

Another example of a two-tone egg.  Alternately, you could dye the egg before the wax resist first goes on (say, yellow), and then dye it blue afterwards. The end result would be yellow lettering on a blue background.
Process: Multicolor

overkill 1 overkill 2
overkill 3 overkill 4

Making multicolor eggs uses the same process, but with added complexity.  For this example, we applied wax resist on a bare (white) background, and then dyed the egg yellow and allowed it to dry (upper right).  We then applied a second layer of wax, dyed the egg red and allowed it to dry.  Finally, we applied a third layer of wax (lower left), dyed the egg blue, and allowed it to dry.  The results after removing the wax (lower right) show the white, yellow, red, and blue areas — not bad!

A caveat: It is harder than it looks.  While two-tone eggs are straightforward, we have found it to be challenging to precisely reposition an egg after removing it for dying. Thus, it takes considerable patience and experience to produce multicolor eggs with good registration between subsequent color layers.  We’d be interested in exploring better ways to do this.

traditional 2
Still, maybe it’s worth the effort.

MoreEggs 4

The Egg-Bot Electro-Kistka begins shipping this week.

Eggbot Code Easter Egg

Over in the Eggbot forums, user ragstian has been poking around in the firmware for the the controller board for the Eggbot, the EBB. He found an easter egg: holdover code from an old demo mode which would do standalone plots without a computer attached. The plot above depicts one of the very earliest versions of the Eggbot kit.

And on the reverse, www.egg-bot.com. Nicely done!

WaterColorBot Software and Documentation

We’re wrapping up this week’s updates on the WaterColorBot project with some notes about software and documentation.

Documentation

Our guides for setting up and using the WaterColorBot are already extensive, and still growing. You can find them at the Evil Mad Scientist wiki, or get there with a shortcut: watercolorbot.com/docs.

getting started booklet
Getting Started with WaterColorBot
One of the most important parts of the WaterColorBot’s documentation is our booklet “Getting Started with WaterColorBot.” The booklet covers the process of assembling the WaterColorBot kit, basic usage, an overview of software options, and a host of tips and tricks. It’s available on our documentation site in PDF format.
video still
Assembly video
We’ve put together a setup video, walking through the steps of putting together the WaterColorBot kit. The video is strictly optional, and covers much of the same ground that the booklet does. You can watch it at http://watercolorbot.com/setup.html, or find it linked from our documentation page.

 

Software

There are, at present, three primary applications that you can use to control the WaterColorBot, each of which has unique advantages.

RoboPaint RT
RoboPaint RT
The simplest of the three programs is RoboPaint RT, which is the one that we featured in our Kickstarter video. RoboPaint RT is a “real time” application that allows you to paint with the WaterColorBot. It’s straightforward and manual: Click on a color in the paint palette to change to that color, click on the water to dip the brush in the water, and drag the brush to paint on your paper.

With RoboPaint RT, you can also replay your drawing to make multiple copies, and save the file to open up and print again later. This program can be a lot of fun to play with and is a great way to get acquainted with the WaterColorBot. For those with good artistic skill, it can also be a remarkably powerful program.

 

RoboPaint
RoboPaint
Next up is RoboPaint, another stand-alone application written by the WaterColorBot team. In RoboPaint, you can open existing artwork in SVG format, snap the colors to your paint palette, and paint the document. It also has a rudimentary edit mode that lets you create new drawings to print. If you’re starting with existing SVG artwork, RoboPaint is generally the best of the three programs to use for a few different reasons. Most importantly, it’s good at automatically filling in large solid regions of a painting.

 

Inkscape drawing
Inkscape, with extensions
The third primary application is Inkscape, a superb, free vector graphics editor, for which we have written an extension (a plugin) to control the WaterColorBot. Our extension provides fine grain control over exactly what will be painted, but more-or-less requires that you create the artwork within Inkscape to take full advantage of the features.

Above, the drawing used to make the Robo-painted thank you cards that we wrote about earlier this week.

Inkscape is also capable of importing artwork in PDF format (as well as tracing bitmap graphics to some extent), and saving as SVG graphics that can be used with RoboPaint. If you’ve ever used an Eggbot (and its Inkscape based driver) you might want to start here, before trying the other apps.

 
And if you like to code…
For developers (and people who just like to tinker with code), there are additional options:

- Rolling your own, starting with our examples. RoboPaint RT is written in Java/Processing, RoboPaint is written in JavaScript, and the Inkscape extensions are written in Python. These can provide a nice starting place, in a few different environments.

- Direct serial control. The “EBB” motor controller board used on the WaterColorBot can be independently controlled from any environment that can send serial data to your USB ports.  Its command set documentation is here.

- The RESTful API. RoboPaint includes the “CNCserver” API for WaterColorBot, documented here. You can use this interface to control the robot locally (from your computer) or remotely (from anywhere on the internet, if you enable the remote option within RoboPaint and tell the other computer what your IP address is). Currently this is a low-level API; we are working on a higher level version where you can simply send an SVG file for RoboPaint to process and paint.

 

WaterColorBot kits are shipping now, and we are still taking pre-orders for December shipment.