SNES Retropie System




This instructable will show you how i took a dead SNES console and turned it into a raspberry pi powered retro gaming system. It uses original SNES controllers.

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: What You Need

Items needed:

  • SNES case
  • Raspberry Pi
  • micro sd card with Retropie image installed and roms
  • usb power supply
  • hdmi extension cable
  • usb extension cable
  • rj45 keystone jack
  • cat 5 cable
  • dual SNES to usb controller adapter
  • paint (optional, but recommended)
  • Nintendo security screwdriver
  • snes controllers

Step 2: Gut the SNES Shell

You will need to gut the SNES so it is just an empty case. You will need a special nintendo screwdriver for this. I used a dead SNES that i picked up for a few dollars...don't destroy a working unit. Mine was severely discolored. I attempted to restore the color, but couldn't quite get it.

Step 3: Modify Rear Panel

I used my swiss army knife to cut a few extra holes in the rear panel for various connectors. the HDMI extension cable fits pretty well in the original av port hole. I also mounted a USB extension and the standard USB type B jack which will be used for power.

Step 4: Cut Some Mesh to Fill in the Holes

Since the eject button and cartridge slot aren't going to be used anymore, i replaced them with some steel mesh. this provides some ventilation and just looks nice. I painted this a medium gray color, which closely matched the original eject button color.

Step 5: Paint the Shell

I painted my shell with Duplicolor vinyl and fabric dye. I picked this up at auto zone. i used charcoal gray. This stuff covers so much better than paint because it actually bonds with the plastic and doesn't build up on the surface.

Step 6: Paint the Buttons

I painted the buttons with Purple rustoleum plastic paint. it isn't as nice as the vinyl dye, but it matched the original button color very well.

Step 7: Wire Up the Controller Ports

i used a dual port SNES to usb adapter for the control interface. i simply soldered some wires from each of the 7 pins on the original controller ports to the corresponding points on the USB adapter.

Step 8: Wire Up the Reset Switch, Create the Python Script.

i mounted a standard arcade microswitch behind the original reset button. This switch is wired to the GPIO header on the raspberry pi. this is used to in conjunction with a python script to gracefully shutdown the unit. Instructions below:

Here is how to safely shutdown your RetroPie system via a switch wired to the GPIO pins:

List of items you will need:

raspberry pi running retropie (mine is running v3


two wires with connectors to plug into the pin header,long enough to reach your switch

start by wiring up your switch. (this script uses GPIO17 to trigger the event, if you want to use a different pin, you will have to adjust the script.) connect the two wires from your switch to pin GPIO17 and a ground.

You do not need to add any resistors.

connect to your raspberry pi via ssh.

I used putty in windows. (there are many tutorials on this, basically install putty, enter retropie for the host name and click Open. log in with username pi, password raspberry)you will first need to run the following commands to Install rpi.gpio (this is the part most of the other tutorials leave out)

sudo apt-get updatesudo apt-get -y install python-rpi.gpio

once that is done, we will create the script.

sudo nano /home/pi/

Highlight and copy the text below (stuff between the <><><><>). right-click in your putty window to paste the text.


import RPi.GPIO as GPIO

import time

import os

GPIO.setmode(GPIO.BCM)GPIO.setup(17, GPIO.IN, pull_up_down = GPIO.PUD_UP)

while True:

print GPIO.input(17)

if(GPIO.input(17) == False):

os.system("sudo shutdown -h now")




do a Ctrl X, press Y and then press Enter to save it.then we have to tell the script to run by making an entry in crontab

sudo crontab -e

scroll to the bottom and add this line at the end:

@reboot sudo python /home/pi/

do a Ctrl X, press Y and then press Enter to save it.

now, launch your script manually to make sure it runs, enter the following command

sudo python /home/pi/

it should launch the script without any errors...then simply press your switch and it should send the shutdown command to your pi. let it shutdown and then power off the unit. now turn it back on, it should boot up to emulation station like normal, and when you press your switch, it should shut down.If you followed those instructions, you should be set. i'll try to help, but i'm really new to this i don't know how much help i will be.

Step 9: Wire Up the Power Jack

i cut the usb type B port out of an old external hard drive enclosure to use for the power jack. I cut the end off of a micro usb cable. connected the black ground wire to the ground pin on the usb jack. the red 5v wire runs through the original snes power switch. this way the original button will turn the unit on.

Step 10: Ethernet Extension

I made a small ethernet extension so i can connect this unit to the network if i have to. i ran out of room on the back panel, so i mounted it in the extension port on the bottom, behind the little removable door. i simply wired up the rj45 keystone jack to a short ethernet cable. it plugs into the raspberry pi and the jack fits very well in the opening.

Step 11: Put Everything Inside the Case

getting everything to fit was pretty challenging. i should have taken more time, but i didn't.

Step 12: Assemble the Case

put everything back together. As you can see, it looks pretty nice. You turn the unit on with the original power switch. when you are ready to turn it off, either press the reset switch, which launches a python script to shut down the OS, or use the menu within retropie to shutdown.

Step 13: Play Games

You should be all ready to play games.

Raspberry Pi Contest 2016

Participated in the
Raspberry Pi Contest 2016

Gaming Contest

Participated in the
Gaming Contest

Be the First to Share


    • CNC Contest

      CNC Contest
    • Make it Move

      Make it Move
    • Teacher Contest

      Teacher Contest

    12 Discussions


    2 years ago

    For connecting original (S)NES controllers and even the reset and power buttons, you might also be interested in the ControlBlock. It was designed specifically for that use case and eases the integration of an RPi into a SNES case quite a lot:


    3 years ago

    great job, i'm looking to do something similar and your guide will help me along the way, is there a guide you followed to for the controller part of it? i want to be able to use my original Snes remotes without tampering them, i have 3-4 snes at home that i don't mind taking apart :D

    3 replies

    Reply 3 years ago


    I don't really have a guide for how i did the controls, however if you look at the picture, it is quite simple. i disconnected the ribbon cable that goes from the SNES controller port board to the main board. Each controller port has 7 pins. I opened up the dual SNES to usb adapter i bought on amazon, and basically just soldered a wire from pin 1 on the adapter to pin1 on the original controller port, then just did this with the rest of them.


    Reply 2 years ago

    what brand or dual snes to usb did you use? I got one called retro link I think, and it doesn't work.


    Reply 2 years ago

    i used a mayflash brand adapter....


    2 years ago

    this is pretty cool thinking about doing something like this


    3 years ago

    how did you secure the pi inside the case?

    1 reply

    Reply 3 years ago

    i didn't. There really isn't as much room inside there as you would think there would be. With all of the cables sticking out every side and packed in there, it really doesn't have much room to move around. Plus, it just sits on a shelf, i figured that step was not necessary.


    3 years ago

    Absolutely awesome! Great job man!


    3 years ago



    3 years ago

    good work!


    3 years ago

    Nice instructable, well presented!