Introduction: Mini Bartop Arcade

About: I'm only a guy who likes to make things.

This time, I’d like to show you my old times arcade version
using Raspberry Pi Zero, based on Picade Desktop Retro Arcade Machini, as seen in this site:

The goal of this project is to build a retro vídeo game as a gift to my brother that was portable, easy to use, beautiful and very funny.


Step 1: Electronics

The heart of the project is a Raspberry Pi Zero W. Despite it’s size, it has the power to do things happen. The tiny computer runs a bundge of emulators like Nes, SNes, Neo Geo, Mame, etc., offering a wide options of retro-games.

The device is equipped with a USB DAC PCM2704 board that provides digital sound in a satisfactory volume.

The controls are connected to the computer by the GPIO, which needs some work to set up the system to function properly.

And finally, this material is worth nothing without a screen. As the idea was to make something portable, all the fun is guaranteed by a 7" LCD monitor.

To power the system, a 12V x 5A switching power supply is used in this design while a 5V x 3A regulated power supply reduces the voltage for the Raspberry Pi Zero W and the monitor board.

Step 2: 5V X 3A Regulated Power Supply

The circuit is based on the LM 350 transistor, that provides 5.6V at 3A output current, that powers the Raspberry Pi Zero W and the LCD screen.

The assembly has no difficulties, as can be seen in the Eagle files.

Step 3: Joystick Connections to GPIO

Instead of using a zero-delay USB card to connect the controls to the computer (the Raspberry Pi Zero W has only one USB port, which was used as digital sound output), the GPIO was the logical way to solve the problem.

The picture shows the Raspberry Pi Zero W GPIO connections to the joystick and buttons of the device. Since we will need only one player, only the green pins are used for the game control (it’s worth to say that the ground pins is necessary to close the circuit and make things happen).

For more information, see:

Step 4: The Assembly

The retro-arcade was made by laser-cut MDF and acrylic, mounted with plastic angles. After the pre-assembly, all the MDF parts was painted black, which led to the final assembly.

As one can see, a black plastic mask covers the acrylic front, displaying only the speakers and LCD screen.

The pictures show the assembly process.

Step 5: Configuring the RetroPie

The following steps was provided by and

First, it’s necessary to download the RetroPie image, which can be done by the following link:

Select "Raspberry Pi 0/1" option to download the image for Raspberry Pi Zero W.

The installation process, as well as all RetroPie instructions, can be found at the following link:

Step 6: Configure the GPIO Controller

To set up the GPIO controller, one will need to download the mk_arcade_joystick_rpi files:

git clone

Compile and install module:

sudo mkdir /usr/src/mk_arcade_joystick_rpi-0.1.5/
cd mk_arcade_joystick_rpi-master/
sudo cp -a * /usr/src/mk_arcade_joystick_rpi-0.1.5/
export MKVERSION=0.1.5
sudo -E dkms build -m mk_arcade_joystick_rpi -v 0.1.5
sudo -E dkms install -m mk_arcade_joystick_rpi -v 0.1.5

Step 7: Auto-loading the Driver at Startup

Open /etc/modules :

sudo nano /etc/modules

and add the line you use to load the driver :


Then create the file /etc/modprobe.d/mk_arcade_joystick.conf :

sudo nano /etc/modprobe.d/mk_arcade_joystick.conf

and add the module configuration :

options mk_arcade_joystick_rpi map=1


Use the following command to test joysticks inputs :

jstest /dev/input/js0

Further instructions can be found in the following links:

Step 8: The Final Result

As you can see, this is the end result of the project, which works well and is ready for a lot of fun! Enjoy!