Introduction: Mini Pi-Powered Arcade Machine

Picture of Mini Pi-Powered Arcade Machine

The 'Instructarcade' is a self-made bartop mini arcade with controls for one player. Using the Raspberry Pi and it's official touch display, tons of uses are possible.

It's mainly designed to play retro arcade games (MAME), but also emulators for many other systems like SNES, GBA, etc. run nicely. Thanks to the touchscreen also point-and-click adventures can be nicely played with ScummVM. Via WLAN any smartphone can be used as virtual controller, so up to 4 players can play.

Originally I was looking for a gift for a colleague leaving our company and liked the idea of an arcade machine. The other great instructables here didn't fit my needs because I wanted a machine that is small in size and easy to build, without having to a jigsaw and router - so I designed one that can be laser cut any only requries some glue to be assembled. The material costs around 150 Euro (excl. shipping/taxes).

Check the video for an assembly time lapse!

The cabinet plans for this project are licensed under CC BY-SA 3.0 license. You're free to use the things you've made even for commercial purposes, make changes to the plans, but not to restrict the rights to these plans by other means than in this license. http://creativecommons.org/licenses/by-sa/3.0/

If you like this project I would be super happy if you would vote for me in the full spectrum laser contest, because with a better laser cutter I can make even better instructables :)

Have fun!

Step 1: Gather the Parts

Picture of Gather the Parts

The wooden parts are laser cut from 3mm MDF, the acrylic parts from 2mm acrylic.

When cutting the parts, make sure the green rectangles are only engraved about 1mm deep into the wood.

Here are the other parts you need. I live in germany and have ordered most of them from "Pollin", so if you want to order there you can use the provided product numbers.

I used the Raspberry Pi 2 because the Pi 3 was just released when I finished the build. Retropie already is available for Pi 3 so you can also use that one, in this case you don't need a WLAN or Bluetooth stick!


1x 94-702623 Official Raspberry Pi LCD, 7", Touch, 800x480
3x 94-420459 PBS-12B (Push Button, hole size 12mm)
1x 94-722935 Micro-USB (micro USB Power cable with open endings)
1x 94-351538 Power Supply 5V-/2A (for 5,5/2,1mm jack)
1x 94-450596 5,5/2,1mm jack (hole size 8mm)
2x 94-640856 DIGISOUND F/DO29 (micro speaker 100 Ohm)
1x 94-723527 USB2.0 Extension A/A (or similar, this is much too long but the best I found)
1x 94-420177 Micro Switch CHERRY DB3
1x 94-420241 Switch MRS-101
1x 94-702416 Raspberry Pi 2 OR Raspberry Pi 3
1x 94-722575 microSDHC 4GB (or buy 8GB or whatever works with your Pi)
1x 94-450952 Audio jack 3,5mm, stereo
1x 94-441744 Rubber feet
1x 94-800370 Cable 0,25mm²
1x 94-712351 WLAN USB-Stick (not needed with Pi 3)
3x 94-450291 Blade receptacles, red, 4,8mm
1x 94-701898 Raspberry Pi Cooling-Kit

Then you need the arcade controls, I got mine from eBay, you can search for "Zippy Arcade".

1x eBay 351252892153 Arcade Buttons + Arcade Joystick

The "Coin Input" button that a lot of MAME games require is made of 10 Cents glued to the micro switch, for that real coin input feeling :)

1x 10 Cent

You also need 20 DuPont sockets to connect everything to the Pi. If you can't get a crimping tool for them (which makes life so much easier, see +STEP CABLE ASSEMBLY) you can also buy some female/female jumper cables, cut them in half and solder them to your cables. Don't forget the isolation then!

The remaining parts can be found in the internet or your local DIY supply.

1x 20 DuPont Sockets + Housings

2x small wood screws (around 1,5mm in diameter and 10mm in length)
16x M3 screws 5mm
4x M3 square M3 nuts
8x metal washers matching the M3 screws
3x SuperFlux LEDS, e.g. NSPLR70CSS
3x resistor 56 Ohm

