Build a Bartop Arcade Cabinet using Raspberry Pi

In this guide, I will build a small bartop arcade machine based on RetroPie running on a raspberry Pi. It has an ‘old school’ look with original arcade controls, can be played with any USB controller you can find, is fairly cheap and easy to build and there is an unlimited amount of retro game ROMS available online.



  • Double sided tape
  • zip ties (Here)
  • A USB keyboard (for setup) (Here, Here or Here)

Cheap Chinese USB controllers, all USB controllers will work with your arcade, even if it does not mention Linux compatibility. Also, make sure you buy the USB version as you may accidentally buy a controller for the original console.

The websites I listed may not be the cheapest for your region or may be unavailable after some time. I recommend looking around in yours for any cheaper alternatives that may not require international shipping or are just cheaper than the store I listed.

At the start of my build, I had all parts at home. The build from start to playing took about 6 hours.

Building the Bartop Cabinet kit

The kit was fairly straightforward and came with a pdf with installation instructions. Every panel is attached using L-clamps and screws that were included. This way there are no visible screws from the outside and no extra work to hide screws is needed before applying the artwork sticker later.

I will not cover all the build steps in here as most of these kits come with a guide themselves. But after about a good hour, the cabinet looked like this (Hi Duster😺):

After a few more hours the cabinet was done. Since the marquee and the screen overlay are mounted permanently, I had to apply the sticker before closing the cabinet. Depending on your kit these panels are removable which gives you a bit more time to measure out the exact size and location of your monitor artwork.

To mount the screen, a VESA mount compatible panel was supplied, Simply screw your monitor in place, I found bolts that happen to be a bit longer but I made them fit the depth of the monitor by adding some washers.

To mount the monitor, put the cabinet with the screen overlay facing down and lay the monitor on top, check if the sides of the artwork are aligned with the monitor the screw it in place using the L-clamps on the left and right of this panel. Then mount the removable panels using the piano hinges supplied, also insert the locks that should also come with the kit

Now to finish up, mount the feet and your cabinet is done.

Install Arcade Controls

I used a kit I found on eBay, you can compile your own set but these match my intended color theme (blue vs red). The buttons and joysticks are LED lit. I will not use the smaller buttons but you can add them to your control panel if you want.

First, you want to install your joysticks, I recommend to attach the required joystick wires onto your joystick now to make sure they are mounted upside correct. You can connect the joystick to the controller board and use the windows controller utility to check if your joystick is upside down or not. In my case, the connectors on the joystick should be in the bottom right.

Then, When you are sure what side is up, center the joystick in the pre-drilled hole of your control panel and screw it in place from the back.

Then attach the included cables onto your buttons. For my kit, each wire has 2 black terminals, a red and a yellow terminal. The wiring for these buttons is as follows using the logo on the switch as a reference.

The installation of the buttons very easy, first feed all the buttons in the pre-cut buttonholes of the cabinet. If your kit has a control panel plexi, put it on top of your control panel, then insert the buttons. The plexi is kept in place by the buttons. When all buttons are inserted, tighten the button nut from the inside, make sure it is tight as you don’t want your buttons to come loose after some usage.

