Raspberry Pi/Arduino RetroArcade
2017-11-08 | By Jerry Sturre
License: None Arduino Circuit Playground Raspberry Pi
With all the RetroPie/Raspberry Pi Arcades being built, I decided I would try my hand at one – but I wanted mine to be a little different. I’ve never really cared for exposing the ports on the pi in order to plug in power/video/usb, so I used pass-through ports. I also didn’t include a screen, as it’s designed to be plugged into a TV/monitor. There is an exciter for sound with a switch to change between HDMI and internal sound output, and a potentiometer to control the exciter volume. Since there are plenty of projects online describing button and OS setup, I’ll just tell you what I did differently.
A Circuit Playground from adafruit controls the power circuit. When the power button is pressed, the Circuit Playground that monitors it activates a relay which controls power to the raspberry pi, turning it on. The raspberry pi then sends a high signal to the playground to indicate it’s powered up. Once the power button is pressed again, the playground sends a signal to the pi and the pi begins the shutdown process. Once the OS is completely shut down, the playground deactivates the relay – turning the pi off completely. The playground is powered as long as the machine is plugged in, but the power draw is minimal so I’m not too worried about it. There’s also a small red LED on the cover of the box to indicate that it’s plugged in.
I used clear arcade buttons from adafruit. They felt a bit spongy to me, so I added an additional spring to each one which gives them a nice solid feel. And since I was using clear buttons, I added a strip of Neopixels around the inside of the box to add lighting effects. The buttons are great for arcade games, but I also have a Playstation 3 controller that is connected via Bluetooth to play console games. There is a small dongle plugged into the pi so I can use a wireless keyboard and mouse, which allows me to play DOS games, and work with the terminal without opening up the box or occupying the one external USB port. The USB port is really handy for plugging in a flash drive and transferring files, or plugging in an extra USB controller.
The Neopixels provide a nice glow through the buttons and the vents in the front, but the joystick looked pretty dark in contrast. Since I couldn’t have that, I used a 3d printer to make a new hollow ball in which I placed a single Neopixel that I wired into the existing Neopixel strip in the box, so the stick glows along with the rest of the box. I just ran the wires from the ball along the outside of the stick, covering them with a rubber sleeve I happened to have laying around. Heatshrink would have worked just as well.
I used a ribbon cable and rectangular connectors to make the connection to everything on the cover, so it’s easily removable. It’s much easier to make changes with the lid off. The arcade stick and all external buttons were set up directly through the pi’s GPIO using adafruit’s excellent Pocket PiGRRL tutorial.
All of the decals were made with a Cricut crafting machine (including the port labels), as I couldn’t find any pre-made ones I really liked.
Here’s a couple of pictures of the lights (taken under my desk for better lighting)
The wiring is still a bit of a mess, but I’m still looking for the best fit for everything. Once it’s laid out as I’d like, I’ll button up the wiring for a cleaner look.
The parts I used are here: http://www.digikey.com/short/qtvq1q. I also used various bits of heatshrink for the cabling and hot glue to mount the boards and Neopixel strip.
The codes for power and lighting are here: https://github.com/Oldspicy/PiArcade.
Have questions or comments? Continue the conversation on TechForum, DigiKey's online community and technical resource.
Visit TechForum