1x A4 sheet of self adhesive white paper - or a normal white paper and some glue

1x L-Shaped aluminium bar to tighten the marquee

Tools

To build this arcade you'll need a knife, a soldering iron, some wood glue, a hot glue gun and a pair of pliers. It would make life easier if you had a crimp tool for DuPont connectors and one for blade receptacles, but long nose pliers can also do the job.

Step 2: Make Some Cables

Picture of Make Some Cables

You'll need some specially prepared cables to easily connect everything to the Pi.

I like to choose one color for the cables that will have ground connection and another color for the rest.

8x 32cm with DuPont Socket on one end and blade receptacle on the other end
8x 32cm with DuPont Socker on one end and the other end open (4 will be used for ground connection)

And one long cable with one DuPont socket and 8 blade receptables (BR), built like this:

DuPont - 32cm - BR - 12cm - BR - 12cm - BR - 12cm - BR - 20cm - BR - 12cm - BR - 12cm - BR - 12cm - BR

Because 0.25sqmm is too narrow for the red blade receptables, I just strip double the length needed and fold the cable once before cramping.

Step 3: Assemble the Maintenance Flaps and Control Board

Picture of Assemble the Maintenance Flaps and Control Board

First screw the maintenance flaps to their frames, then apply some wood glue very close to the edges.

Only apply a little glue and keep very close to the edges as you don't want the glue to touch the maintenance flap when you press it on the panel.

Do this for the bottom and the backside panels. Don't overtighten, it's just wood!

Then take the two parts for the control board and place the nuts in their spots. Use four screws to keep the nuts in place, but don't screw them in so far that they stick out of the nuts as you want to be able to glue both sides of the control board flat together. Use some clamps and make sure the two panels are perfectly aligned.

Step 4: Assemble the Display and the Pi

Picture of Assemble the Display and the Pi

Fit the Pi display into the frame without the slot shown in the picture.
Apply some wood glue and place the frame with the slot flat on the other, making sure the slot on top is more on the lefthand side when looking on the backside of the display - just as shown in the picture, marked with the green arrow.

After that glue the large frame on top, then the small frame. Make sure everything is neatly aligned, then use the washers and four screws to attach the display to the frames.

When the glue has dried, install the Raspberry Pi as given in the instructions coming with the display, also attach the heat sinks and plug in the wireless LAN adapter (unless Pi 3...)

Installing Retropie

You should consider preparing the SD card with Retropie now, as inserting the SD once the arcade is finished is a bit more complicated due to less elbowroom.

Use this image: http://blog.petrockblock.com/retropie/retropie-do... (standard version) and burn it to the SD card following the instructions here: http://blog.petrockblock.com/retropie/retropie-do...

When you're done put the SD in the raspberry and continue building the cabinet :)

Step 5: Add Sound

Picture of Add Sound

The Raspberry Pi only supports headphones, if you want to attach passive speakers you usually have to add an amplifier. For this project I wanted to keep it as simple as possible, also I neither needed nor wanted loud sounds.

When you add tiny speaker with 100 Ohms impedance, the Pi's headphone jack is powerful enough to produce sounds at an adequate level.

Soldering the cables to the stereo jack

A 3.5mm stereo jack has three rings. The tip is for the "left" signal, the center ring is for the "right" signal, the last ring is ground. Find out which ring belongs to which soldering point at your stereo jack, solder the cables to the right places and you're good to go.

If your speakers have markers for where + and - have to go, connect them accordingly. If not, you can use any device that plays music and has a headphone jack to try which setting sounds better. If you don't notice any difference, just connect them how you like.

Attaching the speakers

When everything is soldered to it's place, place the speakers on their position and use some hot glue to fixate them.

Step 6: Assemble the Power Input and Buttons

Picture of Assemble the Power Input and Buttons

Attach the power switch and power socket to the back panel.

Then you need to solder the ground wire from the micro usb cable to the power socket's outer contact and the red power wire from the cable to one of the switch's contacts. Grab a short piece of wire and connect the socket's inner contact to the switch's other contact.

