July 25, 2022
Description
The box is designed to house a Raspberry Pi 4, one “sleep” button, and 9 console buttons to provide basic console functions (e.g. menu navigation). There's also a clip in the top to hold an optional Raspberry Pi case fan.
The sleep button is a 16mm momentary pushbutton. For example: https://www.adafruit.com/product/1479
The remaining buttons are bulk 7mm pushbuttons: https://www.amazon.com/gp/product/B07KX24WWS
NOTE: While it's technically possible to play a game using these buttons, I wouldn't recommend it. They're intended primarily for menu navigation. You're much better off attaching a USB game pad or similar controller.
Some things you're going to need to get this thing going:
4 screws (3mm / #4 by 15mm / 5/8") similar to these: https://www.amazon.com/gp/product/B00GDXW0A6
RetroPie: https://retropie.org.uk/docs/First-Installation/
GPIOnext: https://github.com/mholgatem/GPIOnext (for mapping the console buttons)
A power button script: https://github.com/Howchoo/pi-power-button
A Raspberry Pi case fan and heatsink: https://www.raspberrypi.com/products/raspberry-pi-4-case-fan/
You're also going to need to do a lot of wiring to connect the buttons to the GPIO pins. And there'll be a lot of messing around with RetroArch settings to get everything mapped just right (I'm still trying to get it set up the way I like).
For my setup, I've mapped the exit button (upper left) to both “close content" and “enable hotkeys” so that just pushing the button exits the game, rather than some key combo.
One caveat: The case fan control uses a GPOI pin, and can interfere with GPIOnext. To avoid this, use the "gpionext set pins" command to list the pins you're using for console buttons, and only those pins.
I'm currently using this with a Logitech gamepad and a trackball I put together (https://www.printables.com/model/247472-trackball-controller).
I've included a couple keycaps for the 7mm buttons. These are totally optional if you'd prefer to label the case instead.
License:
Creative Commons — Public Domain