The elegant, iconic design of the NES cartridge tickles a nostalgic part of our brains. For many, its shape and feel MEANS 8-bit gaming to us. For this reason, what better object to repurpose as an all-in-one console case/controller grip for your own old school game machine?

Using the incredibly tiny, yet powerful Raspberry Pi Zero Linux computer running RetroPie, plus the wonderful Joy Bonnet for all of your button and thumbstick need, this project is as easy as, well, pie!

Parts & Tools

You'll need these parts and tools to build your NES Cart RetroPie:

1 x Raspberry Pi Zero
the heart and soul of the console
1 x Joy Bonnet
to control your games
1 x Male Headers
for connecting the Pi to the Bonnet
1 x Mini HDMI to HDMI cable
video and sound from Pi to TV/monitor
1 x Tiny OTG adapter USB micro to USB
to plug in thumb drives, keyboards, and the like
1 x Micro SD memory card 8GB
OS and ROM storage
  • old, unwanted NES game cartridge
  • 3.8mm NES security screw bit and driver (aka "Gamebit")
  • double stick foam tape
  • box cutter or hobby knife
  • soldering iron and solder

Here's the build video from John Park's Workshop Live:

Prep the Pi Zero

Start off by soldering the male header pins to the Raspberry Pi Zero as shown here.

Add the Joy Bonnet

For testing, you may want to put the Joy Bonnet in place while setting up the software in the next steps, then later reassemble it for use with the cartridge.

The bonnet simple presses down onto the header pins.

RetroPie / Emulation Station

For an in depth view of retro gaming on Raspberry Pi, take a look at this wonderful guide!

And, for a specific guide on using the Joy Bonnet to retro game, check out this one.

First, you'll set up the SD card with this specially prepared RetroPie/Emulation Station image. This contains the operating system, software, and the scripts needed to bind the Joy Bonnet keys to emulator button presses.

You can download the image here.

Once downloaded, burn the image to your micro SD card. There are a number of ways to do this, one of the simplest and most effective is to use

Check out our guide on burning an SD card for your Raspberry Pi here. Note you do not have to uncompress the rar file before burning if you use etcher

Test It

Time to test it out, before building the case. Put the micro SD card in your Pi Zero.

Then, with the Joy Bonnet in place, hook up the mini HDMI cable to your monitor and the Pi, and plug the micro USB power cord into the Pi Zero's PWR IN micro USB port. 

This is a good opportunity to test things out, make sure all of the buttons work as expected, and, of course, play games for a little bit!

Next up, we'll build the cartridge enclosure.

Now, we get to open up the cartridge and turn it into a proper console/controller case!

I picked up a couple of old games at a retro gaming store for just a few dollars each. (Note escalator for proof of shopping mall visit.)

Use your Gamebit security screw driver, and unscrew the three screws.

Now, open up the case and remove the old game ROM PCB.

Make the Case

Place the bottom shell (the one without the game label) on your workbench and then set the Pi in the case behind the lip, as seen here. Trace the Pi with a marker, just so you have a reference point later.

Now, mark some spots to cut out the lip so the ports will be accessible.

Use the box cutter to score the plastic along the base on both sides, and then cut straight down to remove the two pieces of plastic that would be covering the ports.

Using three strips of double stick tape (for the desired height) affix the Pi Zero to the bottom shell.

Top Port

Using the same method as before, cut a matching set of port holes from the top shell's lip.

In order for the Joy Bonnet to sit on top of the cartridge, yet connect to the Pi Zero, we'll need to cut out a small port from the top shell.

You can either measure accurately the position of the header pins and transfer that to the top, or close the shell and squeeze gently to transfer marks from the pins into the soft inner plastic. Use this as your guide for marking and cutting!

Use a straight edge to mark cutting guides a little bit larger than the pin marks, then score these lines with the box cutter until you break through to the other side.

A commenter on the live stream suggested using a heated blade to make quick work of this!

Once you've cut all the way through, pop out the piece, and then clean up the edges a bit with the knife or a file. The nice thing is that this window will be hidden so it doesn't need a perfect finish!

Now, you can close up the shell, and fit the Joy Bonnet into place.

Make sure the micro SD card is in place before you close the shell! I is not inserted in the above picture.

Go ahead and screw the three screws back into place, and it's time to play!

It's game time!! Plug in the HDMI cable and the power USB cable and away you go! If you want to transfer new games onto the NES Cart RetroPie, simply load them onto a USB thumb drive as instructed here, and then plug them into the Pi using the tiny OTG adapter.

If you want, you can also plug in a keyboard and WiFi dongle with an OTG hub in order to get under the hood a bit more.


Enjoy your retro gaming goodness! And remember, NES Cart RetroPies make excellent gifts, especially for friends who were stymied by worldwide shortages of official retro gaming consoles! You can even decorate them with labels and stickers to personalize them.

This guide was first published on Aug 09, 2017. It was last updated on Aug 09, 2017.