[note 11/10/16: there will be a variant of this for the NES Classic Edition ('NES mini') controller as soon as I get my hands on one...]

This is my design of a replacement back for an original Nintendo gamepad, for use with a Raspberry Pi Zero V1.2 or V1.3 running RetroPie. I have designed this for real NES-004 controllers, so it incompatible with the contemporary 'retro' hardware from China.

Print with support inside the recesses for the case screws, and depending on your printer handles bridging, inside the openings. I suggest PLA with 0.4millimeter extrusion, 0.18millimeter layers, 2 perimeters, 25% infill. Taking the perimeter will reduce artifacts printers, for mushberry and cleaner interface labels.

Recommended Shopping List:
Adafruit Raspberry Pi Zero Budget Pack - Contains Pi Zero v1.3
Adafruit Mini Aluminum Heat Sink for Raspberry Pi - 13 x 13 x 3mm
McMaster-Carr 96817A890
McMaster-Carr 96817A846

This is a remix, but I love to charge those who came before me. If there's enough interest, I might design mods . I would really like to find some makes of the first, though.

I'm still working with photos on documentation. For now, you can pretty much follow w3ace's excellent instructable, but with two exceptions:

  1. Don't cut anything off of the original case part.
  2. During the software setup, following the "308 Gamecon and db9 drivers" measure, instead of editing /etc/modules in nano and rebooting, simply copy-paste-run the following command string:

Sudo sh -c 'echo "gamecon_gpio_rpi" >> /etc/modules && echo "options gamecon_gpio_rpi map=0,0,2,0,0,0" p /etc/modprobe. d/gamecon. Conf reboot & &'

My favorite cables to utilize this:

Print Settings

Printer Brand:









0.18mm layers


25% rectilinear


After carefully removing any supports, all of screw holes in the printed part should be reamed clean with a #45 (2.0828mm) drill -- providing clearance to the case screws and proper thread engagement for the Pi mounting screws. The Pi is held securely in place with four M2.5 x 5 mm screws for plastics (McMaster-Carr 96817A890 or similar), and the case is held together with five of the the original screws (or McMaster-Carr 96817A846). If you've never used plastics screws before, don't overtighten them!

Triple check that you've soldered the wires as shown.

How I Made This

Designed from scratch in TinkerCad, you can modify it here:
rev13 https://tinkercad.com/things/1mLws3kjBLr
rev12 https://tinkercad.com/things/igBxKI3kP1t

Some of my design considerations (not nearly comprehensive):

  • Simplicity, rigidity, comfort
  • HDMI output near center so that it's not awkwardly weighed down on one side
  • appropriate support for PCB under buttons provides the best tactile feel and durability
  • assembles without modification to original case top
  • clearance for a 3mm heatsink on SOC
  • compatibility with either revision of the Pi Zero
  • thicker than original control; more comfortable for adult hands
  • border and corner radii matched to original case
  • precise off-the-print-bed fit to top-half with no trimming, sanding, etc..
  • Stainless Torx screws; not inferior Phillips drive [original screws are JIS, not Phillips]
  • clearly tagged ports for friends and family who aren't RasPi-holics
  • 'Mushberry' RetroPie logo, because it was ideal and the new one sucks
  • durable enough for my 3 and 4-year-old nephews

Legal Notice

The boneheads in Nintendo consider any replica of the ROMs to be prohibited, so what you do with this thing is up to you.


It's compatible with Game Boy, NES, and Game Boy Color games -- those requiring only two buttons and a D-pad.

Some free (legal) NES games to get you started [my favorite is Alter Ego]:

Software Configuration

[still working on this section]

  1. Download: retropie-v3.8.1-rpi1_zero. Img.gz
  2. Extract the image and flash it to your microSD card. There's a GUI application called Etcher to make this simple for novices: http://www.etcher.io/
  3. ...

If the audio is not coming into your TV, run the following command:
sudo sed -i '/hdmi_drive=2/s/^#//' /boot/config. txt

17243 Views 1940 Downloads

Related designs