Main Restorations Software Audio/Jukebox/MP3 Everything Else Buy/Sell/Trade
Project Announcements Monitor/Video GroovyMAME Merit/JVL Touchscreen Meet Up Retail Vendors
Driving & Racing Woodworking Software Support Forums Consoles Project Arcade Reviews
Automated Projects Artwork Frontend Support Forums Pinball Forum Discussion Old Boards
Raspberry Pi & Dev Board controls.dat Linux Miscellaneous Arcade Wiki Discussion Old Archives
Site News

Unread posts | New Replies | Recent posts | Rules | Chatroom | Wiki | File Repository | RSS | Submit news


  

Author Topic: Raspberry Pi SNES system  (Read 3938 times)

0 Members and 1 Guest are viewing this topic.

severdhed

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 2942
  • RIP Dinosaur Hippo
Raspberry Pi SNES system
« on: September 03, 2015, 05:20:10 pm »
I posted most of this in the raspberry pi forum because i need some help, but i got that all sorted out now so here is my project thread.

I setup a Raspberry Pi powered console emulation system inside the shell of an SNES.  I wanted an emulation system that could play snes and nes games, using the orignal snes controllers with HDMI output.

Here is the finished product, then i'll go into the steps below:





I started off by picking up a dead SNES at a local retro game shop.  It cost me $10. it was severely discolored, had a broken power jack, and was full of dead bugs (didn't take pic of that).  I forgot to take pics before i started, but here is the shell after gutting it and cleaning it.



as you can see, it is very yellow, one of the worst i have seen.  The purple buttons were very dark and dingy looking as well..



here is the bottom of the reset button so you can see the original color



I initially tried to restore the original color, but couldn't find any high strength hydrogen peroxide locally.  i ended up trying anyway, soaking it in the regular stuff and oxyclean, in a plastic container in the sunlight for 3 days.  it did help a good bit, but i just wasn't happy with it.  the purple buttons looked ok here (they were still wet) but once they dried, they were washed out and splotchy)



This is when i decided i was going to have to paint it.

before painting , i cut out the rear panel for the connectors.  i wanted to keep it as original looking as possible.  the HDMI extension i used fit fairly well in the original hole for the av jack.  there is a little gap, but i'm not too concerned with that.  i wanted a usb port available for troubleshooting purposes, and i needed power.  In this case, i am using a stanard USB type B connector for power.





i didn't have room internally for the large eject button lever and didn't really want to keep the spring loaded flap over the cartridge port, so i cut some steel mesh from an old PC case, bent it with some vice grips and painted it a medium gray, which closely matched the original eject button color. these were hot glued in place after being painted.



then came the painting. i used Charcoal Duplicolor Vinyl and Fabric coating that i picked up at AutoZone.  this stuff is amazing..it doesn't sit on top like regular paint, but soaks into the plastic like a dye.  It is hard to tell from the pics, but the shell looks like it came this color.











The buttons were painted with Rustoleum UltraCover 2x Gloss Plum spray paint.  the color matches very closely to the original purple.  they came out ok, but are obviously painted...no where nearly as nice as the Vinyl dye.  i learned this trick from someone on anther forum, tape a piece of tape, sticky side up, to hold small items still when painting...it works very well.



here is the painted shell, along with the paints that i used..



next came wiring up the contoller ports.  I simply soldered extensions from the original controller port pcb to a mayflash dual SNES to usb adapter PCB.  doing it this way also supplies power to the original SNES power LED.



I am using the original SNES power switch to cut the 5v line to the raspberry pi, but i had to rig up something for the reset switch.  i lost the little spring that caused the sliding switch to return, so i improvised and used a stretch hair band that i stole from my daughter.    Then i simply mounted an arcade microswitch to one of the original screw posts on the shell.  in it's resting state, the switch is pressed, and is released when you slide the purple button...so i wired it up to the normally closed terminal. This switch is wired to the GPIO pins, it triggers a safe shutdown command when pressed via a python script.




here is my power circuit.

a USB type B port that was cut from an old external hard drive.  the ground wire goes directly to the micro usb port that plugs into the pi.  the 5v line runs through the original snes power switch. (i know you can't just kill power to the pi or it can corrupt the card, that is what the reset switch is for.




I made an ethernet extension so i can plug it into the network if i have to..i didn't have room to mount it on the back panel, but it fits nicely in the little expansion door on the bottom.  I shouldn't need to use it much since it is already set up, but this way i can get to it without taking the unit apart.  i just hot glued it in place.





here is a shot of the messy insides with all of the components hooked up.




here it is next to my other SNES.



a little Super Mario World action


and a few more finished images



« Last Edit: September 03, 2015, 05:24:24 pm by severdhed »
Current Projects:      Zak-Man | TMNT Pedestal | SNES Pi | iCade Bartop
Former Projects:     4 Player Showcase | Donkey Kong

severdhed

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 2942
  • RIP Dinosaur Hippo
Re: Raspberry Pi SNES system
« Reply #1 on: September 03, 2015, 05:26:03 pm »
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)
switch
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 update
sudo apt-get -y install python-rpi.gpio

once that is done, we will create the script.

sudo nano /home/pi/shutdown.py

Highlight and copy the text below (stuff between the <><><><>). right-click in your puty 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")
        break
    time.sleep(1)


<><><><><><>

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

then we have to tell the script to run but making an entry in crontab

sudo crontab -e

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

@reboot sudo python /home/pi/shutdown.py

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/shutdown.py

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.
Current Projects:      Zak-Man | TMNT Pedestal | SNES Pi | iCade Bartop
Former Projects:     4 Player Showcase | Donkey Kong

  
 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31