Build a home arcade with a joystick, trackball & buttons wired through an I-PAC to a Raspberry Pi running RetroPie!
Before attempting to build my arcade cabinet, I spent weeks and weeks researching how to do it. I put this overview together to cover the key points & to help answer common questions. If I skipped over any critical details you’re still curious about, leave a comment and I’ll try to improve this post!
Disclaimer: This is for educational purposes only. I am deliberately not covering the details of how to install the games (ROMs).
10,000 Foot Summary
I used a Raspberry Pi and installed the RetroPie operating system. For the physical cabinet, I went with 6 action buttons, plus an additional 2 buttons for Start & Select/Insert Coin. All controls (joystick, buttons & trackball) get wired into an Ultimarc I-PAC2. The I-PAC2 plugs into the Raspberry Pi and emulates a USB keyboard so it makes the configuration a little easier.
I broke this project into several phases because I had zero experience using a Raspberry Pi before this project, and I honestly had no idea whether this would be successful. I didn’t want to buy all the components and then get stuck at the very first step of trying to install RetroPie.
- Phase 1 (~$75) – Raspberry Pi & USB Nintendo controller for initial testing
- Phase 2 (~$120) – joystick, buttons, I-PAC and cabinet hardware
- Phase 3 (~$100) – Ultimarc U-Trak trackball
How to Get Started
Here’s a few questions you’ll need to answer that will help scope out the project:
- Is your main interest the games or the physical arcade controls? If you skip the arcade cabinet it will save you a lot of time and money. A working system for the old home consoles such as Atari, Nintendo, etc can be fully set up in an hour or two and for well under $100 – this Raspberry Pi kit and these USB Nintendo controllers are about all you’d need (plus a micro SD card, maybe from an old phone?).
- If you want the physical arcade controls, what games are you looking to play & what layout do you want? I went with 6 action buttons, but some games require more. There are a ton of button layout options – this slagcoin page lists some good options. You’ll also need to be comfortable with basic electrical wiring.
- Do you want a trackball for any games? This was the toughest part for me – the configuration is tricky, only certain emulators support a trackball, and it significantly increases the cost.
My Cabinet Design
There are lots of awesome designs out there that are full sized arcade cabinets or a 2 player tabletop cabinet. But they’d be more expensive and take up more space, so I decided to go with a smaller design for 1 player that can easily be put away in a closet when not in use.
I wanted to make sure there was plenty of room for the components & wiring, so I used a width of 22”, height of 8” and a depth of 10” using 0.5” thick MDF. You could shave 1-2” off each dimension if you want to get it as small as possible, but wiring in a smaller enclosure might be more difficult.
I used the Japanese style layout for the 6 action buttons where the left column is slightly lower than the middle and right columns – this seems to better line up with how you comfortably position your fingers.
How To Setup RetroPie On A Raspberry Pi
The First Installation page on the RetroPie site has a good explanation of how to configure your Pi. The video tutorial seems WAY too long (over 30 minutes!), so my advice is to follow the text instructions further down the page. You’ll likely need to download the Win32DiskImager program and possibly a utility like 7-Zip to unzip the downloaded image.
I was expecting this to be one of the most difficult parts since I was unfamiliar with Raspberry Pi’s, but it was surprisingly easy to do.
Why Use The I-PAC?
Depending on what you want do you, the I-PAC may not be necessary and it would save you ~$50 to not use one. If you just want to use USB controllers (Nintendo style, Super Nintendo style, etc) then those can plug directly into the Raspberry Pi. I used an I-PAC for 2 reasons – 1.) I’m pretty sure all of the inputs I had (8 buttons, plus trackball wiring, plus joystick wiring) would be too much to wire directly into the Raspberry Pi, and 2.) it emulates a plain old USB keyboard & mouse so I figured that would be easier to get configured.
Note: The I-PAC should not be placed directly on the bottom of the cabinet because you’ll likely damage the solder joints. The photo above shows the 3D printed supports I designed & used, but even simple wooden supports at the corners would probably work.
Electrical Wiring & U-Trak Trackball Installation
The buttons and each directional switch on the joystick will have 1 wire going directly back to the I-PAC, and the second side will be “daisy chained” to the Ground terminal. See the sketch below to get a better idea of how it should be wired.
(sketch coming soon)
Since my design is meant to be portable, I took the extra step of tightly wrapping the wires and wire nuts together with electrical tape to reduce the possibility they’d come undone if cabinet was moved or bumped.
Note: Inside of the finished cabinet. If you decide to use a trackball, the positioning is extremely important otherwise the X & Y readings will be incorrect. The screws should line up along the vertical and horizontal center lines, and the hole with an arrow next to it should point directly towards the “back” of the cabinet.
Emulators and Games
RetroPie supports a HUGE variety of game systems, and each system has a different emulator. The arcade games caused me quite a bit of confusion because there are apparently multiple versions of the arcade game files (ROMs), and multiple arcade emulators. So this means you need to know which ROMset version a particular emulator uses and make sure your game ROMs match that version. My advice is to start with the other emulators (Atari, Nintendo, etc) which are MUCH easier to configure, then do some research on the arcade configuration and tackle that later.
The RetroPie site has helpful information which explains the different arcade ROMsets and how to convert a ROM from one version to another, but it is complicated and somewhat tough to follow.
Misc Tips & Advice
- The RetroPie site contains a lot of very useful information, read through it! There were several times I wasted time trying to find an answer through Google only to realize it was already on the RetroPie site.
- Raspberry Pi’s are amazing! Everything runs on a microSD card, so you can use a single Raspberry Pi for multiple purposes. I have 3 different SD cards that I swap in and out so that lets me use the Pi as an arcade system, control interface for my 3D printer, and as a media center.
- For some of the more advanced config & troubleshooting you may need to exit the UI and run Linux commands. This can be intimidating for someone who’s unfamiliar with it, but there is a section on the RetroPie site which gives a good starting point.
- For the wiring, leave yourself some slack in the wires. At some point a button will fail, or a wire will come undone and it’ll be much easier to fix if you have enough slack to move the top panel out of the way to troubleshoot.
- If you don’t plan on using a trackball, then you can reduce the width of cabinet quite a bit – down to maybe 14-16”.
- You may want to practice cutting/drilling the wood and stripping/daisy chaining the wiring before starting on the actual cabinet. For the trackball hole, I used a hole saw, and for the button holes I used a spade drill bit. Place a piece of scrap wood below the panel you’re drilling into, so the bottom doesn’t splinter as you finish the cut.
Check out www.joshcaplin.com to see my other content & projects.