Raspberry Pi Video Cassette with Retropie
Question?You have lots of old stuff lying around not doing a lot.What do you do with it? AnswerStuff it inside an old video cassette, add a Raspberry Pi Zero W, and turn it into a retro gaming machine, obviously!
Parts listOne old Video CassetteRaspberry Pi Zero W (The W variant has built in WiFi and Bluetooth)HeatsinkSD cardUSB hubMicroUSB to USB adaptor (inside the plug type is best)Mini HDMI to HDMI adaptor (Cable type)Two short USB extensionsMicroUSB breakout boardShort MicroUSB cable you don't mind cuttingSmall button with a length of two core cableWireless keyboard with dongle (optional)HDMI cableOfficial Raspberry Pi power supplyA USB gamepad or twoPlastic standoffs and nutsMesh to block the holesRetropie softwareSome ROM's to play (don't ask me)Labels for the cassetteTools requiredSmall screwdriver to disassemble the cassetteSoldering iron + solderDremel with cutting disc and sanding toolTwo part Epoxy glueMultimeterTools to tighten the standoffs and nutsPC and software (Win32DiskImager) to flash the SD card, assist with the initial setup, and to transfer the ROM's ProcedureThe first step is to flash the SD card with the Retropie image, then put it in the Pi and plug everything in to test it works BEFORE you assemble it all inside the cassette.While you're here you may as well plug in the keyboard dongle if needed, set up the controller in Retropie, and connect to your WiFi, then expand the filesystem.Once you're happy it all works as it should, the next step is to clean up and disassemble the cassette, remove and dispose of the magnetic tape, then remove as much as the inner plastic as possible without compromising the structure of the cassette, or the spring loaded tape cover, I used a Dremel with a cutting disc to remove the bulk of the plastic, then a sanding disc to clean it all up.
Then take all your parts and work out where they will fit best, as I was using my own spare parts they didn't fit as well as new parts bought specifically for this build would.You will need to cut holes in the sides for the USB, HDMI, MicroUSB power, and the reset/shutdown button. (This was retrofitted at a later date on mine)
Use my photos as a guide.The holes for the tape reels are quite large, so cut the mesh so it will cover the holes, and glue them into place.
You'll see later I took the plastic cover off my USB hub to save space, and as the USB sockets are at different angles to each other, I needed to use USB extensions to keep it looking nice.Before you start gluing everything in, you'll need to solder the two wires to the button and the Pi, use a multimeter to work out which pins on the button are the switched pins and solder the wires to them, then solder the wires to the Pi using GPIO 17 and ground, check online for a pinout diagram, but on revision 1.3, with the SD card at the top and facing you, it's the fifth and sixth pins down on the left header row. Just be careful you don't short across to the other pins with solder.
While you have the Pi in your hands, now would be a great time to stick the heatsink on the main chip, so do that.Once you've decided where everything goes, it's time to start gluing...I used Gorilla Glue two part epoxy, mix up the epoxy and fit the standoffs to the Pi, and stick them into it's location, resist the temptation to connect the cables to the Pi at this stage.
My USB hub was quite large when it was in its case, so I removed it, but the screw holes to support the PCB were tiny so I couldn't use the standoffs I already had to mount it, so I fitted the two USB extensions to the hub and glued the plugs to the case, so the board is, in effect, floating. I put some black insulation tape on the bottom of the hub just in case it comes into contact with the mesh and short circuits something.
Next it's time to mount the USB breakout board, but first you'll need to solder the cable onto the pins.Cut the MicroUSB cable so it is long enough to reach from the breakout board to the Pi's power socket with a bit spare, strip the outer insulation to expose the inner wires, my cable was from a power bank, so there are no data wires, if yours has them, then cut them back and insulate them.Look at the following photo to see which wires go to which pin, you really don't want to get this wrong, so check with a multimeter if you're not sure.Once you're happy then mount it on standoffs and liberally glue it into place, you will have to grind down any plastic underneath the standoffs so it's flat, and ensure it's clean so the glue has a good hold onto the plastic.
Once all the glue has dried, it's time to mount the sockets and the button, so glue these in place as well.Eagle-eyed readers will notice that I cut a hole in the top part of the cassette to let the heatsink dissipate heat out of the cassette.
Once all the sockets are in place, and the glue has dried, connect up all the remaining connectors and route the cables around the cassette without placing any strain on them.Then screw the cassette back together.Even the cat wanted to help. Or take over the world. Because cat!
Now it's time to test it, so connect it up and boot it.All being well Retropie will boot up and go straight to the main Retropie screen, there won't be any systems listed until you place some ROM's on it.I won't go into the setting up and transferring ROM images here, but there are countless web pages dedicated to it out there, so you'll be ok. But it's easy to install ROM's via SAMBA networking, or via USB memory.But as of Revision 1.3 the Pi Zero is only good up to the 16 bit era, if you want later then you'll have to use a Raspberry Pi3.Once that's done, you can have a play...
If you can tear yourself away from your favourite games you can add labels to finish off your Retropie cassette, you can buy labels online, or you can print out images on a laser printer like me and stick them on with a glue stick, although try to do a better job than me when cutting them out (the craft knife wasn't sharp enough, bummer!)
And as a nice touch, the LED on the Pi illuminates the nut on the standoff nicely.
The final step is to install the script to make the button work...Go back into the Retropie settings and run raspi-config again, find and enable the ssh server, then exit back to the main screen.On your computer run Putty, or your OS's equivalent, and ssh into the Pi (you can get the IP address in the Retropie settings, also the username is pi and the password is raspberry)Create a new file called button.sh in /home/pi...
sudo nano /home/pi/button.sh
#!/usr/bin/python import RPi.GPIO as GPIO import os import time GPIO.setmode(GPIO.BCM) GPIO.setup(17, GPIO.IN, pull_up_down = GPIO.PUD_UP) print "Starting button.sh..." pressed_time = 0 button = 0 while button == 0: time.sleep(0.50) while GPIO.input(17) == False: time.sleep(1) pressed_time=pressed_time + 1 button = 1 if pressed_time == 3: break if pressed_time<2: os.system("sudo reboot") elif pressed_time>=2: os.system("sudo shutdown now")
sudo chmod +x /home/pi/button.sh
sudo nano /etc/rc.local
python /home/pi/button.sh & exit 0