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.


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.