Knowledge for the World

Super Gamepad Zero: RetroPie in an Original Super Nintendo controller

  • by Zach (129)
  • 1 hour

Who needs a Raspberry Pi case when your controller can be this case? In this followup to my original NES Gamepad Zero guide, I'll be installing a Raspberry Pi Zero into a Super Nintendo controller in order to add more buttons and gain access to a wider range of games.

In a nutshell, we'll 3D print a new bottom housing for an original/OEM SNES controller and install the tiny $10 Raspberry Pi Zero computer. On the Raspberry Pi we'll install RetroPie, an open-source software library that will allow us to emulate thousands of games.

Don't have a 3D printer? No worries! Read on, and I'll explain several options for getting your model printed.

The Super Gamepad Zero connects to your TV using an HDMI cable and normal Micro USB power supply. Just connect it and start playing your favorite retro games! And there you have it: the controller is the system, all-in-one.

In addition to this text and photo-based guide, I also created a video version of this guide if you'd prefer to learn that way:

I'll teach you as I go. Let's do this.

1

First, the completed project

Just as the great prophets prophesied in their prophecy, first a completed photo! :) I took this photo with the HDMI cable disconnected.

2

The original Gamepad Zero

As some of you may remember, the original Gamepad Zero was a Raspberry Pi in an NES controller. The issue was you were limited to playing fewer games as most retro video game consoles require more than two buttons.

Thus, the Super Gamepad Zero was born.

3

For this project, we'll solder the Raspberry Pi Zero computer to the the original SNES controller's printed circuit board. Then, we'll put the Pi into a new 3D-printed bottom housing to give us easy access to the Pi's HDMI, USB, and port ports.

You can then connect your Super Gamepad Zero directly to a power source and your TV or computer monitor.

Project cost

The total materials for this project cost around $50, including the SNES controller. I already had the tools needed.

Project time

It takes about an hour to assemble the controller and install RetroPie. The bottom controller housing took about 6 hours to print on my Ender 3, but of course I was doing other things while it was printing.

4

For this project, we'll use a 3D model created by designer Sigismond0 and uploaded to Thingiverse. Sigismond0 did a great job designing this and states that he was inspired by bfesser's original NES controller version.

While it isn't a remix, this project was heavily inspired by bfesser's NES version.

Download the model. There are two files -- one with and one without supports. I recommend printing the file without supports, and then selecting the print support option in Cura, or whatever your slicing program is.

Print the model using the recommended settings below. Don't have a 3D printer? Read on!

My print settings for this model:

  • Quality: 0.2
  • Infill: 15%
  • Supports: Yes
  • Build plate adhesion type: Brim

I went searching for 3D printing filament that was closest to the original Super Nintendo color and found this AIO Robotics "Bright Gray" filament to be a great match. And at around 10 bucks, you can't go wrong.

5

No problem. A lot of people don't know there are tons of ways to get a 3D model printed without having a printer. Here are a few of the ways:

Use an online 3D printing service

Many online services such as Sculpteo exist that will print your model and ship it to you.

Find your local hackerspace/makerspace

Chances are, there's one near you. Most have "Open Make Nights" where you can pop in and use the equipment without needing a membership. You can find your local hackerspace using this tool, which lists over 2,000 hackerspaces.

Check your local library

Many libraries now have 3D printers available to use! And if you're a student, your university can likely provide you with access to one. Call your university library's information desk and they can direct you to the college/department that can give you access.

Check Craigslist

Many people advertise their printing services on Craigslist.

Buy a 3D printer

In the last few years, 3D printers have come way down in price. I picked up my Creality Ender 3 for $179 on GearBest. I also wrote a full Ender 3 review if you want to check it out!

6

It's always a good idea to clean up your model a bit, especially when printing support material or brim/raft adhesion.

I recommended printing the model with brim adhesion to prevent warping and ensure that the controller maintains its shape. Ergo, a small amount of edge cleanup is needed.

After removing the support material, I recommend using a box cutter or art knife to scrape the edges and make them nice and rounded once again.

7

Install RetroPie

RetroPie is the software library we'll use for emulating systems and games. RetroPie is essentially a wrapped version of Emulation Station that essentially preconfigures everything to run on the Pi.

I wrote a separate guide on installing RetroPie; use that guide to install it and then return here.

8

Disassemble your SNES controller