When wired all the buttons correctly it’s time to connect each button to the controller board. There is no real order in connecting these as retro pie asks to press each button during assignment but I recommend keeping player1 and player2 wired the same. When all buttons are connected. Connect your joystick. The large connector goes in the socket centered at the end of your controller chip, the 2-pin connector should be plugged in the first led output that’s the closest to the joystick connector. Then connect the USB cable to your controller board using the only larger connector that’s still unused (newer models seem to have a female USB-B connector.

To test if all buttons are working, simply plug in the controller boards in a windows computer, the LEDs should automatically turn on and you can use the joystick configuration screen to check if all buttons are indeed responding when being pressed. If any of the LEDs or buttons are not working, try wiggling with the connectors, I had to use pliers to make the connectors crimp on the button terminals tightly.

Install Raspberry Pi & Electronics

Mount Chassis Power switch/connector & power brick

The chassis power plug with fuse and switch was pre-cut in my kit. Use 2 small screws to screw it in place. I had to sacrifice a power brick by cutting of the wall plug and connecting the wires to the “output voltage” as shown below. Make sure to also connect the ground. I used double sided tape to mount the power brick to the (inside)bottom of the cabinet. The wiring for the switch and power brick is as follows

Your cabinet can now be turned on/off by this switch on the back, a nice plus is that the button is lit🔥.

Exit Game Button (Hotkey)

To exit games, I installed a small metal ‘service’ button. I drilled a hole in the center of the front of the cabinet. Then pushed the button through and used the nut to secure it from the inside.

The button came with a 12V indicator light. I wired this LED directly onto the 12V adapter I ordered. To connect the button itself to the controller board, I used one of the cables for the extra smaller buttons that were included in the controller kit. Used a voltmeter to check what connectors were the actual button and wired this to the ‘service button’. After the wiring was done, I inserted the cable in the controller board for player 1 and the button was recognized when pressed in the ‘setup controller’ interface

Marquee lighting

For the marquee lighting, I chose a regular 2 meter 12v powerfull cold white LED strip, I mounted the led strip on the inside around the marque and powered it with a 12v adapter I had laying around. Make sure your adapter can handle the load.

Mount Raspberry Pi

I bought the Raspberry Pi with an enclosure and simply used glue to mount the case on the back of the monitor panel. I made sure I had easy access to the MicroSD slot.

Mount External HDD

If you are using an external HDD for storage you can use zip ties to mount in on the back of the monitor panel as well, then plug the USB in the raspberry and the power in the power brick we installed earlier

Mount LED Strips

I Will mount Led strips on the back of this cabinet for some ambient lighting. I found LED strip profiles which I screwed on the back to protect the LED strips from any damage. I prepared the profiles by drilling holes in them and sinking them with a larger drill. Then used long screws to screw them in on the back of the two side panels so the strips will illuminate anything that’s behind the cabinet (wall?)

Then I drilled small holes in the back of the cabinet to feed through the power for these strips. I added an extra connector on each side to easily connect the additional LED strips that will be installed in the foot for this cabinet. (guide soon). The led strips are powered by the same adapter than the marquee lighting. When powering on your cabinet should look something like this, I went with a permanent red/blue scheme but you can add an RGB controller if you want.

Mount Network Chassis Plug

RetroPie does not really need an active internet connection all the time, but it is needed for transferring games at a decent speed over the network. I bought the Neutric RJ45 chassis part. This requires a 23mm hole and 4 screws to secure it in place. This chassis connector is just a passthrough Female RJ45 to Female RJ45. I used a short patch-cable to connect your raspberry to the female connector on the inside of the cabinet

Mount front USB ports and 3,5mm headphones jack

I mounted 3 USB ports and a 3,5mm jack on the front of the cabinet. These holes were pre-drilled so I fed the cables through the holes and secured the extension cable in place using the included bolt. I had to leave a spacer out to make sit flush with the front of the cabinet.

Mount USB hub

To have all of our front USB’s, USB HDD, and USB controls connected at the same time, I used a USB hub I had laying around. 4 ports are the recommended here. I stuck the hub to the back of the monitor panel using strong double-sided tape. Then plugged the USB cable in one of the raspberries USB ports and connected the front USB and controllers to the hub. (You can test these later by plugging in a USB controller, then open the ‘controller setup’ and it should be detected when pressing any button on your controller telling you what brand/type)

Artwork and T-moulding

To apply the side stickers, There are a few techniques wet and dry. You can use your preferred method but I have my own which goes as follows (dry).

  1. Find a side that is good for alining your sticker, in this case, it’s the bottom and partially the rear side
  2. Peel back about 3cm of the adhesive
  3. Align and stick the bottom part of the sticker to the cabinet making sure it will still be aligned at the top when rolled all the way
  4. Peel back the adhesive while slowly pressing down on the sticker (start pressing in the center pushing any bubbles outward, take it slow, peel back if you see any bubbles as soon as possible

To trim the sides, trim the sticker but leave about 0,5cm on. This should be folded under the t-molding to assure a good connection all around and prevent showing any of the bare wood when the sticker has settled.

Then apply the T-moulding, use a rubber hammer and a towel to protect your t-band from the impact and slowly ram it in the slot until it sits flush with the sides, this should press your sticker tightly. In the corners, cut some away some of the excess t-molding to make it sit flush around tight corners as shown below.

It should look something like this

All of your electronics are now installed and the artwork is applied. You are ready to prepare your raspberry Pi’s MicroSD.

Setup MicroSD and assign controls

If you downloaded a pre-built image, you can use this image. If you want a clean setup and add the ROMS yourself, download the latest RetroPie image for your raspberry Pi Here, then use Etcher(mac) or Win32DiskImager(win) to write your image to the MicroSD

When that’s done, put your MicroSD in your raspberry and turn on your cabinet. The first boot will take a bit longer for the initial installation but once everything is done you should see the following screen asking you to configure a controller

Hold one of the buttons of your arcade controls, the setup will ask you to configure the buttons for this controller, when it asks to configure a button that does not exist on your control panel, hold any of the configured buttons to skip to the next one. do this until you hit OK.

The last button is a hotkey, this is used to quit games when using a controller. I installed a dedicated hotkey button earlier and connected it to the player 1 controller board. Press this button when the hotkey is required. A USB keyboard can also exit games using the ESC key. When all controls are assigned, press ok, you will get a warning when not assigning the hotkey, you can skip this if you have a USB keyboard attached. The RetroPie main screen should now open.

Your basic setup is now done. If you used a pre-built image. you are done and you can skip all the following parts. However, some parts may be useful for you to so take a quick look for the parts that are interesting to you. If you just installed a clean image. you can continue to the next part. the complete setup will be covered in the next part of this guide.

USB HDD & Adding Games

All information about RetroPie can be found on their Wiki page.

Connect USB HDD

To use a USB HDD for games. Make sure the HDD is formatted as FAT32. Then create a folder on the drive called “retropie-mount”. Then connect the HDD to your Raspberry Pi and turn on your Raspberry Pi. RetroPie will automatically pick up the external hard drive and will copy all content from the MicroSD onto the external drive. If we don’t have any games installed the USB is ready for use in a few seconds.

Copy games to RetroPie

To copy games to RetroPie, make sure your Raspberry Pi is connected to the same network as your PC/MAC, then navigate to the network share //retropie or //IP from your computer. You should see a folder structure containing 4 folders

  • Bios – Place all you console bios files here
  • Configs – If you want to make custom categories, use this folder
  • Roms – this folder contains every compatible emulator folder, drop your ROMS in the designated folder
    • amstradcpc
    • arcade
    • atari800
    • atari2600
    • atari5200
    • atari7800
    • atarilynx
    • fba
    • fds
    • gamegear
    • gb
    • gba
    • gbc
    • genesis
    • mame-libretro
    • mame-mame4all
    • mastersystem
    • megadrive
    • n64
    • neogeo
    • nes
    • ngp
    • ngpc
    • pcengine
    • psx
    • sega32x
    • segacd
    • sg-1000
    • snes
    • vectrex
    • zxspectrum
  • Splashscreens

A complete list of compatible systems, ROM format, bios requirements can be found here, a more in-depth guide on how to manually setup RetroPie to your liking can be found Here. Always restart RetroPie to detect the newly added ROMS.


If you want to create your own library, I recommend creating regular backups using win32diskimager. This will create a backup like the pre-built images you could download earlier, ready to reflash whenever your actual MicroSD gets corrupted/breaks…

This cabinet is very easy to transport, but you can also create a base for this cabinet so it can be used just like a regular arcade. I built one myself that is also used as a showcase for all retro controllers I currently own. all of these controllers are USB an can be used with this cabinet. just plug in one of the controllers in the front USB port, navigate to controller settings to add a scheme and you are ready to go. The emulator usually picks the controller that was used to launch the game so for some emulators, the internal controls may get disabled.

Any questions/remarks or just want to show your own build? Feel free to comment below this guide and I will answer any questions as accurate&fast as possible. Have fun retro gaming!

Disclaimer –  None of the prebuilt images are created or distributed by me. none of the files are uploaded to any of my servers. The download and use of these images are in most cases illegal. Use of these images is at own risk, I cannot be held responsible for any problems using these images.



Leave a Reply

Your email address will not be published. Required fields are marked *

On Key

Related Posts