Tag: Open Source

A week ago I attended BSides Winnipeg 2015, a local security conference. There were a ton of great talks and lots of interesting people there. The food was pretty good too.

The recordings of the talks recently went up. Among them was a talk that I gave on the relatively new programming language Rust. It was a lot of fun and I hope I can do it again soon.

If you would like a copy of the slides, you can get them here. My talk was heavily inspired by Memory Safety in Rust by Nicholas Matsakis. If you want to learn more about Rust’s memory safety features, I highly recommend checking out his talk.


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.


While working on a project this week, I was trying to see what some silk screen art would look like on a PCB I’m working on, but the “photo realistic” export mode of gEDA pcb was restricted to only green solder mask, tin plating, and white silk screen. The fab house I plan to use only provides purple solder mask, gold plating, and white silk screen. Rather than try to tweak the green image in GIMP until it looks half decent, then repeating the process for each candidate silk screen image (and then each future project as well), I decided I would just write a patch!

My patch for gEDA pcb allows the user to now select a solder mask colour of green, blue, red, purple, black, or a (questionable) white, a pad plating colour of regular tin or gold, and a silk screen colour of white or black. All of these options are pictured above. You can find my proposed patch here, and hopefully it be accepted into the core software soon so that you can get it from your system’s repository.

I’ve been a fan and advocate of open source software for some time now, but I am pretty sure that this is the first time that I have actually submitted a patch to a somewhat mainstream open source project. I’m pretty pumped and I hope to do more soon. I heartily recommend it.

Update 2012-06-14: After some suggested improvement to my patch (additional yellow silk as well as the addition of copper and silver pad plating) my patch has officially been accepted into the gEDA pcb repository! You can get the latest version of the code here: git clone git://git.geda-project.org/pcb.git