By the end of this guide, you’ll have a fully functional bartop arcade cabinet running RetroPie on a Raspberry Pi 4, built from MDF panels and wired arcade controls you assembled yourself. The full build takes one weekend, costs roughly $100–$130 in parts, and requires no prior woodworking or electronics experience beyond comfort with a jigsaw and a terminal window. Every component, dimension, and wire connection is covered here in one place, so you won’t need to stitch together five different tutorials.
What You’re Building and What You’ll Need
A bartop arcade cabinet is a countertop-sized enclosure that houses a monitor, a two-player control panel with joysticks and buttons, a speaker, and a Raspberry Pi running RetroPie. RetroPie is a pre-built Linux image that bundles EmulationStation (the front-end menu system) with dozens of emulators for classic consoles including MAME, SNES, and Genesis.
Complete Parts List
| Component | Specification | Est. Cost |
|---|---|---|
| Raspberry Pi 4 Model B (4GB) | 4GB RAM, dual HDMI | $55 |
| Official Pi 4 USB-C Power Supply | 5V/3A (15W) | $8 |
| 15-inch LCD monitor (1024×768 min) | VGA or HDMI input | $20–$30 (used) |
| Zero Delay USB encoder (x2) | USB HID, 2-player kit | $12 |
| Sanwa JLF-TP-8YT joystick (x2) | 5-pin harness, 8-way | $24 |
| 30mm arcade buttons (x14) | Quick-connect terminals | $8 |
| PAM8403 amplifier + small speaker | 3W stereo, 3.5mm input | $6 |
| 18mm MDF sheet (4×8 ft) | One sheet covers full cabinet | $25 |
| 32GB microSD card | Class 10 or faster | $7 |
| Wood glue, screws, L-brackets | Misc hardware | $8 |
Use the Raspberry Pi Foundation’s official 5V/3A USB-C power supply. Underpowered supplies cause random reboots mid-game, which is exactly as frustrating as it sounds.
Tools Required
- Jigsaw or circular saw
- Drill with pilot bit and countersink
- Screwdriver
- Sandpaper (120 and 220 grit)
- Measuring tape and pencil
Designing and Cutting the Cabinet Panels
Use 18mm MDF, not 12mm. Thinner panels bow under monitor weight and the joints lose rigidity over time. One 4×8 ft sheet covers every panel you need.
Panel Dimensions for a 15-Inch Monitor
- Side panels (x2): 380mm wide x 600mm tall, with a 20-degree angled top cut for the monitor tilt
- Top deck: 380mm x 340mm
- Monitor bezel: 380mm x 320mm with a centered cutout matching your monitor’s viewable area
- Control panel: 380mm x 280mm with two joystick holes (28mm) and seven button holes per player (30mm)
- Back panel: 380mm x 580mm, with a 60mm ventilation cutout at the top
Mark all cuts with a straight edge before touching the saw. MDF cuts cleanly with a sharp blade, but it splinters badly if you rush. Sand all edges to 220 grit before assembly.
Assembling the Cabinet Frame
Start with the two side panels laid flat on your workbench. Pre-drill pilot holes at every joint location before driving screws, because MDF splits along its layers without them. Use 4mm pilot bits and 40mm wood screws throughout.
Assembly Order
- Apply wood glue to the top edge of each side panel, then attach the top deck using four screws per side
- Fit the monitor bezel panel flush with the front of the top deck and screw it in from above
- Drop the control panel shelf into position below the bezel and secure it from both sides
- Leave the back panel off until wiring is complete
Clamp every glued joint for at least 30 minutes before driving screws. Glue plus screws at every joint is what separates a cabinet that lasts from one that wobbles after a month.
Wiring the Arcade Controls to the Raspberry Pi
This is where most tutorials leave you hanging. The Zero Delay USB encoder is a small PCB that converts button and joystick signals into USB HID input, which the Pi reads as a standard gamepad. You don’t need to wire anything directly to GPIO pins for the controls. Two encoders handle two players, and each connects to the Pi via USB.
Connecting Buttons to the Encoder
- Each arcade button has two terminals: signal and ground. Connect the signal terminal to a numbered button input on the encoder using a quick-connect female connector
- Daisy-chain all ground terminals together using the ground rail on the encoder board
- Label each button wire with masking tape before routing to avoid confusion during testing
Connecting the Joystick
- The Sanwa JLF-TP-8YT ships with a 5-pin JST harness. Plug this directly into the 5-pin directional header on the Zero Delay encoder
- Pin order from left: Ground, Down, Up, Right, Left. The encoder board labels these clearly
- Route the joystick harness through the control panel before mounting the joystick plate
A common first-timer mistake: forgetting to connect the ground daisy chain before testing. Every button will fail to register, and it looks like a wiring disaster when it’s actually one missing connection.
Installing RetroPie on the Raspberry Pi 4
Download the RetroPie image for Raspberry Pi 4 from the official RetroPie project site and flash it to your 32GB microSD card using Raspberry Pi Imager. The process takes about five minutes.
First Boot and Controller Configuration
- Insert the flashed card, connect your monitor via HDMI, plug in both USB encoders, and power the Pi
- EmulationStation launches automatically and prompts you to configure your controller by holding any button
- Follow the on-screen mapping sequence, pressing each button when prompted
- Run
sudo raspi-configfrom the terminal (press F4 in EmulationStation to exit to desktop) and enable audio output under System Options. Skipping this step is the single most common reason audio doesn’t work on first boot
ROMs are the game files RetroPie runs. You’re responsible for sourcing these legally. The most straightforward legal path is dumping ROMs from cartridges you own using a dedicated dumper device.
Mounting the Monitor and Routing the Wiring
Mount the monitor face-down behind the bezel opening using four L-brackets screwed into the top deck. The monitor’s VESA mount points or rear frame lip work well as anchor points. Check that the viewable area aligns with your bezel cutout before tightening.
Run all wiring through the cabinet interior before closing the back panel. Bundle the USB encoder cables, power cables, and audio wires into separate runs using cable ties. Mount the Raspberry Pi to the back panel using four M2.5 brass standoffs, which keeps it off the MDF surface and allows airflow.
Position the PAM8403 amplifier near the speaker cutout and connect its 3.5mm input to the Pi’s audio jack. Wire the amplifier’s power leads to a USB power tap or a small 5V rail from your power strip inside the cabinet.
Testing Before You Close the Cabinet
Power everything on with the back panel still off. Verify that EmulationStation loads, both players’ joysticks move the cursor, and every button registers in the EmulationStation controller test. Load a test ROM and play through 30 seconds of actual gameplay to catch any ghosting or missed inputs.
Common Mistakes to Avoid
- Buying a monitor with only VGA output when your Pi needs HDMI (use an active adapter or choose HDMI-native)
- Using a USB power supply under 3A for the Pi 4, which causes throttling and random shutdowns
- Skipping pilot holes in MDF, which splits the panel and ruins the joint
- Forgetting to enable audio in
raspi-configbefore testing speaker wiring - Not labeling button wires before routing them through the control panel
Once every input and audio check passes, screw the back panel into place. Add T-molding along the cabinet edges for a finished look and to protect the MDF from moisture.
What to Build Next With Your Arcade Cabinet
Your finished bartop arcade cabinet is a solid platform for several satisfying upgrades. Add an LED strip behind a marquee panel above the monitor, connected to the Pi’s GPIO pins (the General Purpose Input/Output header on the Pi board) and controlled via a simple Python script. Install a coin door with a coin acceptor wired to the encoder for a full arcade-authentic experience. You can also configure a second HDMI output on the Pi 4 to drive an attract-mode video display on a small secondary screen mounted inside the cabinet. Browse our related Pi enclosure and retro gaming guides on pibeginners.com to find your next build.

Simon Gregory, a seasoned Raspberry Pi enthusiast and IoT innovator, brings a wealth of knowledge to Pi Beginners. With a background in computer science and a passion for teaching, Simon simplifies complex concepts, making Raspberry Pi accessible to all. His articles not only guide but inspire readers to explore the limitless possibilities of Raspberry Pi in the IoT realm.
