Category: Projects

It has been a while since my last post. Lots of stuff going on. Here’s a quick summary.

Earlier in the year I was elected to the board of directors at SkullSpace. It is really great to see all the things people are doing there and to be a part of making that happen.

For a while now I’ve been working on a bit of a side business. The idea is that we will develop, manufacture, and sell open source electronics. Ultimately, we intend to sell them with a pay-what-you-want model (with minimums) as well as pay-who-you-want (ie. allow the customer to direct where they want some of the profits to go; designer, influential projects, charities, etc). If you are interested, you can sign up for our mailing list on our website.

One of the first products I’ll be posting is an RGB LED ring display for a rotary encoder. Additionally, it adds capacitive sensing to the encoder so it can tell when the user is touching the knob. The firmware is still a work in progress, but I made a simple demo video to showcase the basic features.

RGB Rotary Encoder Display Demo from Benjamin Bergman on Vimeo.


Introducing the μJoypad, the worlds smallest NES controller! Measuring in at 25.4×12.8×3.2mm (1.0×0.5×0.1in) this is, by my best research, the worlds smallest, fully functional NES compatible controller. A couple months ago I saw an article or video of the world’s largest game controller and thought to myself “I bet I could make the smallest” and so I did. The project is open hardware and available on GitHub. More pictures and a description of the design process after the jump.



I got some PCBs in the mail yesterday! I designed these all with gEDA pcb and had them manufactured in the States by OSHPark. In the main picture, from top to bottom, I have an FFC breakout board for my Bluetooth Kinesis project, an ATtiny45 VUSB breakout board intended to be used as a NES controller to USB adapter, an EasyPoint breakout board also for my Kinesis mod, and my μJoypad. I’ve already found one problem with EasyPoint breakout (my own fault, even though I was warned about it). gEDA pcb outputs 2 drill files, one for each of plated and un-plated holes, but OSHPark expects those to be combined, so my unplated holes were not drilled. Hopefully this is an easy fix with a drill press, otherwise I will just be cutting off the stabilizer pegs from the EasyPoints.


A few weeks ago I was hanging out at SkullSpace and a group of fellow makers were working on their Arduino controlled hi-fi setup. They already had all the hardware for the setup constructed and were working on the interface when they realized that a soft-shutdown mode would be useful for saving state. Unfortunately, the power controller in the system just cuts power to the transformer that provides the Arduino 5 volts. We figured out a solution to this problem and I thought it was pretty clever, so I thought I would share it.

The power controller module used in the system takes input directly from a momentary switch and uses that to toggle a relay that passes mains power to the system’s transformers. The controller circuit operates at 12V and as I understand was chosen to allow a wider variety of fancy lower voltage buttons and power LEDs to be used. Getting the Arduino to act as a momentary switch (via transistors or relays) works fine for powering the unit down once settings have been saved. However, the actual physical power switch needs to work directly with the controller when the system is off, but talk only to the Arduino when the system is on.

To do this, we decided to hook the power button up through a DPDT relay that is switched directly by the 5 volt supply. This way, the button is connected to the power controller when the system is off (ie. no 5 volt power is present) and then once the system is on, the button is connected to the inputs on the Arduino. Since the relay physically switches the button between circuits, it doesn’t really matter that one circuit operates at 12 volts and the other at 5.

In my schematic, I assume that the input pin on the Arduino has the internal pull up resistor activated. I also assume that the relay can be driven directly by the Arduino, which often isn’t the case. You will likely need to use a transistor to drive the relay. Note that thus far the circuit is untested and should be used at your own risk.

For those interested, my schematic is available in gschem format here.


Last weekend my wife and I made ourselves made a new coffee table (well, more like we helped my dad make it for us). As you can see, our table comes with a door knob, a relic from its past life. A few weeks ago we stumbled upon another’s efforts to repurpose a door into a table and decided to try for ourselves.

My father-in-law already had some old doors sitting in his basement, but they were single panel doors. In order to get a cleaner look I decided that we should miter the cut and make the table look like it had just been folded over.

Since we have a rather long couch, our original idea was to use two doors: one for the table top and one side, the other for a shelf and the other side piece. However, after measuring to see how much longer this would make the table, we realized that we would only gain about 15 cm as we would still be cutting off the top and bottom to get us our folded look. Once we added in the fact that the second door was in much worse shape and was actually slightly narrower, we decided the extra effort wasn’t worth it so we ended up just using the one door.

At this point, we were still thinking we wanted a shelf and possibly also feet. One advantage of using a single panel door over a multi-panel door is that the height is much more flexible. We aimed to have the height of the table be slightly shorter than the couch seat height to allow for the addition of feet, but after a minor measurement error, we ended up with the table being almost the exact height of the couch. This turned out to be a blessing as, once we had the table assembled, we realized that we liked the looks of the table without feet or a shelf.

The one down side to using a single panel door is that the centre panel is not very strong, but it makes up the majority of the table top. In order to help solidify the top in case someone decides to sit on it or something, we added a few 2×4 support pieces to the underside of the table.

So far we have decided not to add a shelf as the look of the table is currently quite clean and has enough room for us to store some baskets full of board games. We still have some finishing work to do (fill in some of the joints and screw holes with wood filler, re-stain the heavily sanded corners and support beams, etc) but for now it is in service and we are really enjoying it.