Raspberry Pi Arcade Machine

Want to build your own Raspberry Pi Arcade Machine? Well you can, it’s actually quite straight forward!

This was my first Raspberry Pi project so don’t let that be a reason for you not to take the leap into this challenge.

Raspberry Pi Arcade Machine

Raspberry Pi Arcade Machine

Firstly lets break the project down into some manageable chunks:

Get the games working!

  • Install RetroPie onto your Raspberry Pi
  • Load some games (ROMS) onto your Pi
  • Play those games using a Xbox 360 USB controller

Build the prototype!

  • Install the buttons into a piece of wood
  • Complete the wiring
  • update the RetroPie config files

Build your arcade machine!

  • Good, old fashioned woodworking!

Below I’ve written some basic steps on how to get your arcade machine working, I’ve also got three video’s that I shot during my time building:

Get the games working!

You’ll need as Raspberry Pi, MicroSD card, Xbox 360 USB controller, plus all the usual leads…

This took a little while for me to do first time around, everything about the raspberry pi was new to me so I viewed loads of videos and read many blogs to get over these first hurdles.

The first thing you have to do is install RetroPie (https://retropie.org.uk/download/), you’ll get an SD card image and you can use a free piece of software called 7-Zip.

To install the RetroPie SD image onto your MicroSD card (presuming your PC has a card reader) you’ll need to use another free piece of software called Win32DiskImager

Once you’ve done all that insert your MicroSD card into the Raspberry Pi, plug the pie into your modem using an ethernet cable (This is the way I do it anyway) and switch on the power.

On your PC install WinSCP, you’ll can use it to connect to your Pi as you’ll be on the same network.

The Pi’s IP address is (user name: Pi & password: Raspberry). Your IP address may be different, to find the IP address of your RetroPie, go into RetroPie options from the main menu, and select the last option Show IP address.

WinSCP allows you to easily navigate the folder structure, add or remove files and even edit config files. Double Click on the RetroPie folder on the right then double click on Roms. All the available emulation system folders are listed (they will appear in your arcade if they have a file in the folder!). You can now browse locally on the left for your game files (which in turn can be found for free online, just Google “Retro Roms”), then drag and drop them into the corresponding system folders on the right.

Restart your raspberry Pi and plug in your xbox 360 controller (any usb controller should work, even a keyboard) but I can vouch for the 360 controller working without any additional fuss!

You should now be able to play the games you’ve installed, in my experience some games work perfectly, some kinda work but not really and some just don’t work at all. I stuck with three basic consoles; Atari 2600, Megadrive and NES. I think these give me a good selection of games, you can go a little further into games, their extensions and configurations although I’m not going to here….. its just not the big of a deal unless there’s a specific game you just have to play.


Build the prototype!

Raspberry Pi Arcade Prototype

Raspberry Pi Arcade Prototype

You’ll need:



Layout your joystick and buttons on your scrap wood, drill 25mm holes and attach the hardware.

Micro SwitchMake a daisy chain of wire and crimp connectors and plug them into the ground (COM) of each micro switch in turn, fasten the end of the Daisy Chain into your iPac2 Controller.

IMG_5816Next attach a connector to the end of each wire and connect it to the Normally Open (NO) output of the first micro switch and fasten the end into a single input of your Ipac2 controller. Repeat this for every micro switch

Plug your iPac2 USB into your PC and open up notepad. With each button press or joystick movement you should see a key being pressed (After all the Ipac2 is only a keyboard). Problem is though the Ipac2 by default maps a lot of funny buttons to the inputs (Alt, Ctrl, Esc, etc.). In order to change this default mapping leave your Ipac2 plugging into your PC and download WinIpac. This program allows you to change each inputs button, stick to alphanumeric keys!!!!

Raspberry Pi Arcade Prototype

Raspberry Pi Arcade Prototype

Each micro switch should bring back the right result on notepad. If not then check your wiring!

Now that your buttons are working you can update the config file on the Raspberry Pi. Using WinSCP navigate to /opt/retropie/configs/all/retroarch.cfg

Within this config file locate: # rather than relying on a default.

After this line of code you’ll see player one keyboard presets:

input_player1_a = num7

input_player1_b = num0

input_player1_y = num8

input_player1_x = minus

input_player1_start = ;

input_player1_select = num4

input_player1_l = p

input_player1_r = num4

input_player1_left = down

input_player1_right = up

input_player1_up = right

input_player1_down = left

input_player1_l2 = num2

input_player1_r2 = num3

input_player1_l3 = keypad4

input_player1_r3 = keypad6


Change this code to the keyboard buttons you’ve just assigned to your Ipac2 (notice the difference above in regards to num4 and keypad4!), you can also copy and paste this input_ lines for player two. This is what mine looks like:

input_player1_a = num5

input_player1_b = num6

input_player1_y = num7

input_player1_x = num8

input_player1_l = num9

input_player1_r = num0

input_player1_start = Z

input_player1_select = X

input_player1_left = num2

input_player1_right = num1

input_player1_up = num3

input_player1_down = num4

input_player2_a = T

input_player2_b = Y

input_player2_y = U

input_player2_x = I

input_player2_l = O

input_player2_r = P

input_player2_start = N

input_player2_select = M

input_player2_left = W

input_player2_right = Q

input_player2_up = E

input_player2_down = R


Once you’ve saved this config file you can load up retropie and play the games using your arcade prototype!

Raspberry Pi Arcade Prototype

Raspberry Pi Arcade Prototype

Build your final arcade machine!

This is really down to your own personal preference and what space you have available. You could go for a large cabinet or a smaller table top version. I went for the larger arcade! 🙂

The only measurements I knew was the width (60cm), the height (167cm) and the height of the buttons (90cm). Everything else was pretty much free hand. I also got the wood supplier to cut plywood boards into 60cm widths, that way I knew all the panels would be exactly the same width and I often  ran one board behind the other so exact lengths were not too much of a problem (most of the time)

Firstly I cut the 60cm plywood boards down into three sections, one for my buttons, one for my monitor and one for my speakers. I added the required holes for all of the components to fit. I found online a great template for making your buttons and joysticks beautifully spaced.

Arcade Machine Build

Arcade Machine Build

Next I took two large pieces of plywood and clamped them together (aligning two edges). I traced on the lines I need to cut using the measurements and the three sections I’d just prepared as guides.

Cutting the two sides together ensured both were symmetrical, I cut these using both a circular saw and a plunge router.

Joining the two sides

Joining the two sides

After tidying up the edges with sand paper and edge banding I added strips of wood which the panels would rest against.

I then brought the two sides together cutting and attaching each central board as required.

Adding the hardware

Adding the hardware

I continued this process by adding the hardware panels and connecting the different elements together!


I hope you found this useful and I’d love to hear your comments!



Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: