Knowledge for the World

Pi Cart: a Raspberry Pi Retro Gaming Rig in an NES Cartridge

  • by Zach (81)
  • 1 hour 30 minutes

I just put 2,400 vintage games (and an emulator to run them) into an NES cartridge for about 30 bucks. Computing power has finally become small (and inexpensive) enough to make such a project possible. What a wonderful time to be alive. :)

The basics of what I'm calling the Pi Cart (great name, eh?) involve a Raspberry Pi Zero, an old NES cartridge, a small USB hub and adapters of various sizes. Unless you want to get crafty or save a few bucks on adapters, no soldering is required.

This guide will show you how to build your own PiCart. When you're done, you will be able to connect the Pi Cart to your TV or monitor and get playing.

I also made a little intro video to show how it works in case you're interested:

In these interests [?]
  • pi
    82 Subscribers Subscribe
  • gaming
    25 Subscribers Subscribe
  • retrogaming
    12 Subscribers Subscribe
1

The completed project

Just as the great prophecy prophesized, first a finished photo of the finished product.

The completed project
2

Gather your materials

Raspberry Pi Zero
For this guide, we'll be using a Raspberry Pi Zero, which -- if you're not familiar -- is a very small $5 computer built by the Raspberry Pi Foundation. Many people have had trouble locating a Raspberry Pi Zero since until recently supplies have been extremely limited; however, both Adafruit and Pimoroni have them in stock.

Adapters
Because the Raspberry Pi Zero requires the use of HDMI and USB adapters one of the most difficult parts of this guide was finding and ordering (and often reordering) adapters that would fit inside the NES cartridge. To make it easier for you, I've linked to the exact parts I used at the top of this guide.

USB Hub
The USB hub is only necessary if you want to use more than one controller. I decided to install one in my Pi Cart since it was inexpensive and I'd like to be able to play 2-Player games with my buddies. Because USB hubs draw a bit more power, I recommend using an AC adapter that is at least 2A (linked above).

NES Game Cartridge
Don't destroy a good game -- I was found some crappy NES games for $2 each at my local gaming store. If you don't have such a store near you, you can find an inexpensive cartridge on eBay (hint: NES sports games are generally very inexpensive since most were terrible).

I went with a copy of Back to the Future because it's terrible (thanks LJN).

Gather your materials
3

Gut the NES cartridge

