Building a tabletop controller gaming/arcade system using a Raspberry PI 3 - can be expanded to use USB N64, NES, SNES, and other controllers with front-mounted USB ports. This build does require a laser cutter (I used a LaserCAMM) to minimize total time of the project - I am sorry to those who may not have access to one for this build. I will try to highlight differences that you may experience if you have a different type of laser cutter - the biggest consideration is whether the max material size is at least 24" x 36".


Other resources/references I found to be helpful along the way:

  • Slagcoin - this website provides various button/joystick layouts that you can use
  • Makercase - this website provides the vector image for the case which significantly simplifies this process

Please feel free to substitute any materials for similar items - I prefer to use Amazon Prime for most things. Also, there are different variations that can be used - where you don't use the switches and substitute the shutdown circuit for one with a switch, or not as many buttons, or you can leave out the external USB connectors for expansion later, and you certainly don't need the handles for the case although they are very convenient for opening the case for future modifications and for carrying.

I suspect that most of the Home Depot items could also be purchased from Amazon as well for convenience.

Step 1: Step 1: Preparation


To simplify this build without sacrificing the end product I made the decision to laser cut the case. - I made the decision to use #10 3/4 inch screws to secure the case - once I did that I went to MakerCase and inputted the following settings:

  • Width: 35"
  • Height: 3.5"
  • Depth: 9"
  • Outside
  • Material thickness - make sure you measure the thicknesses of the sheets of Masonite/Duron (or other material) you plan to cut and create a Custom Material Thickness (This is important so that the case fits together nicely)
  • T-Slot
  • Tab width: 0.5"
  • Screw diameter: #10 or whatever you decide
  • Screw length: 3/4" or whatever you decide

Generate the case and make sure the settings are to your liking - please note that you should determine the kerf of your laser cutter, mine is 0.004" (This is important as well so that the case fits together nicely).

This outputs a .svg file - similar to what I have attached - that can be imported into Illustrator for editing

At this point, you need to head over to Slagcoin and decide what joystick/button layout you want to use - I printed out all of them to the correct size (read the page carefully for how to do this) and decided on one that I liked the best.

Now that you have all the parts, you have the case in Illustrator and you know what layout you want to use, you just have to layout the rest of the holes you will want cut to ensure that everything comes together nicely. I also made the decision to add some internal support braces because I knew my son would give it a beating and I made spacers to raise the Raspberry PI and IPAC2 off the bottom. This takes time but is worth the effort - if you buy all of the same components, you should be able to use the attached Illustrator file for your project.

Step 2: Step 2: Cutting Out the Case

Now that you are ready to laser cut the case, you need to convert the .ai file into .dxf which is completed by File > Export > change to .dxf and use all Default settings (of note, this step may be different for you if you have a different laser cutter as some will accept .ai files natively)

Note: I had to separate the three artboards into three different files and then I had to set the bottom left hand corner to the origin and set it to 0,0 (X,Y) for my laser cutter but this is relatively straightforward

This next step is pretty straightforward - cut out the layouts you built - took about 20 min per sheet for me (2 sheets total)

Step 3: Step 3: Assembly

Now that you have cut out the case, it is time to assemble the case and components

I could go into incredible detail here but it is pretty self-explanatory, the case press fits together and then you bolt it on, attach handles, secure the Raspberry PI and IPAC-2, install the supports, attach USB ports/, screw on power/reset buttons, etc. - please feel free to reach out if you have any specific questions

Step 4: Step 4: Wiring

I started with the power and reset switches, then I wired up the buttons/joysticks

For the buttons and joysticks, this site put together by Ultimarc is your best resource

This is how I chose to wire everything up in case you want to follow my steps verbatim

Step 5: Step 5: Installing Software

  1. Format SD card to FAT32 and unzip BerryBoot onto the card
  2. Boot up Raspberry PI with BerryBoot installed
  3. Connect the Raspberry PI to the internet either through ethernet or wireless (if you have PI3)
  4. Download and install RetroPie image (best if you don't encrypt because you won't always have a full keyboard)
  5. Let it boot up into RetroPie
  6. SSH in the RetroPie, command for Mac OSX is ssh pi@[IP Address], password is raspberry
  7. sudo wget http://files.mausberrycircuits.com/setup.sh
  8. sudo bash setup.sh
  9. sudo reboot
  10. That installs the switch you wired up
  11. When you first boot into RetroPie it will have you set up a single controller but because you are using IPAC2 you will have to configure it to see a second player (since its coming from a single keyboard emulator)
  12. To do this: sudo nano opt/retropie/configs/all/retroarch.cfg
  13. See attached input_player2 changes (this works if you use exactly the same wiring as me, otherwise, reference the IPAC2 website)
  14. Now install roms and you should be good to go

Hope you enjoy!

<p>Great instructable!</p>
<p>Thank you</p>
<p>Nice work.. I have a couple of questions though...</p><p>1) why install BerryBoot then retroPie where you can boot directly to retropie from an image?</p><p>2) In this step, &quot;sudo wget <a href="http://files.mausberrycircuits.com/setup.sh" rel="nofollow"> http://files.mausberrycircuits.com/setup.sh&quot;</a></p><p>This looks like it sets up the GPIO Pins for what looks to be reset/power based on the breakout that you used... most Pie's have these pins afaik. you just need to solder in 2 pins and hook up a button. Single click is power and any clicks after that is supposedly reset.. i might be wrong though.</p><p>Now all that is left is to give it some color and All should be great!</p><p>Well done once again...<br></p>
<p>Thank you for this feedback - hope I can answer your question</p><p>1) I chose to do this because I wanted to also install Ubuntu Mate and Raspbian alongside RetroPie - the external USB connectors make it easy to plug in a keyboard and mouse for surfing the web. Alternatively, you could do exactly as you suggest</p><p>2) I wanted to make this as plug-and-play as possible - the switch from Mausberry is quite easy to install and implement - you may be able to do as you suggest with this script</p><p>I won't be doing any color - I prefer the wood look - but great feedback - glad you enjoyed!</p>
<p>Nice controller design.</p>
<p>Thank you</p>
<p>Nice controller design.</p>
<p>Nice controller design.</p>

About This Instructable




Bio: I am a resident physician at Stanford University, Biodesign alumni, tinkerer
More by wkethman:RetroPie Gaming/Arcade System 
Add instructable to: