In this Instructable I'll show you how to make your very own "classic" arcade table with a Raspberry Pi for hours of retro-gaming goodness.
Step 1: Parts and Materials
Raspberry Pi model B (RadioShack #: 277-196)
8 GB SD card (RadioShack #: 44-201)
HD televison (RadioShack)
HDMI cable (RadioShack #: 15-480)
power strip (RadioShack #: 61-003)
(2x) arcade buttons
wire (RadioShack #: 278-1224)
female jumpers (RadioShack #: 276-157)
inside corner brackets
(2x) 12 inch hinge
3/4 inch plywood
1/8 inch clear acrylic
Step 2: Design Overview
The design for the table is inspired from 1980's cocktail arcade tables, the kind you might still find in the dark corner of a pizza parlor. These tables were rather bulky and incredibly heavy due to the clunky power systems and hefty CRT. Thankfully, electronics have slimmed down to the point where we can easily recreate the arcade without the bulk.
Before making anything, I made a 3D model in Fusion 360. The final cabinet is solid black, but I changed the appearance of the model to more easily distinguish the separate components. From this model I was able to create accurate dimensions that I would be able to easily cut with woodworking tools.
Step 3: Build the Frame: Cutting
The entire body is made out of 3/4" ply, which is really .715" or 17.6 mm thick. The cabinet is designed in such a way that every piece can be cut from a single 4' x 8' sheet with a some room to spare. The top of the table measures just a hair over 20" x 33". The top plate is 3mm thick abrasive resistant acrylic with rounded edges. If you happen to live on the U.S. west coast, TAP Plastics will cut-to-size many different kinds of acrylic, and you can even specify a corner radius to match your design.
Here are the dimensions for the main components:
table top acrylic 840 x 510
table top wood 840 x 510 mm (See picture 4)
front panel 780 x 760 mm (See picture 2)
(2x) side panel 760 x 415 mm
back panel 780 x 760 mm
base panel 745 x 415 mm
front center panel 350 x 123 mm
console top panel 350 x 150 mm (See picture 3)
console front panel 350 x 70 mm
console bottom panel 350 x 150 mm
(2x) console side panel 229 x 168 mm (See picture 2)
The holes for the controls are in standard units; .75" for the arcade joystick and 1.125" for the buttons.
For the majority of the pieces, you can use a table saw to cut down the panels. I had access to ShopBot CNC to cut the tabletop, but it's equally possible to do with hand tools. I also used a vertical band saw to cut the curves for the console sides as well.
Step 4: Build the Frame: Main Body
For these next steps I highly recommend an excess of large clamps and the help of a friend. We'll also need the eight inside corner braces and matching screws.
Screw the right side panel and back panel together with two of the inside corner braces.
Screw the left side panel to the back panel.
Take the power strip and slide two screws into the slots on the back to mark the inside of the left panel. Slide the screws out and partially drill them into the marked divots. You should be able to slide the strip onto them. Remove the power strip for now.
Screw the front panel to the left and right panels with the remaining four inside corner braces.
Flip the body over and center it over the table top.
Place the hinges along the back panel and table top and mark them with a pencil for later assembly.
Step 5: Build the Frame: Console Base
Next, we'll begin assembling the arcade console. For this we'll need the two curved side panels, six angle brackets and matching screw.
Take one of the console sides and clamp it to the side.
Attach the two brackets to the piece, making sure to leave enough clearance for the bottom of the console.
Slide the bottom console piece into place and fasten with two more brackets.
Place the opposite side panel into place and fasten it as well.
Place the front piece of the console in place and glue down the base. Make sure to drill the 3/4 inch hole for the USB ports. You may wish to trace around the RasPi as it doesn't lay flush to the base of the board.
Step 6: Build the Frame : TV Mount
Now we'll need to attach the TV.
Take the table top and and lay the TV flat and centered over the main hole.
Cut out six 2"x4" blocks and lay two on either side of the TV. Screw these into place towards the outer length of the spacer blocks. Be sure to countersink these screws so that the next level of spacers can lay flush.
Lay the remaining blocks on top of the now fastened stack.
Lay a long strip of 4" wood across the stacks over the TV, then mark and cut it down to size.
Centered on the new board (and with the TV removed!), mark and drill four 4mm holes that are 100mm apart.
Check to make sure the holes line up with those on the back of the TV.
Towards the inner length of the spacers, screw in the new cross piece to the spacers.
As far near the base of the TV you can go, drill holes deep enough for your T-nut on both sides of the TV.
Hammer the T-nuts into place with a mallet.
Cut down two 1"x4" pieces and drill a 1/4" hole for the screw.
Put the TV back into place and screw it to the cross piece with four 35mm M4 screws.
Slide the 1/4x20 screws through the two sticks and tighten to the back of the TV.
Turn the assembly over to check that the TV doesn't droop. There should be enough give to align it with the hole if a bit off.
Step 7: Build the Frame: Console Top and Electronics
We're nearly done!
Take the console top plate and front top panel and fasten them with two more brackets.
Unscrew the ball of the joystick and slide it into the hole from below. There are many holes, but a screw in each corner should do.
Pop out the micro switches from the bottom of the arcade buttons (there are two plastic nubs that pop in) and unscrew the large black nut.
Slide the arcade buttons into the console top and slide the nut back on to tighten it.
Pop the micro switches back in.
Referring to the diagram on the next page, plug in the proper wires from the joystick and buttons into the RasPi.
Step 8: Setting Up the Raspberry Pi: Configuring Arcade Controls
This step is optional. If you wish to add arcade buttons to your systems, read along. If you're fine with a standard mouse and keyboard, you can skip ahead to the next step. Credit for this update goes to Adafruit for making this wonderful tutorial on how to connect arcade buttons to the RaspberryPi. This is perhaps the simplest method for adding direct control through the GPIO and is easily configurable for different buttons. The Adafruit tutorial is based around the Raspbian OS which is just fine since RetroPie is also just a modified version of Rasbian.
Step 9: Set Up the Raspberry Pi: OS
The heart of the machine is the wondrous Raspberry Pi. The Pi is so popular a choice for arcade emulation, there's even a custom operating system dedicated to emulation: RetroPie. You can download the RetroPie image here. I recommend using an SD card with at least 8GB of space.
Make sure your SD card is properly formatted. You can grab the official SD formatter here.
Write the RetroPie image to the SD card with the Win32 Disk Imager.
That's it! With the RetroPie OS, you don't need to do any extra work to get started gaming. All you need is a keyboard and mouse to interface with the Pi. If you want to play with custom arcade controls, head over to the next step.
Step 10: Final Touches
A solid wood arcade with a nice finish would look great, but I decided to go with a solid black coat of eggshell paint. I wanted the arcade to shine, but not be outright glossy.
The only structural element left is the acrylic table top. For this, I marked six holes around the edge and counter-sunk a 1/2" screw in each.
In order to complete the classic look I was aiming for, I designed some custom decals. I didn't end up using them all, but you can find the vector files and a big ol' raster image if you like to use the art too. I had access to a large format printer/cutter which allowed me to make custom vinyl stickers, but you can easily print scaled down versions with sticker paper on a standard printer. The profiles of the images are basic shapes so that it would be easy to cut by hand too.
Step 11: Usage
By default, the RetroPie OS comes with a few games "pre-installed," but what if you want to add your own? You can find your favorite legal copy of old games at the MAME website.
Installing games is easy with a flash/jump/thumb drive of your choice. With the system powered and running, plug in the external usb memory drive. You can remove the drive after about ten seconds (some drives will have pulsing LEDs to led you know data transfer has completed). Now when you plug the drive into your regular computer, you should see a new file system on it simply titled: "roms." Browsing through this folder you'll see sub folders related to nearly every old console or emulator. Drag and drop your roms into the appropriate folders and plug the drive back into the RasPi. The RetroPie will automatically copy over your game data to the system. Reboot the Pi and you should see you games pop up. Enjoy your new cocktail arcade table!