In a previous post I introduced my IKEA Arcade Table which is based on a Raspberry Pi 3 running RetroPie. I’m sure people might be interested in how I made it so I’ll go into a little bit more detail here.
How I approached this project was heavily influenced by my own abilities, what tools I had available and what parts I was able to obtain or buy. For these reasons other people’s arcade table projects will look different. Hopefully this article will at least act as some inspiration for others even if it is not copied exactly.
I have a arranged the sections in the rough order in which I acquired or thought about the parts.
Here’s a list of the components I used :
- IKEA “Gulliver” wooden table
- 2 arcade joysticks
- 2 USB controller boards
- 2 buttons with 1/2 player symbols
- 2 “coin” buttons
- 16 arcade buttons
- 1 LCD monitor + power cable + VGA cable
- 1 HDMI-to-VGA adapter
- 1 USB powered speaker
- 1 3.5mm audio cable
- 1 5m 1-gang power cable
- 1 2-gang + 2 USB port power adapter
- 1 5V microUSB power supply
- 1 sheet of clear perspex (from IKEA picture frame)
- random collection of screws and cable ties.
- Cordless drill
- 30mm hole cutter bit
- Craft knife
The table is an IKEA “Gulliver” kids table which we had passed onto a friend but retrieved when it was no longer required. Unlike most other IKEA arcade projects this table has a solid 16mm MDF top measuring 50x59cm. Taking into account the under-frame this gave a working area of 42x51cm. The legs are attached using metal brackets so it is nice and sturdy. You can use almost any table you just need to ensure there is enough space to mount the monitor and buttons.
The monitor is a DELL E177 17″ display which I was lucky enough to buy locally for £5. Removing the front bezel and rear shell was fairly straight forward and I used a YouTube video as a starting point. I removed the small PCB with the buttons on it and found I didn’t need them again so I didn’t reattach. The “naked” monitor is a nice rectangular block giving plenty of mounting options. This monitor only has a VGA input so I used an HDMI-to-VGA adapter to connect it to the Pi.
To keep the wiring tidy I bought shorter power and VGA cables to replace the standard cables that came with the monitor.
Using LibreOffice Draw I created a 1:1 scale diagram of the table. I was careful to make sure that the area I was going to drill/cut didn’t interfere with the structure underneath holding the legs on. I also thought a bit about how the monitor cables and plugs would be routed so they didn’t get in the way of the metal brackets.
The diagram showed me where to cut the monitor hole and the holes for the joystick and arcade buttons.
Arcade Buttons & Joysticks
After much deliberation I decided that although I didn’t need 8 buttons per player I didn’t want to regret adding too few. So I went for 8 buttons and 1 joystick per player. Having used RetroPie on my TV I also wanted 4 additional buttons to use as “Select” and “Start” options for SNES games. These would also act as Player/Coin buttons in MAME games. So in total I had 16 buttons + 4 buttons + 2 joysticks. I ordered these from eBay along with two buttons with “player” symbols on them. The button sets also came with USB controller boards that everything plugged into. Once these arrived I knew how big the holes needed to be and I finalised the layout diagram.
I setup the Pi, the monitor and the arcade buttons to check everything worked OK. This was the point I knew my hardware was OK and it was worth proceeding.
Cutting, Drilling & Painting
Armed with a printout of my final layout I stuck it on the table and cut the monitor hole. I drilled holes in the corners and used a jigsaw to cut the straight lines in between. To ensure straight cuts I clamped some wood in place to use as a guide for the jigsaw foot. I knew I would be placing some sort of graphic over the top so the cuts needed to be good but not perfect.
I used a 30mm drill bit to cut the 20 holes for the buttons and 2 for the joysticks. Although a 28mm bit would have been more suitable in places went with a “one size fits all” approach as it saved me buying a second bit.
Mounting the Monitor
With the holes cut I had to do a bit of filing and sanding to get the monitor to fit in the hole. Then I used a wooden banton along the back to hold it in place. This banton was held in place with some horizontal screws and some metal brackets screwed into the VESA mount holes in the monitor.
Two additional metal brackets were added to provide a bit more support on the top edge.
During this stage I had to be extra careful to not allow the monitor to fall through the hole until it was secured properly!
The viewing angle of the Dell monitor was much better from the top. So it is actually mounted upside-down. I configured the Pi to flip the image.
Mounting the Raspberry Pi
The Raspberry Pi 3 was the obvious choice. Any Pi would be usable but I didn’t want to bother upgrading at a later date. The case was chosen as it was nice quality and easy to screw in place. The Pi and case were donated by RS Components.
Mounting Buttons, Joysticks and Controller Boards
The style of buttons I used allowed them to friction fit in the holes. The joysticks have a metal plate which was screwed into the underside of the table top.
An additional wooden baton was added to further hold the monitor in place but also give me something to screw the controller boards to. The buttons and joysticks were then wired up to the controller boards which in turn were connected to the Pi’s on-board USB ports. The controller board came with all the cables required to connect the joysticks and buttons.
The Power Supply
Powering everything required some thought. Originally I was going to fit a 4-way extension cable but in the end went for a standard 5 metre 1-gang mains extension cable with a 2-gang splitter. The splitter included two 5V USB sockets. These USB ports would probably not power the Pi directly so I used a proper 5V power supply for that. The second socket was used for the monitor power cable.
The 1-gang socket case is screwed into place. I had to drill 4 holes through the case in order to mount it.
*NOTE* this is the one bit of hacking I did to something involving mains electricity. Proceed with caution! I didn’t want to electrocute myself, my child or any of his friends at a later date. It’s this reason I didn’t worry about customising mains cabling or adding power switches etc.
Sound is actually one of the more challenging considerations if you want to keep costs down. I looked for some cheap PC speakers but ended up buying a small “Bluetooth” amplified speaker with an AUX input. It is powered via one the USB sockets on the Energiser power splitter. The 3.5mm jack connects to the analogue output on the Pi. Being nice and square it was easier to mount this on a bracket underneath the table with sticky pads.
The Perspex and Graphics
Using my LibreOffice Draw template I played around with some graphics. It’s not easy as cool pictures are often ruined once you remove the hole for the monitor.
I settled on a generic 80s looking virtual landscape and decorated with sprites from Galaga.
Acquiring a piece of cheap perspex was a challenge. In the end I bought a £5 photo frame from IKEA and used that. It’s thinner than I would like but does the job. Rather than use my paper template I used the table and a Sharpie to mark the position of the holes on the plastic before carefully drilling 30mm holes. Luckily my careful approach resulted in 18 holes in the perspex without any cracks! I also created a strip to cover the front edge with 4 holes.
The Multi-coloured LED Lights
These were a bit of an after-thought but I knew they would be easy to mount and would run from the 2nd USB socket I had available. They were £10 from eBay and came with a remote control. I did have to shorten the lengths by slicing them at the correct points and re-soldering the connectors on the end. There are plenty of YouTube videos that explain how to cut LED strip lights. The remote can be used to change the colour which adds a bit of atmosphere to the whole table and make it just a little bit more impressive to other people. You can pick a colour that suits the game you are playing. (Green for Ninja Turtles obviously)
To avoid anyone snagging cables during use I tried to make sure all cables were secured out of the way. I used a selection of cable-ties and plastic cable-tie mounts. Where possible these mounts were screwed in place as sticky pads always fail at some point.
I’m not going to get into the installation or configuration of RetroPie but two tweaks I had to make relating to this hardware setup are worth mentioning.
- The first was telling the Pi to rotate the screen to compensate for the monitor being mounted upside-down (see display rotation tutorial)
- The second was forcing the Pi to output audio on the 3.5mm jack and not via HDMI (see force 3.5mm audio tutorial)
Component Prices and Total Cost
The total cost for my table was £150 ($200). Here is the final costings for this project and I’ve split it into three sections.
|Raspberry Pi Parts|
|Raspberry Pi 3||£39.59||RS (donated)|
|Raspberry Pi Case||£5.39||RS (donated)|
|Power supply||£7.80||RS (donated)|
|16GB microSD card||£9.00||Amazon|
|Project Specific Parts|
|IKEA Gullilver Table||£0.00||Local Facebook selling group|
|17inch monitor||£5.00||Facebook Marketplace|
|VGA cable||£0.00||Came with monitor|
|IEC “kettle” power cable||£0.00||Came with monitor|
|HDMI to VGA converter||£2.40||eBay|
|Portable speaker||£6.99||B&M Bargains|
|Zero delay board + joystick and arcade buttons||£17.40||eBay|
|Zero delay board + joystick and arcade buttons||£17.40||eBay|
|5m single socket extension cable||£4.99||B&M Bargains|
|2-socket extension block with 2 USB outputs||£8.99||B&M Bargains|
|Misc screws||£0.00||My workshop|
|Scrap wood||£0.00||My workshop|
|1 & 2 player buttons||£6.99||eBay|
|Spade terminals for player buttons||£1.80||eBay|
|Multicolour LED strip light kit||£9.39||eBay|
|0.5m IEC “kettle” cable||£3.39||eBay|
|0.5m VGA cable||£3.00||eBay|
The cost can be decreased if you already have items available or you ignore the “optional” upgrades. The monitor and Raspberry are likely to be the most expensive items. You could also choose to use a Pi 1 or Pi 2.
Here are some additional photos :
I was really pleased with how this turned out. The only issues I’ve had over the last few months are with the speaker coming unstuck from its bracket so I need to take a look at a better mounting option for that.
I’ve created a video slideshow of the photos for people who prefer watching to reading :