Nintendo used proprietary security screws on their cartridges. I recommend spending a few bucks on a security screwdriver, but if you want to save some money you can also make your own (though I didn't have much luck with this approach).

Remove the 3 security screws and marvel at how small its contents actually are. Then, you can toss aside the old cartridge board. But before you do..

Fun fact: On the board you can see the famous NES "lockout" chip -- this is the chip that Nintendo rationed to game developers to ensure that only "authorized" developers could release games for the NES. Companies like Tengen (an Atari subsidiary) were able to get around this (illegally) by successfully petitioning the U.S. Patent Office for documents that detailed how this chip worked.

By controlling the quality of the games that could be played on the NES, Nintendo was able to pull the video game industry out of the video game crash of 1983. Tengen was sued by Nintendo and the U.S. Patent Office changed how they handle the secrecy of software patents as a result of this case.

Gut the NES cartridge
4

Install RetroPie

RetroPie is a software package for the Raspberry Pi that will ultimately run our games for us. I've written a separate guide on installing RetroPie since it has several steps, but it doesn't take long.

Since there's no real reason to install a WiFi adapter on your Pi Cart, simply use the USB drive approach for installing ROMs rather than transferring them over your network.

Install RetroPie
5

Test your system

Before we begin putting everything into the cartridge, we need to test our connections to make sure everything is in working order. Connect the Micro USB and Mini HDMI adapters to your Pi. Then, connect your USB hub, USB controllers, and HDMI cable. Lastly, connect your AC Adapter. Your Pi will now boot and you should be able to see the RetroPie UI. Shut everything down safely (as mentioned in my other guide).

6

Widen the cartridge opening by removing the opening cross-supports

To mount our various ports in an accessible way, we're going to remove a piece of the cartridge housing near the opening.

Using a razor blade or Dremel, remove the cartridge opening "cross-support" from both halves of the cartridge. To easily remove this cross-support, I scored it several times on each side using my box cutter and then snapped the piece off using a pair of pliers.

Widen the cartridge opening by removing the opening cross-supports
7

Cross supports removed

All done!

Cross supports removed
8

Ditch the USB hub casing and LED

The USB hub I used is housed in a plastic casing; we don't need that, and it takes up a lot of space. Using a flathead screwdriver (or your fingernail), pry open the casing and toss it.

If you're handy with a soldering iron, now would be a good time to shorten the hub's USB cable or solder a Micro USB cable directly to the hub. I decided not to do this out of laziness.

One more thing -- the USB hub I used has a pretty tall LED that gets in the way when trying to close the cartridge. Use a pair of pliers to carefully remove this LED (you don't need this one and it isn't visible with the case shut anyways).

Ditch the USB hub casing and LED
9

Secure the USB hub in place

To secure the various ports/adapters, I'm going to use hot glue. Superglue or Gorilla Glue will also do, but I want to be able to remove these easily if needed. Most people don't know you can use a drop of acetone to break the hot glue's grip on your board. Thanks /u/jsprada!

Using hot glue, glue the USB hub in place. Don't recess the ports too far into the cartridge or it may be difficult to plug USB devices into it! I installed the hub so that the USB ports are flush with the edge. Bonus: the USB hub I used fits perfectly between the cartridge opening and a back support (see photo to see what I mean).

A note on cartridge orientation: I suggest you mount your components in the cartridge half that doesn't contain exterior screw holes. This will make it easier to open and close the case without things getting in the way.

Secure the USB hub in place
10

Secure the remaining ports in place

Glue the female HDMI and Micro USB ports into place. I originally used hot glue to secure the ports, but I was worried that the ports might come loose (the ports are very smooth and hot glue doesn't work as well when adhering strictly to smooth surfaces), so I ended up using a bit of super glue instead.

Secure the remaining ports in place
11

Secure the Pi Zero

I chose to used double-sided foam tape for this. It's a bit easier to remove than hot glue and will provide a bit of shock absorption as well.

Pay attention to where you mount your Zero -- certain areas will make it easier to route your cables. I tried a few different configurations and the location in the attached photo is definitely most convenient.

Secure the Pi Zero
12

Route your cables

This part will become obvious to you after completing the previous steps. The challenging part is routing the cables in a neat way -- check out the attached photo for help.

There are two Micro USB ports on the Pi Zero -- one is for the AC adapter input, the other is for the USB hub. They're labeled, but be sure to connect them correctly.

If you were adventurous enough to solder your USB hub directly to a Micro USB cable or shortened the hub's USB cable as I mentioned earlier, this will greatly reduce the number of cables and make this process a bit easier. If not, no worries -- just take your time and everything will fall into place.

Route your cables
13

Reassemble your case

If you kept our cables neat, this is easy. Make sure they aren't in the way, close the cartridge, and put the three security screws back in.

Reassemble your case
14

All reassembled!

From the outside (and even while holding it), you can't even tell there's a Pi in there -- let alone 2,400 games.

All reassembled!
15

Protect your ports

You may want to pick up an NES cartridge dust cover to keep your ports nice and clean.

Protect your ports
16

READY PLAYER ONE!

Connect everything to your TV or monitor (connecting the power adapter last) and get playing!

READY PLAYER ONE!
17

Notes and future plans

There were a few notes I wanted to add to this guide that didn't seem to fit anywhere in particular:

Heat dissipation
The Raspberry Pi Zero doesn't get very hot (it would be a different story if this were a Pi 3). The ports we installed in the opening of the cartridge actually cover less than 50% of the total surface area of the opening, providing plenty of ventilation. I've been using the Pi Cart for a very long time and it's barely become warm to the touch.

Power button
It doesn't have one! In order to lower cost while promoting an interest in electronics and programming, the Raspberry Pi Foundation decided not to include a power button. However, you don't want to simply unplug your Pi while it's running as this can corrupt the SD card. No worry though -- you can simply shut down the Pi through the RetroPie menu before unplugging it.

Internet
The Pi Cart doesn't need the Internet -- after installing the RetroPie image, simply install RetroPie ROMs via USB to transfer ROMs to your Pi Cart.

Consoles the Raspberry Pi Zero can emulate
The big limitation on which consoles/games you can emulate is actually the Pi's GPU. The Pi Zero can pretty much emulate every game for every system up to (but not including) the N64. However, there are thousands of titles for the NES, SNES, Genesis, Atari, and countless others -- not to mention nearly every arcade game ever -- that you won't have time to miss the newer systems.

Planned Raspberry Pi and Pi Cart guides
I have a few more guides planned for the near future related to the Pi Zero, so stay tuned:
- Install a status LED: this will blink while booting, stay solid while booted and turn off when it's safe to unplug. - done!
- Build a Game Boy Zero: similar to the Pi Cart but in an original Game Boy, you can play this one on the go.
- Build a Pi Cart in a smaller form factor (looking at you, Game Boy or Game Gear cartridge).

Anyone interested in a PCB for this?
I'm toying around with building a printed circuit bord for the ports that will fit directly into the cartridge slot with cables preattached (and no cutting required) -- if you might be interested in ordering one of these, post in the comments below so I can gauge interest and decide whether to proceed. :)

Questions? Comments
Post below! I'd love to hear them.

Notes and future plans
18

Next: Add a bluetooth controller (Optional)

Sit back on your couch and play retro games the modern way by using a bluetooth gamepad with RetroPie.

Next: Add a bluetooth controller (Optional)