Here is my version of the Raspberry Pi arcade coffee table. I got the idea from other great instructables on here and wanted to share my experience with the build.
The table can play games from multiple video game eras including NES, SNES, Sega, Playstation, and N64 (N64 requires the Rpi 2).
Protip: if you are building 2+ controllers, be sure to install the hidden gem Super Mario War and get ready for heated, relationship-destroying battles amongst friends and family. You'll thank me later.
Step 1: Parts
To save cash, I cut up some old IKEA furniture into the following pieces:
(2x) 34" x 6" (apron)
(2x) 21.5" x 6" (apron)
(4x) 17" x 4" (legs)
(1x) 36" x 24" plywood (top)
(1x) 34" long and (1x) 20" long (internal monitor casing)
Raspberry Pi 3 (suggested for better performance, although most emulators run on the RasPi B as well)
LCD Monitor (make sure it is visible when viewed from above. I went with a 27" screen)
Xin Mo USB Controller
(2x) Arcade Joysticks
(14x) Arcade buttons
Step 2: Coffee Table Frame
I built a simple table out of some "wood" from IKEA furniture I was about to toss. I cut the legs from an old table and the apron/sides from an old bookcase. By loosely following the "Build a coffee table" wikiHow, I was able to build a base and frame around the LCD monitor. Just make sure the table is big enough to fit your monitor (mine is 27").
I also built a shelf the width of the table underneath. The shelf is useful to house the speakers, power strip, and loose wires. Leave room above the shelf for an LCD mount and the screen itself.
Step 3: Prime/paint
If you are using pieces from old IKEA furniture, check out this article on the best way to paint the IKEA scraps.
Step 4: Secure the Monitor
To hold the monitor in place, I cut a piece of wood the length of the table and secured it at the appropriate height using metal brackets. I then cut holes to allow for the HDMI/power cable to run though the back of the monitor. I also cut a hole for the stem of the monitor to slide into. The shelf I built into the table frame sits below the monitor mount and houses the speakers, power strip, and loose cables.
Step 5: The Tabletop
Using a jigsaw, I cut a rectangle into the top of the table (sheet of plywood) to match the LCD screen size. I then mapped out where I wanted the joystick/buttons, and drilled appropriately sized holes to mount them. 1 1/8" drill bit worked perfectly for the buttons I had.
Step 6: Wires
I found using the Xin Mo controller board to be a nice way to wire up the buttons/joysticks and connect to the RasPi via USB. The board comes with all the wires you need as well as a mapping diagram. Due to the length in between my controllers I needed to solder some longer wires for everything to reach the board.
Protip: Make sure to map Player 1 and Player 2 buttons to the same numbers on each side - it'll be easier when it's time to configure the software mappings.
Step 7: Software
At the time of writing this, there is an extra step you have to take to get the Xin Mo controller board to register both controllers:
1. Once the RetroPie image is running, SSH into the RasPi and navigate to the following txt file:
2. Add the following to the end of the cmdline.txt file:
You can also test your joysticks/button mappings using jstest:
The RetroPie-Setup Wiki is a great source of information to learn about RetroPie's emulators and supported games.
This blog post is also an awesome guide to setting up RetroPie 3 on your RasPi