Introduction: 2-4 Player Plug and Play Raspberry Pi Arcade

About: Just a guy who loves building stuff

Plug and play, not just a term for those crappy plastic game consoles you bought at your local Walmart. This plug and play arcade cabinet has the works, powered by a Raspberry Pi 3 running Retropie, this machine boasts full customization abilities and any game from the era of Arcade to the N64/Playstation X generation.
I personally already built a full-fledged bartop arcade machine following rolfebox's 2-Player Bartop Arcade Instructable, so a lot of inspiration comes from him, be sure to check it out! This arcade was built for my youth group, where a normal arcade machine is not necessary and a larger screen would provide a better viewing angle for groups. Plus with this design, I was able to allow for a 4-Player iteration, perfect for games like Teenage Mutant Ninja Turtles or Mario Kart. The way this works is there are two separate cabinets, that if wanted, can be hooked together or set up in two locations. The only downside to this is that you need an extra external raspberry pi for the second build. If you want a build capable of being set up in two locations, I suggest buying this NES look-alike case for the raspberry pi, it keeps some of the aesthetic looks of the build and allows for a fan if necessary (overheat due to overclock)

This is my first instructable, so if I miss anything just give me a shoutout!

Step 1: Required Tools and Materials


Most of the parts can be made out of different materials, I used MDF, you might want to change it to plywood or something nice for a pretty wood finish. Same with the internals, I used a base Raspberry Pi 3 Model B (I bought it just before the Model B+ came out sadly), use whatever RPI you feel you will need. In my experience, the original Raspberry Pi Model B can run arcade and NES games pretty well, but if you're considering N64, go for that pi3.


  • If you do have a CNC
    • CNC
    • Drill
    • Various drill bits
    • Basic hand tools (Such as mallets, pliers, hammers, screwdrivers, etc.)
    • Brad nailer and Air Compressor
    • Clamps and Glue
  • If you don't have a CNC you can easily substitute the CNC with typical woodworking tools. You will need a drill press, a router with a straight bit and either a bandsaw or jigsaw in addition to the tools listed above.

Step 2: Designing the Cabinet

I used Sketchup to create an initial model. It's a perfect first step in designing a project, you can use Sketchup in a browser for free and it is very forgiving. If you mess up in the design process or want to change anything, it's user interface makes it extremely easy. Sketchup is a great program to jump into with 3D modeling and get some of the basics down, so I definitely recommend it to anyone who is planning on learning 3D modeling.

Step 3: Some More Design Work

This step is for CNC only, skip it otherwise

Just to start off, a slight disclaimer I'm not anywhere near a master at the CNC, I just started with guidance from my teacher. From what I understand, Thermwood CNC machines can take dxf files straight from Rhino with the appropriate layering and distinguish what to cut out using Thermwood's Nesting program, correct me if I'm wrong, but I don't believe all CNC machines have this capability.

Anyway, what I did was take the measurements straight from Sketchup using the measuring tape tool and transferred everything to Rhino on the top plane. After laying out all of the lines, for any inside angles that the CNC's straight bit cannot cut, I used Rhino's built-in Fillet tool to compensate. Then, every solid piece can be joined together by selecting all the intersecting lines and typing in "Join". Be completely sure there are NOT any double lines. The machine cannot cut a double line, so if you try, the machine won't know what to do. At this point, I created a 4x8 box to show the outside edge of the sheet of MDF so we can lay out all of the pieces in a manner that saves wood. Make sure to leave a gap in between all of the pieces for the CNC's bit to travel through. The last step before we move to the CNC is to layer everything. On the right side of the picture above, you can see all of the measurements and types of cuts needed to be made into different layers. This allows the Thermwood CNC's computer to "nest" all of the layers into a model it can cut. For example, the layer, "CHAINCOMPIN_D0P5_Z0P745," tells the machine to cut a 0.745 inch deep hole with a 0.5 inch tool on the inside side of the line, that's why it is chaincompIN.

(Note: When I cut out my pieces and took the screenshot, I did not add the HDMI port, so if you are observant, you probably noticed that was not there. You will have to add this later, a few holes with your drill and some file work will get the job done nicely)

Step 4: Cut Out the Pieces

Using a CNC

