Introduction: Mini Arcade Cabinet

This instructable was created in fulfillment of the project requirement of the Makecourse at the University of South Florida (www.makecourse.com)

Supplies

Arcade joystick

4 x Arcade buttons

Breadboard

Breadboard Wires

7 inch screen with HDMI input

HDMI Cable

Raspberry Pi 3

5V 2.5A Raspberry Pi Power Supply

Arduino Leonardo

Plywood

1 inch square dowels

Step 1: Step 1: Cut Exterior

For this step, it would be ideal to use a laser cutter for precise cuts to keep the edges of the cabinet nice and flush. If you don't have on available, then a saw will work just as fine, though it will take some time and quite a bit of energy.

Cut the dowel into the following sections: 4 x 10 inch, 2 x 12.5 inch, 2 x 8 inch, 2 x 3 inch, 2 x 3.3 inch, 2 x 9.3 inch at an angle of 15 degrees. These will make up the skeleton of the arcade cabinet.

Now: cut the plywood into the following dimensions: 10in x 4in, 10in x 10.3in (make sure to also cut out an area within this piece with the specific dimensions of the screen), 10in x 12.5in, 10in x 5in, 2 sections of 12.5in x 12in making sure to cut out the section 5 inches in at an angle of 15 degrees inwards (These final 2 sections are the side panels of the cabinet. Make sure to refer to the model to make sure the design for your cut matches the same shape.)

Step 2: Step 2: Assemble Skeleton

Combine the four 10 inch sections into a rectangle using wood screws. This will be the bottom of the cabinet.

Combine the 12.5 inches to the top of the corners of one side of the rectangle. This will be the back of the cabinet.

Connect the 2 sections of the cabinet that make up the back with a 8 inch section.

Add the 3.3 inch sections orthogonal to the back sections so that they face the front of the cabinet.

Add a 10 inch section directly across the 10 inch section at the front of the cabinet so that you have the same two pieces stacked on top of each other.

Add a 3 inch section to either side of the 10 inch section you just placed. This side pieces will connect to the angled sections and will be where the face for the joystick and buttons.

Add the angled sections connecting the pieces you've just placed to the pieces protruding from the top section of the cabinet.

Lastly, add the final 8 inch piece between the angled sections located near the top of the cabinet.

Now you should have a fully assembled skeleton resembling a mini arcade cabinet.

Step 3: Step 3: Assemble Exterior

Cut out four 22mm holes into the plywood for the arcade buttons and stick to the right half of the board, making sure to leave enough room for the stick on the left side.

Cut out a 20mm hole on the left half for the arcade stick.

Assemble all pieces of plywood to the skeleton EXCEPT for the back and button/joystick board. We will leave the parts off so we can add the electronics and other components.

Step 4: Step 4: Code the Arduino

Add the following code into your arduino. This code allows the arduino to read the button presses and outputs them as keyboard inputs to the raspberry pi.

void setup() {

Keyboard.being();

pinMode(2, INPUT_PULLUP); //Joystick Up

pinMode(3, INPUT_PULLUP); //Joystick Down

pinMode(4, INPUT_PULLUP); //Joystick Right

pinMode(5, INPUT_PULLUP); //Joystick Left

pinMode(6, INPUT_PULLUP); //Button 1

pinMode(7, INPUT_PULLUP); //Button 2

pinMode(8, INPUT_PULLUP); //Button 3

pinMode(9, INPUT_PULLUP); //Button 4

}

void loop() {

int State2 = digitalRead(2);

int State3 = digitalRead(3);

int State4 = digitalRead(4);

int State5 = digitalRead(5);

int State6 = digitalRead(6);

int State7 = digitalRead(7);

int State8 = digitalRead(8);

int State9 = digitalRead(9);

if (State2 == LOW){

Keyboard.press(215)

}

else{

Keyboard.release(215)

}

if (State3 == LOW){

Keyboard.press(216)

}

else{

Keyboard.release(216)

}

if (State4 == LOW){

Keyboard.press(217)

}

else{

Keyboard.release(217)

}

if (State5 == LOW){

Keyboard.press(218)

}

else{

Keyboard.release(218)

}

if (State6 == LOW){

Keyboard.press(219)

}

else{

Keyboard.release(219)

}

if (State7 == LOW){

Keyboard.press(220)

}

else{

Keyboard.release(220)

}

if (State8 == LOW){

Keyboard.press(221)

}

else{

Keyboard.release(221)

}

if (State9 == LOW){'

Keyboard.press(222)

}

else{

Keyboard.release(222)

}

}

Step 5: Step 5: Wire the Electronics

Using the code, wire the joystick to pins 2 through 5 on the arduino and ground the 5th pin.

Next, wire one pin on each button to ground and the remaining pins to pins 6 through 9 on the arduino.

Finally, plug the arduino into the raspberry pi which we will set up in the next step.

Step 6: Step 6: Set Up Raspberry Pi 3

Go to https://retropie.org.uk/download/ and download the latest version of retropie.

Using your preferred software of choice flash the image to the microSD card and place into the raspberry pi 3. I recommend win32 disk imager.

Connect the raspberry pi to the 7 inch screen and power supply.

When prompted to configure a controller, follow the procedure using the arduino joystick you previously wired coded and wired.

For this particular set up we will be running space invaders on the SNES, so find the copy of the rom online from a reputable source such as https://www.emuparadise.me/

Now transfer the ROM using a program such as winSCP to ssh into the raspberry pi and copying the file in the /retropie/roms/snes directory.

Reboot the raspberry pi and the SNES logo should be added to the menu with the space invaders ROM listed within its menu.

Step 7: Step 8: Put It All Together

Screw they joystick into place on the plywood. Then add the buttons. Most will have a latch on the inside which will keep it in place without the use of screws.

Attach the board with joystick and buttons to the cabinet skeleton, securing it in place.

Place the screen into the hole cut into the angled face.

Reconnect all electronics and place on the back board to seal it up. Make sure to leave a hole for the power supply to connect an outlet.