DIY An Arcade Table(1)

Required tools and materials :

IKEA Lack coffee table

Raspberry Pi

Arduino Leonardo (a micro controller board based on ATmega32u4)

Joysticks & buttons

17 inch LCD (4:3 is better)

USB powered computer speakers

Raspberry Pi 2.5A power supply

Others (wires, connectors, screws)


The monitor I use here is Acer al1716 which is 17 inches. I removed the plastic shell of the monitor and unscrewed the screws. Of course, you need to prepare a suitable groove on the prepared coffee table so that the monitor can be embedded. Let’s see how to do it.

Remove the bracket and unscrew the monitor housing screws

It may be stuck together. Be careful of the silver frame

Of course, after the shell is completely separated, do not hurry to take out the display. At the same time, pay attention to the circuit board and buttons between the display and the shell. Do not damage these.

Remove the screws that fix the frame on the outside of the monitor.

Now remove the monitor and put it on the desktop.

Screen installation

In the first attempt, we used Dremel electric grinder to dig out the grooves on the desktop which seems good at start. But later, it was found that it was actually unnecessary. It could be completed with a knife (Stanley). Of course, it was up to you. Here we go. Then you can see how the hole is drilled (13mm). Drill according to the position of the line you drew before. It is worth noting that do not reverse the position. If you can’t control the distance well and are afraid of exceeding the range, you can stop at the 10cm and continue from the other side.

Finally, removed the parts at the four corners. This step requires care not to damage the desktop.


Place the display screen on the desktop to draw the position and size. Of course, there are also rocker and button positions need to be drawn.

Mark the positions of the four corners and then start from the positions of these marks.

Drill out four holes in corners.

The main purpose of this is to prevent desktop damage.

Cut along the line. If you slip by hands, your previous efforts will be wasted, so be careful. Be careful from the first hole to the second hole. If you are afraid of exceeding the range, you can leave a distance before the second hole. So as to avoid the cup caused by hand slipping.

When you finish the above, you can tilt out the parts that need to be removed. At this time, it’s easy to lift the associated things out, so you need to be careful.

Cut off the honeycomb paper with a knife.

Now the table part is finished.

Buttons installation.

Now you need to make the position of the buttons and install the buttons and joysticks on the desktop. First, you need to mark the position of the joysticks and the buttons. Each hole needs 28mm (radius), so you can give the joystick enough space to move. Then fix the joysticks with screws.

Of course, it also needs to be fixed from under the table. When the joysticks is fixed over the table, it may loosen. So when the ball on the joystick goes through the bottom to the table, the bottom goes down so that no trace can be seen. The button installation is relatively simple. It can be directly installed in the hole (28mm).

To cut on the back of the table, you need to mark it first

The required position has been reserved.


Mark the position of joysticks and buttons, and then start drilling a 28mm hole.

The bottom of the joystick is removed and fixed with these screws when it is finally installed from the bottom of the table.

Mark the hole at the bottom of the joystick for installation.

Get the ball on the joystick and start the installation from under the table.

Install the ball back in origin place and secure the screws.

Arcade control

The arcade control is relatively simple. The joystick will go for four direction.But the Raspberry Pi is not consistent with this. So I chose Arduino Leonard to match Raspberry Pi that I can control it more free and control the Raspberry Pi keyboard. The buttons are connected to Arduino Leonard and used as a key. It is on the other side as a circuit switch. Of course, you can also set the buttons names.


Download and install the Arduino IDE. Connect Arduino Leona to the computer with a USB cable. Then you can enter the following program.

Connect as shown in the figure and then follow these steps. You can copy and paste the program code into Arduino IDE. Then run it. In the Arduino IDE, each Arduino program is called sketch. It is a software package that can be uploaded into the Arduino board and can be run after uploading.

Of course, the program can know the corresponding buttons. Before uploading the program, you can modify the program.

Under the “tools” menu, select “Arduino Leonardo” for the Board Option.

Select the “tools” menu again, set “Leonardo” from the “ports” option, and then prepare to upload the program.

Click the “Upload” button to start uploading the program.

Program Code:

//element14 PIK3A Gaming Table Controls, using an Arduino Leonardo//
void setup() {
//Joystick and buttons pin allocations
pinMode(0, INPUT_PULLUP); //Joystick Up
pinMode(1, INPUT_PULLUP); //Joystick Down
pinMode(2, INPUT_PULLUP); //Joystick Left
pinMode(3, INPUT_PULLUP); //Joystick Right
pinMode(4, INPUT_PULLUP); //Button 1
pinMode(5, INPUT_PULLUP); //Button 2
pinMode(6, INPUT_PULLUP); //Button 3
pinMode(7, INPUT_PULLUP); //Button 4
pinMode(8, INPUT_PULLUP); //Coin
pinMode(9, INPUT_PULLUP); //Start
void loop() {
// Button labels:
int joystickUp = digitalRead(0);
int joystickDown = digitalRead(1);
int joystickLeft = digitalRead(2);
int joystickRight = digitalRead(3);
int button1 = digitalRead(4);
int button2 = digitalRead(5);
int button3 = digitalRead(6);
int button4 = digitalRead(7);
int coin = digitalRead(8);
int start = digitalRead(9);
// Joystick Up – Arrow Up Key
if (joystickUp == LOW) {;
else {
// Joystick Down – Arrow Down Key
if (joystickDown == LOW) {;
else {
// Joystick Left – Arrow Left Key
if (joystickLeft == LOW) {;
else {
// Joystick Right – Arrow Right Key
if (joystickRight == LOW) {;
else {
// Button 1 – Left CTRL
if (button1 == LOW) {;

else {
// Button 2 – Left ALT
if (button2 == LOW) {;
else {
// Button 3 – Left CTRL
if (button3 == LOW) {;
else {
// Button 4 – Left CTRL
if (button4 == LOW) {;
else {
// Coin – 5
if (coin == LOW) {;
else {
// Start – 1
if (start == LOW) {; delay(100);
else {

Leave a Reply

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