My desktop computer setup has no volume buttons whatsoever. This is a real problem that needs to be solved. But often things don’t get done without deadlines. I only have two hours til a respectable bed time. To make this more fun, I will write updates as they happen without post-editing. Let’s get started:


X:33 – I have a nice potentiometer from Sparkfun that should work well. That with an Arduino would be a nice MVP. Software?

X:42 – NirCmd is a good starting point

X:45 – Looks like pulling data in from the Arduino over a COM port and reading it in a Batch script will work. That’s good enough for me.


X:49 – Analog pin on an Arduino will read voltage across a potentiometer. Arduino will scale that level up to whatever NirCmd likes to see, then constantly send out that level. A Batch script will run on my PC watching that COM port for a change in the value. When it reads a new value it will set the audio level appropriately


Y:14 – Resistor Divider and Arduino analog input values I should expect to see. Resistor Divideer


Y:29 – Lost my friendly book of common resistor values. A minor panic ensued. Fortunately my junk bin had plenty of resistors. Hardware is ready to go.

Arduino and Potentiometer

Y:45 – Arduino code done

2-Hours Up!

Z:38 – Well, I didn’t make the 2-hour deadline. The last hour was spent unsuccessfully fumbling around a Batch script trying to read my COM port. I’m going to check out powershell and give myself some extra time.

1st Overtime

A:05 – PowerShell made it no problem. I now have a working butter-smooth volume knob! Yes it is ugly, but the only criteria was functionality. Plus, I might need another 2-hour project sometime soon.


2015.06.29 PowerShell


My original plan worked out pretty well, with the exception of trying to read a COM port in a Batch script. This was a pretty straightforward and forgiving project to attempt in 2 hours. But it is exactly the kind of project that wouldn’t get done without this kind of push.

Project files available on Wevolver:

After the initial prototype of the Neopixel juggling was well received by the few jugglers I know, it was time for a custom PCB. As usual I tried adding more features than I needed (I need pads for an accelerometer, you know, to future proof it) and forgot some critical components (e.g. the actual Neopixels, an on/off switch, etc.)

The board worked well and I quickly had a much more compact version of the rats nest that was the initial prototype. Once I design a mounting plate for this everything should be ready to go for the first run of real, working reactive juggling balls.


Initial prototype rats nest using Adafruit’s perma-proto breadboard

Custom PCB much cleaner than breadboarding

Custom PCB much cleaner than breadboarding

It was apparent from the get go that these things were going to get dropped. The first few drops on carpet were no big deal, but wood floors and concrete were a different story. The balls never broke, but they made stomach-wrenching cracking sort of sound that did not inspire much confidence. I conducted some drop test experiments with 3 balls printed months apart to find out how durable these things were. I chose heights of 8′ and 13′ since most people juggle with an apex above their head, and 13′ was as high as I could reasonably test. If you’re juggling higher than 13′ you’re on your own for now.

One ball failed (cracked apart at the interface of the threaded and non-threaded section) after 3 drops at 8′. The remaining balls held together through 5 drops at 8′ and 5 drops at 13′. One of these did pop open after a 13′ drop, but it was screwed back together and survived 5 additional drops at 13′.

Overall I’m pleased with the results. The threads are clearly the weakest point as we should probably expect. If I design a PCB mounting plate that can wedge against the middle (the threaded part of the ball) then it should provide some additional support that may improve durability.

Stay tuned to find out if I’m able to ward off feature creep and actually ship this thing.


This year there have been a few attempts at connecting your smartphone to your Arduino. (see Amarino, Adafruit’s BlueFruit UART) Thanks to the MakerHive I recently had a chance to play with the 1Sheeld and come up with a demo project for it.


The 1Sheeld is a board that plugs into an Arduino Uno (thus the misspelling of “shield”) and redirects the UART to Bluetooth so it can send/receive information to/from a smartphone. The PCB is a bit expensive at over $50, but it’s a complete solution that is really simple to program. It is seriously easier than the already-simple Arduino it rides on.

