Custom NES Controller


I recently found myself with a surplus of Adafruit Industries components, I decided to put a few of them to good use by making a custom NES controller.



The design is fairly simple, the only difference between it and a standard controller would be the use of the Center pin on the navigation switch as the Select button.

NES Controller Diagram


I had to resort to using quite a lot of jumper wires since the board is pretty small, it should also work fine on a double sided board (just not very efficiently).

NES Controller PCB Replace the bottom layer (blue lines) with jumper wire.


The controller works great! Though it could use some routing to make it more comfortable.

Front Back – Start Button

Back Front

In Action Use


Raspberry Pi Buildroot update!


My custom Raspberry Pi distro is now sporting an up-to-date userland along side a 3.6.10 kernel and a few more tweaks (including that colorful /etc/issue you see above).

This distro is based on Buildroot, that means it very flexible and well suited for numerous customized embedded linux applications. Makers will find it extremely useful since it can be used to create powerful custom deployments – Want to control a robot using a Raspberry Pi? then this is the distro for you – Please keep in mind that the default configuration builds a system with nothing more than the bare essentials.

Please checkout the README file for more information.

You may download the test-drive image here: (user root – no password)

How to flash

xz -d sdcard.img.xz
sudo dd if=sdcard.img of=/dev/**YOUR-DEV-NODE**


Marshmallow Entertainment System demo image was also updated, now with (buggy) ALSA support!

Raspberry Pi ALSA leaves a lot to be desired, so don’t expect too much. :)

You may download the platformer demo image here:

How to flash

xz -d sdcard.img.xz
sudo dd if=sdcard.img of=/dev/**YOUR-DEV-NODE**


I would like to thanks you all your great emails, the support is much appreciated!


MakeyMakey NES Controller Shield


Today I decided to do something fun, I went to my local flea market for inspiration and found it! It came in the form of a dead but in good-condition NES controller. After closer inspection, the problem was a dead 4021 p2s IC.

I was about to convert it to a TV controller when I remembered it was MakeyMakey Monday!


I started by cleaning the device and figuring out how I was gonna go about wiring the buttons to the MakeyMakey. I then got a few of my Adafruit Extra-long break-away headers and an old red pen (I needed the ink, you will see why in a moment).

I inked the top of the headers with the red pen’s ink and then placed the NES Controller back on-top of the headers; This gave me a clear idea of there I should drill.

I got my trusty hand drill and fitted the headers to the back of the NES Controller. Afterwards, I testing the header locations to make sure the MakeyMakey fit correctly. It did!

My attention them moved over to the PCB, I cut the wires for the controller cable and desoldered the whole thing, IC and all.

I then soldered a few wires from the headers to the controller PCB.

And finally cut the pull-up resistor traces; this step is extremely important! Failing to cut them will result in all buttons getting triggered.

I then cleaned up and closed the controller making sure I didn’t bend any of the internal wires.

Tested it by playing some minecraft.


Up Arrow = W Left Arrow = A Down Arrow = S Right Arrow = D

Select = F Start = G



Marshmallow on the Raspberry Pi

Marshmallow Entertainment System

Back when I was a kid, I decided I wanted to make my own game console. Granted I also wanted to be an astronaut and the first man on Mars, but I had to draw the line somewhere.

[Marshmallow Game Engine][marshmallow_h] started as a way for me to keep my cross-platform game engine chops up during my spare time (not that I have that much spare time mind you). But with the advent of both powerful and affordable hardware like the [Raspberry Pi][rpi], I started looking into creating my own game console again, and I have to admit, I’m very excited.

Continue reading

Raspberry Pi - Power Button Assembly (Front)

Marshmallow Raspberry Pi Power Button – PCB [PROTOTYPE]

First demo PCB board, single-side with 3 jumpers. It’s freshly exposed and ready for drilling. I used a copper board I had laying around, it was a bit scuffed so excuse the pockmarks.

I’ll expose the double-sided version later this week, after I hit the electronics store.

The rpi-pwrbtn repository on GitHub includes the double sided board schem and the MCU code:



I admit, this is gonna be an awesome weekend!

To your left, you will see my Adafruit Pi Box, my second Pi is wearing it already.

In the middle, you will see a brand spanking new solid state drive (box), it’s already installed and waiting for Gentoo to drop.

To your right, my replacement AVR ISP markII programmer, the original died after somebody accidentally stepped on it (** cough **), I use it to program ATMEGAs (I may later on publish a Gentoo + AVR How-To, if anybody is interested that is).

Finally let’s not forget the dasKeyboard Model S Ultimate hosting the party, it’s just what I was looking for in a keyboard; It’s loud, clicky and squeaky.

I’ll write up some reviews on these items after I play with them for a week or so, stay tuned!

But wait! That’s not all!

I did get one more thing, but it’s Marshmallow Game Engine specific.


It’s a Wii Classic Controller USB Adapter, so far it works great with marshmallow_h, the Wii Classic Controller Pro is an awesome controller, this just makes it that more worth getting one (or two, since it can handle two controllers at the same time, Double Dragon anyone?).


Marshmallow PandaBoard

As tasty as it might sound, it seems to not be a nutritious partnership, at least not yet.

Performance ranges from 60 fps to 40 fps at times, I’m fairly sure I can tweak it to work faster since the PandaBoard has far more processing power than the Raspberry Pi, but I’m just not sure about it’s GLES2 implementation.

I’m using PowerVR SGX OMAP4 with the X11-EGL driver, maybe the extra layer is slowing it down, I’m not sure. I tried running marshmallow as a fullscreen window and as the window manager itself, but performance didn’t improve much.

On the bright side, input hot-plug works like a charm, native builds are fast and it has a considerably shorter boot time compared to the Raspberry Pi.

Incredibly handsome engineer, gamedev and trekkie.