For retro gaming fans, September is an awfully long wait. Here's a tutorial to 3D print a working Mini SNES Pi Zero with functional switches.
This is my take on a retro gaming console using a Raspberry Pi Zero. The SNES case is scaled to 42% the size of the original.
To differentiate my design from other SNES Pi cases, I made the top switches functional. The power switch slides up and down to the turn the system on and off, and the reset switch is spring loaded to shutdown and reset the Pi. I also changed the power input to a barrel jack, and included a full size HDMI adapter for easier use.
I began designing this around the time Nintendo released the NES Classic edition. I was having a really difficult time finding one in stores, so I wanted an alternative to play some retro games while still having that classic console look.
This is a pretty common adapter which can be purchased from other sources.
I used a USB “Hub man” that I found at Microcenter for $2 but any small USB hub will work.
I made the mistake of buying a pair of cheap controllers from eBay. You get what you pay for so I recommend spending a little extra for a good set of controllers
The parts I used are fairly common components. You may already have most of them lying around from past projects. If not, you can source them from a local electronics shop or an online source such as Digikey, Mouser, or Ebay.
SAE #4 or 3mm Metric self-tapping screws can be used for this project.
I sourced my spring from a Pilot G2 pen, but nearly any pen spring will work.
You can find full details on how to install and run RetroPie on ypur Raspberry Pi Zero from this Github Link.
Likewise, you can find many useful tutorials from other online sources
Much like the original SNES, the exterior switch is connected to a slide switch on a circuit board inside the case. The power switch for this project is connected in between the power source and the Pi. Turning the switch off will remove power for the Pi.
DO NOT use this switch as a primary method of turning off the Pi as it may corrupt the SD card. The best practice is to shutdown the Pi from the RetroPie menu or by executing a shutdown command. After it is properly shutdown, you can then remove power from the Pi.
I used a pen spring to re-create the same action as the reset switch on the original SNES. When pushed, the 3D printed part actuates a small tact switch that will either shutdown or reset the Pi. The switch will then spring back into place. There are several ways to setup a reset or power switch on your Pi. Any method should work so long as you wire the switches accordingly.
I chose to to make the reset switch on my SNES serve as a shutdown button. Essentially when I press the switch, a script is executed that performs a soft shutdown of the Pi; pressing the button a second time will start the Pi up again. This is accomplished by connecting the switch to GND and GPIO3 on the Pi, and installing a Python script that will execute a shutdown command when the state of the pin is changed. I prefer this method because it allows me to safely shutdown the Pi, which can then be unplugged by turning the power switch off. It’s a fairly involved process to setup so I will not go into greater detail beyond that.
A red LED will turn on when the system us booted up.The power LED can also be setup in numerous ways. You can connect it directly to your power source, connect it to the Pi, connect it to the USB hub, or even connect it to one of the GPIO pins and run a script to turn it on.
For simplicity, I recommend connecting the LED to the 3.3V pin of the Pi. For this you will also need a 270 ohm resistor. Please see the schematic in the build guide below.
Step 1: The underside of the Top shell should look like this. For the switches to work properly, the surfaces indicated must be smooth
Step 2: Likewise, the surfaces on the Keys need to be sanded smooth
Step 3: Insert the pen spring as shown. The Power switch can be attached directly using a #4-3/8” screw.
Step 4: The spring and Reset switch should look like this. Test it out to make sure the spring will push the switch back into place.
Step 5: The two switches should look like this. The screws should be loose enough for the switches to actuate properly. If you get a lot of resistance, loosen the screws or try sanding the parts smoother. Petroleum jelly works as a decent lubricant for plastic parts. Try adding a small amount in between the parts for smoother operation.
Step 6: Follow the diagram to populate the perfboard. Drill 1/16” holes for the USB connectors and tact switch. Drill a 7/64” hole for the mounting screw. The placement of these components is critical for everything to line up properly so carefully follow the diagram.
Step 7: The board should look like this once all components are soldered into place. At this point you should test fit the board into the bottom shell to ensure the USB ports line up properly. You should also test the functionality of the Top switches.
Step 8: This is how the major components should fit into the bottom shell. At this point you should check that the barrel plug, HDMI cable, and USB controllers fit into the openings. Next, we need to check the alignment of the switches.
Step 9: Lining up the power switch can be tricky. First, make sure that the top 3D printed switch and the bottom slide switch are in the same position. Next, line up the top and bottom shells and press them together. You can test alignment by moving the switch up and down, removing the top shell, and checking that the slide switch moved positions. The best way to test the reset switch is to connect two wires to the tact switch, thread them through one of the back openings, and connect them to a multimeter. Test for continuity by moving the switch.
Step 10 (OPTIONAL): If you are having trouble lining up the power switch, I have incorporated an alternative configuration to use. Here, you attach it directly to the 3D printed PWR_Switch. The wiring of the switch will be the same and should be done prior to assembly.
Step 11: To use the alternate configuration you must remove a section of the PWR_Key to allow the slide switch to fit. You can then screw it in place and make adjustments as before.
Step 12: After you ensure everything fits properly, you can begin wiring all the components together. Use this diagram for reference.
Step 14: Gather the materials needed to assemble the power LED.
Step 15: Begin by applying a small piece of heat shrink tubing to the LED. This will prevent light from bleeding through the sides of the case.
Step 16: Solder a resistor and some length of wire to the LED. Do a test fit to ensure you have the right length of wire.
Step 17: At this point you should install Retropie on your SD card and configure it. I will not include a guide for this since there are many online tutorials available.
Step 18: Once you have everything soldered together, all the components should fit into the bottom shell as shown. You will need to press the power LED into the cavity. The screws I used to secure the Pi Zero were too long so I used the round spacers. I also removed the LED on my USB hub since the light bled through the case. Tape should be applied to the underside of your USB hub PCB to prevent shorting.
Step 19: Final assembly. Line up the power switches and screw the top and bottom shells together.
Step 20: Paint the Eject panel and controller ports a dark grey as a final touch. Enjoy your new retro gaming system!
License: The text of "How to 3D Print a Super Nintendo Mini with RetroPie and Raspberry Pi Zero" by All3DP is licensed under a Creative Commons Attribution 4.0 International License.
Subscribe to updates from All3DP
You are subscribed to updates from All3DP
You can’t subscribe to updates from All3DP. Learn more…