Once the 1Sheeld PCB is plugged into the Arduino and powered up it can communicate with the 1Sheeld app on a smartphone. Once connected, the app let’s you select from a number of “virtual shields.” Check out the list of possibilities.

As a demo project, I made a talking HAL button for the MakerHive. The bot is supposed to greet visitors when the arrive and say good-bye when they left. It will also take a picture of the person and tweet it (the twitter feed will of course be chrome-casted to the TV in the Hive.) Check out the code and video below as well as the page for this.


Try this for yourself. Pick up some polished silicon wafers and support our makerspace here: The MakerHive Store

There are two beautiful aspects of the internet.

1. At some point in time bsolutely everything has been / is / will be for sale online for a really good price

2. Thanks to awesome communities on forums and on Twitter the best stuff tends to bubble up so that I actually hear about it before it’s gone.

Such was the case with a case of 8″ silicon wafers from Electric Goldmine. A friend mentioned that these things are so cheap and interesting that they just had to be useful. And he was definitely right.

Round wafer on a very Cartesian printer

Round wafer on a very Cartesian printer

These wafers are an excellent print bed for several reasons, and they’re perfect for me for a few more reasons.

1. Planarity – lithography at sub 20 nm nodes probably doesn’t work so well if a wafer isn’t perfectly flat

2. Heat Transfer – the combination of excellent thermal conductivity (compared to glass) and rigidity in a relatively thin wafer (these are 0.7 mm) allows for quick heat up and cool down and elimination of hot/cold spots on the print surface.

3. (just for me) Copper plated on one side – My Printrbot Simple Metal’s inductive probe looks for metal to tell how far away it is from the bed. Straight silicon doesn’t cut it. But one side of the wafer appears to be copper plated and polished. That creates a really nice surface for my auto-leveling probe to detect.

So how well does it work?

Pretty much like glass. I retried everything the internet told me to do when printing on glass, and ended up using purple glue stick again with really good results, just like on my previous glass bed.

Another huge advantage is that I’m not clamping the wafer to the print bed in any way. It is only resting on the silicone baking sheet which is clamped to the print bed. This way a wafer can be swapped out after a print for a fresh one, without waiting for the entire bed to cool down. I used to tell myself that 10 minutes to heat up here and 15 minutes to cool down there didn’t matter that much, but it does. What other lies am I telling myself?

Scribing wafers without a diamond scribe is a bad idea. At least Maverick is still giving me the thumbs-up

Scribing wafers without a diamond scribe is a bad idea. At least Maverick is still giving me the thumbs-up

1 wafer post-print, another wafer loaded and waiting

1 wafer post-print, another wafer loaded and waiting

Bat Owl rises from the silicon...

Bat Owl rises from the silicon…

To make this a bit more functional on my printer, I had to raise the print bed by about 1 cm. Already having a 3D printer, making standoffs to accomplish this was a breeze. The stack up is shown below.

Lifting the bed

Lifting the bed

Aluminum Bed

Aluminum Bed

Silicone baking mat for high-friction & thermal conductivity

Silicone baking mat for high-friction & thermal conductivity

Binder clips and fragment of silicon for the home position

Binder clips and fragment of silicon for the home position

Wafer on the bed, smothered in purple glue stick and ready to print!

Wafer on the bed, smothered in purple glue stick and ready to print!


This effort was much more rewarding than I anticipated, both in sheer fun and in functionality. I’ve expended much more effort for much less improvement in the past.

10/10 – Would buy & build again.


Now if anyone has a lead on 12″ wafers at a reasonable price…

In the short time I’ve owned a 3D printer I have called it many things. A 3D printer is “the best reason to own a 3D printer” or “the most fun optimization problem I’ve ever faced.” It may have also been called some other things but I don’t like to gossip. In the spirit of perpetual optimization, I was tempted to improve my print surface and willing to try anything.

All those fancy Ultimakers and Rostocks printing on glass. It was obviously a superior bed surface to my bubbly Kapton and it wouldn’t need to be replaced (at least for a long time). Plus the internet said it was easy (if this adorable kid can do it, so can I!).

First let’s take a look at past print surfaces:

Original Printrbot Simple Metal print bed of blue masking tape