Remember to nicely shutdown the Raspberry Pi before switching off the power switch.

Otherwise you risk filesystem errors and may need to format and reinitialize the SD card. Your Raspberry won't be damaged though, so if the system should freeze you can of course switch if off.

Solder wires to the buttons

saa Grab the microswitch, the three push buttons and 8 cables with DuPont sockets on one end and nothing on the other (4 of them are for ground connection). Solder one ground wire and one other wire to each of them.
The microswitch has three contacts, check the datasheet/markings or use a multimeter to find out which contacts to use. You want to use the two that are closed ("have contact") when the switch is pressed.

Attach the microswitch to it's panel

Use the two wood screws and fit the microswitch to the panel on righthand side as shown in the picture.

Step 7: The Marriage

Picture of The Marriage

Now it's time to put everything together! Yay!

I like to stick the side panels together without applying glue so I can better install the buttons and attach the wires.

Put the push buttons into place, two in the front panel, one to the outer righthand side panel. Fit the joystick (use 4 washers) and insert the arcade buttons (first put in the buttons, then the black rings, then attach the microswitches to the buttons).

Wiring it up

First grab the long cable with one DuPont and the 8 blade receptacles and connect one BR to each arcade button and to each of the 4 joystick switches.
Then grab the other 8 cables (DuPont-32cm-BR) and connect them to the other contacts of the buttons and joystick.

Now connect the DuPont sockets to the GPIO header of the Raspberry Pi, exactly as shown in the picture.

Add the coin

Now use your hot glue gun to attach the coin to the microswitch. If you bought exactly the one I used, the coin is in correct position when it balances on the switch by itself. Otherwise, make sure to glue it in a position where it'll fit through the slot in the front panel.

Everything settled? Glue!

Put everything together like shown in the pictures. Apply glue to one side, flip it over and glue the other side.
Don't forget the inner panel for more stability.
Then you may want to put a few heavy books on it to apply some pressure while the glue dries.

Step 8: Attach Bottom and Prepare Side Panels

Picture of Attach Bottom and Prepare Side Panels

First you'll want to remove the maintenance flap on the back to have access to the Pi.
Then take the USB extension and remove one of the USB sockets. Keep the screws, you'll need them.
Now attache the USB socket you just removed to the side panel and plug the USB cable in a USB socket on the Pi.

Take the other side panel with the push button, pull the cables through the hole and attach them as shown in Step 7.

Fit the bottom

Now remove the maintenance flap from the bottom so you can better align it, apply glue and attache the bottom panel. Let the glue dry.

Step 9: Add Light

Picture of Add Light

Put the LEDs and resistors to the LED panel as shown in the picture and solder it like described in the lovingly drawn schematics. You'll want to leave at least 20cm of wire on the end and crimp two DuPont sockets to them.

Fiddle the cable through the righthand side hole, then cut a piece of self adhesive paper to the width of the acrylic panel and 1.5 times it's height.

Glue the paper to the marquee area so that it forms a curvature to spread the light nicely. Because LEDs have a narrow angle, we want to produce some indirect light.

Attach the wires to the Pi as shown in Step 7.

Step 10: Sides and Feet

Picture of Sides and Feet

We're pretty close. Apply some glue to one side to attach the outer panel. Pay attention to cover the areas where the panels connect and don't get too close to the corners so the glue doesn't leak when you press the panels together.

Align them perfectly and secure them with some tape.

Flip the Arcade over and do the same on the other side.

Again, put some heave books or something on the arcade to apply pressure while the glue dries and when it's done, attack the rubber feet.

Step 11: It's the Final Countdown - Dadadaaadaaaa...

Picture of It's the Final Countdown - Dadadaaadaaaa...

You are now allowed to turn on the Pi for the first time! Jippie!

Unfortunately, only to check out the lights ;)