Like I said previously, there's plenty of ways to do this, I used the CNC in my school shop to speed up the process. All you have to do is start up the CNC, navigate to the Thermwood Nesting program and allow the file to load up. The machine will put out stop blocks to line up your sheet of plywood and you're ready to cut. Thermwood's UI provides a very user-friendly experience.

Without using a CNC

Like I've said previously, I don't expect many people to have a CNC lying around, so at the top of the post, you can download the full plans sheet along with a side panel template. There is a lot involved with this project, but I tried to make it as easy as possible. For the side panels, just tape the two-page template together, cut it out with an Exacto-Knife or scissors and tape it down to your pieces of MDF. Then, you can easily cut the pieces out with a bandsaw or jigsaw.

The rest of the pieces are cut with the table saw, just follow the angles provided in the plans sheet.

The control panel will be the toughest part. The plans sheet has the locations of all of the button holes and where to cut out the joystick inlays. Using a drill press equipped with a 3/16 in. Forstner bit, bore all of the control panel button holes and the two player buttons on the front panel. Then change out the bit for a 15/16 in. Forstner bit and bore the two joystick holes, select and hotkey button holes, and if you are planning on making two cabinets for four player capabilities, make sure you bore the side panel hole for the external USB ports. Once all of the holes are bored, swap to a plunge router equipped with a straight bit to cut the joystick inlays on the BACK side of the control panel. When I was making my first arcade machine I made the sad mistake of cutting the inlays on the front, it caused a lot of extra time at the drill press I did not want to deal with.

At this point, you will want to cut the holes for the power mains socket and HDMI port. All you have to do is drill a few holes within the dimensions of the two square holes on the back panel and finish the job either with a jigsaw or a lot of filing. At this point, you should be ready for the next step.

Step 5: Glue and Nail

First of all, do NOT try to just use your brad nailer, this is a huge waste of time and resources. It may seem like it's going together but if you barely tap it, your whole project will fall apart. I would definitely test fit everything with a couple clamps before trying to glue and go through a couple dry runs of gluing so you can get the timing down. A crucial part of any glue up job is not just pressure and amount of glue but timeliness. With cabinetmaking under my belt, it is not a crazy glue up job, but be sure to not pound pieces in place too much, as there are no dados or rabbets joints to hold everything in place. I made this mistake in my glue up job on my first cabinet, so be sure to take your time planning with dry runs. Use plenty of glue, but try not to overindulge to the point you have run out everywhere, and remember the pins are only there to hold it together while the glue dries, so do not rely on them too much to be a strong bond.

Step 6: Give It Some Color

Finishing this cabinet can be slightly tricky, especially with MDF's quality of sucking up paint on the end grain. The way I combat this is by covering the end grain with drywall compound. It gets messy quick but drywall compound sands off really easily, so do not worry about using too much, use generous amounts of it. Next is finish sanding, I started with some 120 grit and moved my way up from there, eventually getting to 400 grit. Any grit above 220 isn't completely necessary but it really softens up the piece. From there, the rest of the day is just painting coat after coat, light sanding in between coats. Just be patient with it and make sure to use primer beforehand.

Step 7: Setting Up the Raspberry Pi

There is a lot you can do to customize RetroPie and fine tune it to your preferences, but this will get you to the point of loading up into emulationstation and playing roms. This step requires some computer knowledge, so if you are struggling to follow, watch some guides on youtube (check out this guide, this channel also has guides on everything else RetroPie).

Anyway, you will need to download the RetroPie Image and Win32DiskImager, which takes the image file and transfers the files to a bootable flash drive for your pi. Then just simply plug in your MicroSD card to your PC and format to FAT32 by navigating to your Computer folder, right-clicking your MicroSD and pressing Format. Once that finishes up, open Win32DIskImager and press the blue folder icon (if you cannot find it, check the image noted above). Then just navigate to the location of your RetroPie Image and press Open. Now you're ready to write to the drive, so make sure that you have the correct drive selected and press Write.

Now you're ready to boot up your Raspberry Pi. Just plug in your MicroSD on the bottom slot of the raspberry pi, plug in your power supply, hook it up to a screen via HDMI and either plug in a keyboard. Retropie will boot up, it may take a few minutes the first time, it has to do some setup work but do not be discouraged by the black screens full of text, just be patient. EmulationStation will eventually greet you and ask to set up a controller, just follow the onscreen instructions, if you have an extra controller you can set it up now, otherwise just set it up for the keyboard. Then navigate to RetroPie Settings and press Raspi-Config. It will come up with a blue screen with grey logos, scroll down to SSH and enable it. Exit Raspi-Config by pressing the right arrow key and pressing enter. You should be back in the RetroPie Settings screen, navigate down to the Wifi application. Follow the onscreen instructions and connect to your wifi network, and make sure it's on the same network as your other PC.