Original Printrbot Simple Metal print bed of blue masking tape

Heated Bed with Kapton Tape and gluestick

Heated Bed with Kapton Tape and gluestick

Both tape (blue masking and Kapton) worked fine. But it was difficult to remove parts and the tape got scuffed up and in some case tore off. Glass was definitely a more elegant solution.

I picked up 3 mm thick glass from a picture frame and needed to make one cut to get it down to size. After several failed cuts I finally got something that was functional and minimally dangerous. As I went to apply the glass to the bed I quickly found another problem. The auto-leveling inductive probe would only sense the aluminum bed at about 2.5 mm away. The probe was more sensitive to ferrous metals so I took a magnet and went looking for large flat pieces of metal around the lab. What I found was the back of a breadboard. After removing the binding posts and cleaning it up a bit added it to my growing sandwich of a print bed. The final piece was some silicone baking sheets (like these) in between the metal and glass to prevent any slippage. The final product is shown below.

Glass bed stackup

Glass bed stackup

Once this was all clipped into place it actually worked pretty well. I should mention, don’t overconstrain the glass. I was using four binder clips which produced significant warpage in the glass. Once I removed one of the clips my glass plate magically leveled out again. Mathematical.

It takes a long time to warm up, but it does work. And you wouldn’t believe how well it holds heat…


See it in action, from multiple angles!

After putting a piezo-neopixel circuit inside drums, juggling balls seemed like a natural next step. With 3D printed juggling balls and some electronics from Adafruit (most notably the 5V Trinket and more Neopixels) the circuit was soldered up and smashed into a translucent plastic ball.

I used “transparent” ABS plastic from Hatchbox to print off a model juggling ball that screws together. After some basic acetone vapor smoothing the end result was decent. There is a lot more that will be done with this in the future, securing the electronics inside the ball, replacing the piezo with an accelerometer, making a custom PCB etc.. But for a proof-of-concept its functional and fun.

3D Model:

Transparent ABS Plastic:

Much more polished version by someone else:

See it in action

See the insides!

How do you know it's a mail plane?

Assembled Parts

It's a bit cramped

It’s a bit cramped

The unfurled electronics.

The unfurled electronics.

In hindsight some thruhole neopixels and stranded wire would have done wonders, but the end result would still be a reactive juggling ball. On to rev 2!

As soon as I got the Simple Metal printer working, I wanted to take it apart and make it work better. A heated bed was the most functional upgrade as it allowed me to ditch the blue masking tape and move to glass or kapton tape and remove my PLA shackles, allowing me to print in theoretically any plastic (realistically ABS). The heated bed upgrade from Printrbot was very easy to install and worked pretty well up to about 80 C. I did use thermal grease between the PCB heater and the aluminum bed because the finish was really rough. It might have been too rough for the thermal grease to help but it ended up working. I added some cardboard and a mousepad underneath the PCB heater to help guide the heat up to the print bed instead of down to my Printrboard. With those modifications I was able to reach 100 C in about 20 minutes. Not great, but functional.

Heated Bed with makeshift insulation

Heated Bed with makeshift insulation

Pipe  insulation - Not as functional as cardboard, but looks better.

Pipe insulation – Not as functional as cardboard, but looks better.

Fan shroud in "traffic-cone-orange" ABS

Fan shroud in “traffic-cone-orange” ABS

Initially I used the square of Kapton tape provided as my print bed surface. Covering the tape with purple glue stick worked very well for ABS and PLA. But I did not give the Kapton the respect and consideration it demands and ended up with some nasty bubbles.

The heated bed upgrade was not without flaws though. As the makeshift insulation might suggest, there are some design elements lacking here. Some issues that should be resolved for more satisfying prints include:

1. Insulation underneath the heater PCB

Solution: Cardboard, Mousepads, Pipe insulation, anything else that will help keep the heat in. I ended up using lots of binder clips to clamp it all together

2. Heat sinking from the black metal wings that connect to the x-axis belt

Solution: Just print some standoffs! You’ll lose some z-height but the bed will reach higher temperatures and do it more quickly