I used an OEM Super Nintendo controller for this project (made by Nintendo) since I had a few extras laying around and the model calls for an original controller to be used. If you don't have an original controller, you can probably make an aftermarket controller work -- but the wiring colors likely vary wildly between manufacturers.

I recommend just picking up an OEM SNES controller on eBay for about $15.

Use a small Phillips screwdriver to remove the five screws from the back of the controller. Then, remove the back housing.

9

Give everything a good cleaning

While you're in here, use a Q-Tip and some rubbing alcohol to clean out the years of dirt and grime that strangers left behind!

This is optional but recommended. To do this, remove all the buttons and go to town.

10

Prepare the controller for soldering

The original cord is connected to the board by a small connector; remove it and cut the cable to 5" in length. Then, carefully remove the end of the cable jacket and strip each connector.

These connectors are tiny; take your time so you don't rip all the conductors out.

11

Solder the controller

Now we're going to solder the original controller cable and its connector to the Pi. This will make it easy to connect the Pi to the original SNES controller's circuit board.

Solder each wire to the Raspberry Pi's GPIO header using the attached Fritzing diagram.

Later, we'll configure RetroPie to read these GPIO connections as controller input.

Note: This wiring schematic is different than that of the original NES Gamepad Zero. Specifically, the red and yellow wires are swapped.

12

All soldered up!

You should now have a nice, neat cable soldered to your Raspberry Pi.

13

Add a power LED (optional)

I decided to install an LED in the hole where the original controller protruded. I wrote a separate guide on adding a simple Raspberry Pi power LED if you'd like to do this too.

I secured the LED with a dab of hot glue and taped it to the PCB for extra support.

14

LED added!

I chose a blue 3V LED this time around.

15

Mount your Pi

Use four 5mm screws (linked at the top of this guide) to secure your Pi Zero into the controller housing.

16

I highly recommend installing a narrow heatsink. Taller heatsinks will not fit, so use a short heatsink.

17

Reassemble the buttons

Reassemble all the buttons, being careful not to rip your soldered connections out.

If you're not sure which purple buttons go where, not to worry -- in true over-engineering fashion, Nintendo has labeled them all. Additionally, you can't actually put them in the wrong way since each button is uniquely keyed and slotted. Way to go above and beyond!

18

Connect the cable

Next, connect the GPIO cable to the original SNES circuit board.

19

Secure the controller halves

Finally, put the housing back together and use 4 of the original screws to secure the controller halves.

20

Boot up the Super Gamepad Zero

Connecting HDMI

Connect your HDMI cable to a TV or monitor and then connect it to the Super Gamepad Zero. The Raspberry Pi Zero features a mini HDMI port. I recommend using this long mini HDMI to HDMI cable. If you already have an HDMI cable you plan to use, you'll need to use an adapter.

Connecting power

Next, connect your MicroUSB cable to an AC adapter and plug it into the back of the Super Gamepad Zero. There are two identical MicroUSB ports on the back of the Pi: one for data (USB controllers etc.) and one for power. Connect the AC adapter to the port furthest from the HDMI port.

21

Configure the gamecon driver

To get RetroPie to recognize your Super Gamepad Zero as a regular USB controller, we'll need to do a small amount of configuration.

Connect a USB keyboard or USB gamepad to the Super Gamepad Zero and navigate to RetroPie Setup > Manage Packages > Manage Driver Packages in the RetroPie menu.

Select the 813: gamecondriver option, install from binary, accept the firmware warning, wait for everything to install, and exit the setup menu.

Note: The number next to "gamecondriver" might change with later versions of RetroPie. Just select whichever option says "gamecondriver".

Next, log into your Pi using SSH and run the following command:

sudo sh -c 'echo "gamecon_gpio_rpi" >> /etc/modules && echo "options gamecon_gpio_rpi map=0,0,1,0,0,0" > /etc/modprobe.d/gamecon.conf && reboot'

While your Pi is rebooting, unplug the USB controller or keyboard and you'll see the configuration menu for the SNES controller itself.

Note: If you don't see the configuration menu, don’t panic. Just reconnect your keyboard or USB controller and use it to navigate to Start > Configure Input, and then use your GamePad Zero to fill out the confirmation options.

22

Playing with friends

So what do you do if you want to play with a friend? Simply connect another USB controller to the Super Gamepad Zero's USB port or use a bluetooth controller!

23

All done!

Questions? Comments?

Post in the comments section below and I'll do my best to help you out.

Next, learn where to find ROMs for RetroPie and how to install them!