Step 8: Roms

Now switch over to your PC, time to install roms. If you want to learn more about what roms you can and cannot download legally, read this article over at the RetroPie forums. Furthermore, the easiest way to install roms was just set up through your SSH and wifi network connection. If you want to, download WinSCP for full customization options through your network in a nice and comfortable windows style folder system (no command lines!). But you do not have to do that, to download roms the most simple way, navigate to your Network folder on your PC and open the Retropie Folder (and if it is not there, type in \\RETROPIE). Then, just open the Roms folder and add files to the appropriate folders. For example, if you have an arcade rom, you can either place it in one of the MAME (multiple arcade machine emulator) folders or the Arcade folder. Through RetroPie you can select the specific emulators later.

At its very base, you should be at the point your pi runs and can play games!

Step 9: Wiring Controls

This step looks a ton more complicated than it is. I promise you it is not bad, no soldering required! All you have to do is plug the metal side of the wires from the kit on the button (it does not matter what order you put the red and black wire in) and plastic side into the included USB controller board. It is pretty self-explanatory. Just be sure to wire each player in the exact same order as the first, think of an Xbox controller. Every controller is going to be wired the exact same way, and the computer is going to recognize it as an Xbox controller and load up that control mapping. So if you wire up your arcade controls a different way, every board is considered the same type of controller, so when you load up a rom, all of the controls are going to be messed up except for the first player. That goes for joystick direction too. If your joysticks are flipped from each other, as soon as you load up a rom, the second player's controls will be flipped. The reason I say this is when I did my research on arcade machines, I did not realize this, so for a long time I tried to troubleshoot this issue, but upon rewiring everything I realized that was the problem.

Step 10: Some More Wiring! and Assembly of Course

This is the more tricky wiring job. Luckily, still no soldering required. Simply cut the end off of your power strip that normally plugs into a wall, *gasp*, and strip the protective covering a few inches back. I know this seems sketchy if you're new to electronics, but by using these insulated crimp terminals with the proper crimping technique, you will come out fine. Honestly, I was freaked out the first arcade machine I made and found out I had to do this step. Anyway, you will see three wires, black, green, and white. Peel these wires apart and strip the ends of the wire. You're going to need about two inches of the wires to be cut off, I chose green and white, strip these wires on both ends. Then, take your crimp terminals and stick the wire into the round side. Use a wire crimper to secure the terminal to the wire. Be sure at this point to have fed the end of your wire through the back hole where the power mains socket goes, you will not want to have to rewire this. Once all of the stripped ends have a crimp terminal on the end, follow the picture above. There are other ways to wire this, the way I chose to wire it uses less wire but the light on the button stays on all the time no matter if the machine is on or off

Once you have this all set up, it's time to wire up the pi on the inside of the case. First off, feed the wire to the HDMI through and secure it in place. Then, plug your pi into the HDMI cable, plug power into the power strip, and controls and external USB hub into your four USB slots on the pi. If you ended up buying the fan, put that on your pi's gpio pins now. You should be ready to screw your box back together and try it out!

Step 11: Congrats! It's Finished!

You should be proud, play some rounds of Super Smash Bros or Super Mario Bros, trust me, if you are anything like me, you will get a lot of use out of it.

I'm really happy with the design, layout, and theme of this build. If you want to learn more about what I did for this theme, let me know! it is a mashup between Rookervik's Pixel Theme and Lipebello/Phil's Doodles' Space Oddity theme with a few flair pieces for the youth group this was built for. So a huge shout out to them, along with a huge inspiration towards this project, Rolfebox's instructable on a 2-Player Bartop Arcade machine. Like I said earlier, this is my first instructable, and I would appreciate any feedback you may have, and I want to see your changes or flairs on the project, so post them in the comments!

Microcontroller Contest

Participated in the
Microcontroller Contest

Pro Tips Challenge

Participated in the
Pro Tips Challenge