3. No space under the bed for insulation in the original configuration

Solution: Mount the heated bed on top of the wings. I know it’s designed to be mounted underneath to end up with a flush surface that looks really nice, but form over function is not to my taste.


Overall, the heated bed upgrade was an expensive solution for mediocre performance. But it can easily be hacked to resolve some design issues and result in a very functional print bed.

Every Thursday Adafruit runs “3D Printing Thursday” on their blog posting “All the news that’s fit to 3D print.” And every Thursday my lack of a 3D printer grew into a bigger and bigger void deep in my soul. The combination of a small budget and strong desire not to spend money on a piece of junk  left me with an empty space on my workbench.

Enter the Printrbot Simple Metal.

I still don’t see anything on the market at the ~$500 price point with such a high-quality frame and solid print quality. It was (and still is) the perfect entry into 3D printing. I bought mine already assembled and had little trouble following the online instructions to get it up and running. This is still far from a mass-market product, but for anybody with some technical inclination, a willingness to learn and a bit of enthusiasm it the perfect way to spend all those hours you should be sleeping. Watching every printrbot YouTube video before getting the printer doesn’t hurt either. (See bottom of post for the most useful videos)

Stock Printrbot Simple Metal with open source filament holder (beer bottle on a screwdriver)

Stock Printrbot Simple Metal with open source filament holder (beer bottle on a screwdriver)

I was pleased with the amount of PLA filament they included. It was certainly enough to print a few fan shrouds and owls. It took me some time to get used to the idea of slicing an STL file, saving the g-code and telling the printer to run the g-code. Running Repetier Host with Silc3r was probably the right way to start out. Although separating my slicer from my printer host is a much nicer solution. I’m now running OctoPrint on a RaspberryPi to control the printer and just slicing on a separate computer.

My first print was the fan shroud seen in the picture above. That g-code was downloaded directly from the Printrbot website and the print quality was decent. For my second print I downloaded the owl I saw in Cam Watt’s video (linked below). I sent that through Slic3r with a 0.1mm layer height and started printing. I came back a few hours later to find PLA spaghetti all over the printer and half of an owl was laying on the bench (my unspooled filament had gotten tangled up, emphasizing the need for highly engineered filament spool & spool holder). After my initial shock and disappointment I looked at the half-owl that did print and I was blown away by the quality. It was at least as good as any 3D print I had seen online. I immediately scaled down the owl model and starting printing again.

1.5" tall owl in natural PLA at 0.1mm layer height.

1.5″ tall owl in natural PLA at 0.1mm layer height.

I finally had a functional, good-quality 3D printer. That was just the beginning of the adventure. I quickly decided I didn’t like the feel of PLA and needed some upgrades to print ABS. (I might have mistakenly ordered 2kg of ABS filament instead of PLA as well which helped push me towards the heated bed.)

Now 3D Printing Thursday is the best day of the week!



Useful Videos:

Tested Review

Tom’s Honest Review

Cam Watt’s multi-printer test

Printrbot Simple Metal: First Moves

Printrbot Simple Metal: Calibrating the Auto-Leveling Probe

Adafruits NeoPixels are awesome, the Arduino of LEDs. There are a couple tutorials on sound reactive LEDs with the NeoPixels, including one on Adafruit about making a drum set light up when you hit it. The video makes it look like it works, but look carefully and you’ll see other drums lighting up when a different drum is being played. That’s because they’re using microphones which are way too sensitive for a intra-drum set environment. To eliminate the cross talk, replace the mic with a piezo element and read the voltage spikes generated by force of the drum hits.


See it real life!

 See it in schematic!

(coming soon)

See it in code!



Taken: Spring 2013

Rating: 8/10 If you’re into sound and weird professors, this is your bag

Summary: The first few weeks of the class were about what sound/music is and how do humans perceive it. The technical level of detail made it feel like sounds were something that could actually be designed and figured out like an engineering problem. That discussion soon devolved into file formats and granular synthesis which were amusingly interesting, but not enough to hold my attention.

What I learned

  1. Frequency response of the Human ear
  2. Overtones