When you power up the Pi, the light bar will turn on and you can align it so the light spreads nicely on the white paper. Fix it with some hot glue. Then turn off the Pi again ;(

Reattach the maintenance flap on the back.

Print out your favourite marquee in the size of the acrylic and cut it out.
Place it between the two acrylic panels and put everything into place.

Cut the aluminum bar to size and apply double-sided tape to them to put them on the marquee.

You're nearly done, now you "only" need to configure the software.

Step 12: Configure the Software and Have Fun

Picture of Configure the Software and Have Fun

In step 4 you've set up the basic Retropie installation. Now it's time to tune it to your needs.

When you fist turned on the Raspberry to attach the lights, it should've autmatically resized the filesystem.

First thing you want to do now is to attach a keyboard to the USB port on the lefthand side of you cabinet, since the arcade controls won't work right away.

Retropie will automatically ask you to hold a key to configure the keyboard. Do as instructed.

WLAN and SSH setup

Go to "Retropie" and "Configure Wifi". Connect to you WLAN. Remember the arcade's IP address.
If you're using a mac or linux system, just open the terminal and type:

ssh pi@ARCADES_IP_ADDRESS

The password is "raspberry".

If you've used the WLAN adapter from the parts list, do this:

sudo nano /etc/modprobe.d/8192cu.conf

And add this line:

options 8192cu rtw_power_mgnt=0 rtw_enusbss=0

This is to prevent the WLAN adapter from going into sleep mode. You won't need that if you're using Pi 3.

If you're using windows you'll need a tool called "Putty" (or some other SSH Program for windows) to connect to the Pi.

Back to your arcade

Run "Retropie" -> "Raspberry Pi Configuration Tool Raspi-Config".
Go to "Overclock -> Pi2" (not on Pi 3, skip this step then). Reboot using the menu.
Run "Retropie" -> "Audio Settings" and select "Headphones 3.5mm jack"
Run "Retropie" -> "Retropie-Setup" -> "4 Experimental packages (these are potentially unstable)" -> "325 virtualgamepad - Virtual Gamepad for Smartphone"
This takes a while...
Reboot using the menu.
Run "Retropie" -> "CONFIGURE RETROARCH / LAUNCH RETROARCH RGUI" -> "Settings" (confirm with button A) -> "Configuration" (confirm with button A) -> "Save Configuration On Exit" turn "ON" with joystick right.
Go back to start menu with button B and select "Quit RetroArch" (confirm with button A)

Back to SSH

Connect with SSH again and run these lines on after the other:

cd /home/pi/
git clone https://github.com/Plaputta/Adafruit-Retrogame sudo nano /etc/rc.local

Add the following line before the line that says "exit":

/home/pi/Adafruit-Retrogame/retrogame &

Save the file (ctrl+o) and exit (crtl+x).

Now execute:

sudo nano /etc/udev/rules.d/10-retrogame.rules

And add this line:

SUBSYSTEM=="input", ATTRS{name}=="retrogame", ENV{ID_INPUT_KEYBOARD}="1" 

Save and exit. Now run the following lines one by one:

git clone https://github.com/Plaputta/mk_arcade_joystick_rpi
cd mk_arcade_joystick_rpi sudo utils/makepackage.sh 2 sudo apt-get install -y --force-yes dkms cpp-4.7 gcc-4.7 git joystick wget http://www.niksula.hut.fi/~mhiienka/Rpi/linux-headers-rpi/linux-headers-`uname -r`_`uname -r`-2_armhf.deb sudo dpkg -i linux-headers-`uname -r`_`uname -r`-2_armhf.deb sudo rm linux-headers-`uname -r`_`uname -r`-2_armhf.deb sudo dpkg -i build/mk-arcade-joystick-rpi-2.deb sudo modprobe mk_arcade_joystick_rpi map=1 sudo nano /etc/modules

Add this line:

mk_arcade_joystick_rpi

Then run:

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

And add this line:

options mk_arcade_joystick_rpi map=1

Then run:

sudo nano /opt/retropie/configs/all/retroarch.cfg
Find "input_exit_emulator" and change the line to:
input_exit_emulator = "escape"

Find "input_enable_hotkey" and change line to:

input_enable_hotkey = "nul" 
Back to your arcade

Run "Retropie" -> "RETROPIE-SETUP" -> "3 Setup / Configuration (to be used post install)" -> "USB ROM Service" -> "Enable USB ROM Service"

Reboot using the menu.

Now open the EmulationStation Menu (Menu Key) and select "Configure Input"

Configure the Keys like this:

UP/DOWN/LEFT/RIGHT with joystick
START left black square button
SELECT right black squeare button
A red
B yellow
X blue
Y green
LEFT BOTTOM coin key

Skip other keys by holding a key. The red square key on the side is not mapped to anything!

Remove the keyboard, you're done :)

To add roms you can now either look for "retropie" in your local network, or just plug in a FAT32 formatted USB stick with a folder called "retropie" on it. The arcade will set up the folder structure on that stick now. Plug it back to your computer, add the roms to the matching folders, plug it to the Pi and the roms will be copied.
Read more about transferring roms here: https://github.com/retropie/retropie-setup/wiki/T...

For instructions on how to use the virtual gamepad look here: https://github.com/retropie/retropie-setup/wiki/V...

And now have lots on fun!

Comments

TobiasPl made it! (author)2016-03-20

Hi,

I just built another one using Raspberry Pi 3 this time and I discovered that there seems to be a bug in Raspberry Pi 3 which makes SSH connections impossible.

Since SSH connection is pretty crucial to set everything up, here is how you fix it if you run into the same problem:

sudo apt-get install -y rpi-update
sudo rpi-update && sudo reboot

Unfortunately, this just displayed some SSL certificate errors and didn't work. Maybe it does for you, but if not try:

sudo apt-get install ntpdate

sudo ntpdate -u ntp.ubuntu.com
sudo apt-get install ca-certificates

Then try rpi-update again. Unfortunately, this didn't help me either.

What I did was:

sudo nano /usr/bin/rpi-update

In this file you need to:

Set the line that begins with "UPDATE_SELF" to:

UPDATE_SELF=0

Then find all occurences of "curl" (ctrl+w, then type "curl" and hit return) and add

-k

(with spaces before and after) after every occurence of "curl".

Save the file (ctrl+w) and run:

sudo /usr/bin/rpi-update

Then reboot and you should finally be able to connect via SSH. Whew...

JegresS (author)TobiasPl2016-10-28

wie viel hast du dafür ausgegeben?

mjgsantos made it! (author)2017-10-05

This design is awesome, but I think I went a little too far...

EltonA3 (author)2017-04-30

beautiful

Jrennef (author)2017-04-01

Hi do you have a template so I can make this and get all the sizes and ect so I can get to cut myself and put it together. Thanks.

v1nk (author)2017-03-10

Thanks for the great plans, I'm still awaiting for some parts - I can't wait!

If anyone in the UK is looking for someone to Laser cut the arcade you should checkout lasermake.co.uk Ewen and the team were very quick to get the panels cut and posted to me, highly recommend!

Cpatton777 (author)2017-02-07

Does anybody sell the laser cut wood pieces in a flat pack? If not, you should! I'd buy it.

undercode (author)2017-01-23

Great job!! I have not equipment to make it with wood, so I decided make it with foam board.

Ah! And for people asking DXF files, you can download it from https://www.dropbox.com/s/knadxtpf43thkt6/bartop.d...

DubbelDrank (author)2016-09-18

I really like this design. Can you post a dwg/dxf file? I tried some online cdr to dxf converters, but they tend to convert eveything to polygons. It will take me forever to redraw those back into circles and proper splines.

slybas made it! (author)2016-05-25

Hello TobiasPi we used your excellent manual to make our raspberry pi arcade box. This is the provisional setup, we are waiting for the rest of our hardware: the joystick etc. We are gonna make a few more of these cabinets. I am amazed of the quallity of the drawings and your manual. We will post the complete picture when it is done. We are also trying to convert the drawings to a double size 6mm arcade cabinet suitable for 2 joystick! More news next weeks

maspeir (author)2016-03-24

Oh good! No need for a $100 jigsaw or router! Thank you! I'll just use the $5000 laser cutter I have stashed in my garage.

capeman29 (author)maspeir2016-05-02

Use Ponoko.com for laser printed parts, they are awesome

ThirdEarthDesign (author)maspeir2016-04-14

I can understand the frustration with not having access to some of the higher end equipment. It wasn't that long ago I couldn't lay my hands on a decent saw but we try to make do with what we have. Dare to dream, we might get there in the end.

gilligoon (author)maspeir2016-03-25

I'm struggling to understand the point of this comment. Are you saying that you are going to attempt this with a router / jigsaw?

tomvdb (author)2016-03-25

This is very cool. Any chance of getting the files in dxf though?

DrHoppe (author)2016-03-24

Looks like something I would love...but I have no access to the required lasercutter. You should sell these build kits on eBay or something. For a *fair* price I would guess you would have a LOT of buyers.

jmsiefer (author)2016-03-24

NIIIICE! Want to try this out badly, but for some reason Corel Draw (ver. X3) is giving me guff. Any chance you can add an additional format? WMF always seems to work without issue, but I'm open to whatever. Just not a huge fan of upgrading if I don't have to. Thank you so much!

TravisM18 (author)2016-03-24

I like this. But no playstation yet or ps2?

Greywolfg (author)2016-03-22

Wow, great job! Me and some of my friends made this except just on a computer monitor. Gonna try :D

Greywolfg (author)2016-03-22

Wow, great job! Me and some of my friends made this except just on a computer monitor. Gonna try :D

Greywolfg (author)2016-03-22

Wow, great job! Me and some of my friends made this except just on a computer monitor. Gonna try :D

Thorsten Singer (author)2016-03-19

Like it, this is how it can look if you have a Laser Cutter, I only cut with a cutter knife. ;)

