Raspberry Pi Zero inside an SNES Controller – The SNS-005Z

I received a raspberry pi zero recently and thought it would be a fun project to fit it into an official SNES controller

I was inspired by these similar projects:

The main changes I was looking to try being:
– Use an original SNES controller
– Have HDMI out and power switch coming out the top
– Run it on an internal battery (with charging port on the bottom)

I am really happy with how it came out
It runs for about 2 hours give or take, hooks up to any TV with just an HDMI cable and it was a great way to learn/practice soldering and electronics

Wiring Diagram:

Case Modifications:

– Raspberry PI Zero (v1.3) –
– Super Nintendo Controller (model #SNS-005)
– Powerboost 500c –
– Lithium Ion Polymer Battery (3.7v 500mAh) –
– Slide Switch –
– Mini HDMI Male to HDMI female adapter –

How to setup up the gamecon driver to work with RetroPie:
– Blugoo’s step by step –
— The only difference to watch for is that we are wiring up an SNES controller instead of an N64
— So based on my wiring diagram above the modprobe command to use is “options gamecon_gpio_rpi map=0,0,0,0,0,1”
– Also helpful is the readme file from the gpio driver here –

If you have questions please don’t hesitate to ask in the comments below. I’ll do my best to help out.

Thank you!

Update 12/28/16:
@GroveMerida did a great write up on how he built his over at Lots of great photos and details there – Check it out!

46 Replies to “Raspberry Pi Zero inside an SNES Controller – The SNS-005Z”

  1. Dave Stratton

    I've never undertaken a project quite like this. I ended up making 5 of these, and the video was incredibly helpful. Kudos Anthony.
    Lessons learned:
    1) I tried cutting corners with a USB based SNES controller. I tried three brands (Buffalo, Tomee, Gtron) and none of them were designed with extra room in the back of the controller. Buffalo will just barely fit everything, but you have to relocate two capacitors and a quartz resonator from the back of the board from the front, and its really difficult to do that because you have to angle the capacitors away from the buttons, and the resonator is meant to be soldered from the opposite side. They put them on the back of the board for a reason.
    2) It is way harder to try to use threaded cable rather than solid core wire (rookie mistake)
    3) You can save a little time if you carefully chip away at the white part of the snes wiring harness with a pair of cutting pliers until the metal prongs are exposed, and solder the cables directly to that; cover up with a little hot glue if you think they will push into each other when closing the controller. Overall, this saves you the time de-soldering the existing wiring harness.
    4) Soldering the jumper cables to the GPIO through holes of the Pi zero is helped out a lot with just a touch of flux. (Again, I'm new to this, and had no idea how much easier flux makes it)
    5) If you used the pinout graphic included in the video comments here , you can simply install the gamecon driver following the instructions on https://github.com/retropie/retropie-setup/wiki/GPIO-Modules.
    Just load up the retropie setup menu, and the rest is really intuitive.

  2. inufreak483

    Hey Anthony, so I followed along and have my SNES controller/emulator working! However, the only thing that doesn't work are the L and R shoulder buttons. Have you had any problems like this?

    I cleaned the contacts and used a multimeter to verify current can move through the wires connected to the little PCBs for the shoulder buttons. Also used the rubber "feet" to verify using jstest that they do indeed complete circuits because if I place them over the other button spots, they work fine. I noticed that according to this http://www.repairfaq.org/REPAIR/F_SNES.html#SNES_006 the L and R buttons are the last ones to get shifted out. Do you think their signal is being lost because it's running on 3.3v instead of 5v?

    I did notice our boards appear to be the same version (56V313B 1991.6). I feel like if there was some other problem then the controller wouldn't work at all. It's just weird that some buttons do and the shoulder buttons are the only ones that don't. Was wondering if you had any advice?

  3. Kaden T

    Amazing job, I was thinking of adding a pi tft screen in the center but I'm not sure if there is enough space. Also I would have to relocate the start and select buttons as those are inportant. Great idea, I didn't start the project yet as I am still waiting for my 500 mAh battery

    +1 sub

  4. Hassan Rehan

    Such an awesome thing! Would be great in the future to see the pi zero have a little more power because currently it has trouble playing PS1 games and above but games on consoles before that work perfectly!

  5. Jason Simmons

    Great tutorial.I used this in addition to your instructables page. Built one. Works fantastic. Though I had to do a couple of work arounds to get the gamecon driver to work. But they were very simple. Basically used a keyboard plugged in while the controller was still open to get to the configure input menu, unplugged keyboard, configured with the pad. I'm sure there is a simpler way. But I'm not much of a linux guy. Anyways, TL;DR, thanks for the tutorial.

  6. listenable

    this project is amazing, thanks for sharing this very comprehensive guide!

    However, I'm stuck at getting the buttons to work. RetroPie recognizes a second controller on the controller config screen, but does not recognize any of the button presses. has anyone had this issue? I adjusted the gpio modprobe file as specified.

Leave a Reply

Your email address will not be published. Required fields are marked *