TobiasPl (author)Thorsten Singer2016-03-19

Thank you! I'm looking for an online service where I can upload the plans so people without laser cutter can order them, if anyone has suggestions, please tell me :)

dogbrand (author)TobiasPl2016-03-22

I think Ponoko offers that.

Josh524 (author)2016-03-21

How much did this build cost?

CheckYourGages (author)2016-03-21

I intend to build something similar to this, but want to add a response when a player beats a level. For example, if you beat a level of pac man, the system will display a message until a condition is satisfied (with hardware). Is there a way that MAME supports this sort of action?

Clockworx (author)2016-03-21

What screen did you use?

TobiasPl (author)Clockworx2016-03-21

Like mentioned in step 1, it's the official Raspberry Pi 7" Touchscreen :)

TobiasPl (author)Clockworx2016-03-21

Like mentioned in step 1, it's the official Raspberry Pi 7" Touchscreen :)

Clockworx (author)2016-03-21

Eh, just one question. I can see a "coin slot" down by the bottom. Does this slot actaully work,and limits use of the machine? Or is it a mere decoration?

Clockworx (author)Clockworx2016-03-21

I mean, what you say, makes it a bit unsure wether it works or not

TobiasPl (author)Clockworx2016-03-21

Hi, the coin is glued to a microswitch, so you can push the coin which activates the switch. The switch can be set up as "coin input" in MAME and other emulators, so every time you push the coin a credit will be added to the game that is running. But there is no coin bank or something like that in the machine, the coin is just a button.

ZhannaT (author)2016-03-21

Wow! So cool! So cute!

AndreasB_23 (author)2016-03-21

Awesome piece of work!

skailafox (author)2016-03-20

Awesome Instructable! Would love to see more of your work!

MarkS366 (author)2016-03-20

This kicks ass on so many levels.

Yonatan24 (author)2016-03-20

Wow! Great first Instructable!

Garg 2002 (author)2016-03-19

Fantastic!

Bustibert (author)2016-03-19

Awesome!!!

dmfx22 (author)2016-03-19

great build there sir! Very neat and I like the direct gpio button connections, on mine I used a picade usb board.

About This Instructable

32,722views

566favorites

License:

More by TobiasPl:Mini Pi-Powered Arcade Machine
Add instructable to: