Raspberry Pi Emulator

I am making an arcade machine that runs a variety of emulated retro consoles. This arcade machine runs off of the microprocessor Raspberry Pi, and I am using the Retropie operating system to do this.


Tyler W

Area of Interest

Mechanical Engineering


Bellarmine College Prep


Rising Senior

Final Milestone:

Final stuff

Second Milestone

My second milestone was building the joystick for my arcade machine. The first step was to connect my xbox controller. I did this by every time I started up my pi, I ran

sudo bash -c ‘echo 1 > /sys/module/bluetooth/parameters/disable_ertm’
emulationstation #auto

which disabled something blocking the pi from connecting to the controller. Then I went and made this line of code always run at the pi boot phase so I don’t have to do it every time. It is important to note that this is only needed for the xbox controller and not for Playstation


The second step of my second milestone was to CAD the whole arcade machine so I knew where I wanted my buttons.

This is the first version of my machine and I made it out of cardboard

After asking a variety of people I determined the good and bad aspects of this design. The good aspects of the design included the slants all looked good, the monitor being enclosed also looked good and the monitor being raised was a good idea. The bad aspects of the design included the wood was two inches thick, which made the whole project look bulkey, the start and select buttons were both on the top with the rest of the buttons which looked off and the bottom would have been fully closed.

The new CAD looks like this (I also 3D printed it for no real reason besides it looks cool)

I took into concideration the criticizms of my previous model and made the wood thinner, put the start and select buttons on the front and made the bottom open. For now I did not continue to make the CAD because I had to get my main part of my milestone done, adding the buttons.

I first started my joystick by taking cardboard and making my own holes to test urgonomics

I quickly found out that instead of guessing I could look up layouts of joysticks for actual arcade machines.

The arcade button layout I went with

I used this webcite to find schimatics of arcade button layouts


I ended up narrowing down the options between the standard Street Fighter layout (with two added buttons) and the “standard” Japaneese style layout first introduced by SEGA in the games Astro City and Blast City. I chose the ladder and made it out of cardboard

Cardboard button layout

With the cardboard, I realized that the first and second buttons on the top had the posibility to overlap, but I still went on to CAD it. I used OnShape to get the exact layout of the buttons on the schematic. The person that knew how to do the CNC was only here in the mornings and 30 minutes in the afternoon, so when I sent the file it had to be perfect or we would not be able to cut it that day. I went back and forth with having the start and select buttons on the top and front, which delayed my CNC by 3 days and then when I decided on the start and select buttons on the front, I sent it over and the units were in cenemeters instead of inches meaning I had to start the schematic all over again which delayed the project another day. The CNCing of the project was delayed for a while after because of time but eventually got cut. This is a picture of the CAD file:

In the time I spent trying to CAD and CNC my buttons, I started my third milestone and final milestone, making the aracde machine. I first I made my CAD updated with the buttons on the front, after that I started with the front pannel of my arcade machine. I had the front pannels cut out on the Jigsaw, but the person that had them cut out was new to the jigsaw, so the cuts had to be sanded down in order to work. I started the buttons by measureing out the cut on the wood. After that I drilled a hole and then I expanded the hole with a dremmel. I repeated this process for the other three buttons. This was one of the first times I had dremeled so there were some lasting imperfections. I then connected the pieces of wood with a pannel of wood on the back and screwing it in, then I used wood glue to make a pannel on the front to cover the gap in between the two pieces of wood.

Front of project

As you can see, there are many imperfections with the buttons, specifically on the buttons closest to the center, although luckely some of the imperfections are obscured by the viewing angle. There are also imperfections with the bottom of the wood because of the poor jigsaw cut, but those are also masked by the viewing angle.

I then got a new person to jigsaw my project and they were very experienced with the jigsaw so I had no more trouble with poorly cut parts. I then attached two pieces of wood to the two sides of the front pannel. I did this by using L brackets. Unfortunately, the wood screws I used were too long and are very sharp as I am realizing now because my forearm keeps getting stabbed by them while typing. I then moved on to the upper sides of the project

Around this point I redesigned my layout of the arcade machine to drop the monitor down to the ground, as it was almost the perfect hight for the top platform.

Tyler W

This saved me a lot of cutting because I did not need to create the monitor holders and replaced the middle slant with a piece of wood that I can just insert into the middle and it just rests on the lip that the monitor has (see previous image for what I am talking about). I then attached the top to the sides of my project, and found out that due to the L-brackets, the wood bends past 90 degrees which makes everything look off. I cut and inserted a piece of wood for the back, that was the same length of the front pannel. It was at this point that I had my joysticks CNCed so I went back to working on that. Unfortunately, the button holes were slightly too small meaning I had to sand them and the joysticks were placed in such a way that I had to cut the one piece with two players into two separate pieces with one player each. I then dremmeled out the joystick holes to great success, and sanded the buttons to a little less success. The problem I had with my cardboard a while back came back to haunt me as the first two top buttons on player one overlap. I attached the two joysticks onto the base of my build and added the side slants.

After that, I had some trouble hooking up the LEDs for the buttons, but I eventually figured out how to do it by using this website


I booted up my pi and configured the buttons. It worked, I was so happy, and then I tried to use player two and the buttons were all messed up. I found out that both players needed to have each button plugged into the same port of the USB encoder. So I had to unplug all of my wires and put them back on. I learned how to cable manage but it still looks messy. After that was all fixed, my second milestone was complete. The main thing I learned was the more iterations the better as with each one the project got better and better.

First Milestone:

     I have completed my first milestone in my Raspberry Pi Arcade Machine. The Raspberry Pi is a minicomputer that runs Linux-based operating systems. It can be used in a variety of ways, but in this case, I am running retro ROMS. Unlike an Arduino, a Raspberry Pi is not a micro-controller, it is a micro-processor. This makes it more suitable for OSs and less suitable for sensors and motors. I have learned to look before you leap as I spent three hours attempting to download files wirelessly as I did not have a flashdrive. I did this until I looked up and saw a box of SD cards and realized I could just take an SD card and put it in an adapter. I struggled with downloading files as previously mentioned and also getting my controller to work, which is now my next milestone. I look forward to getting my controller working.

Starter Project

     I created the Minty boost, a portable charger kit for my starter project. I created this project because in my car I have various items that will help me in a pinch and this kit will help me improve my preparedness for these situations by keeping my phone up and running for longer. If you take two AA batteries, and attempt to hook them up to a USB port, you quickly will find out nothing happens. To make that not happen, this project adds resistors, capacitors a schottky diode, a power inductor and a USB type A connector. In this case, the resistors are used to improve the high current capability of the boost converter chip and helps the phone determine what charger is connected. The capacitors are used to stabilize the output voltage and filter the high frequency noise of different components. A Schottky diode makes sure the energy is transferred only one direction, from the batteries to the USB port. They are special because they can only have current flow one way through them. The power inductor stores and converts power from low to high voltages. Lastly, the USB type A connector gives the ability of plugging in the cord. This project also uses a boost converter to increase the voltage from three to five volts. It switches between two states, one is charging the inductor and the other releasing that magnetic field. I learned most of what I mentioned previously and how tedious soldering is. I struggled with the soldering and desoldering and ended up burning myself twice. I am now very informed on soldering

STEM Summer Camps Coding & Robotics Classes For Kids San Francisco Coding & Robotics Classes For Kids New York Coding & Robotics Classes For Kids Denver Coding & Robotics Classes For Kids Palo Alto STEM Summer Camps For Kids in New York STEM Summer Camps For Kids in Palo Alto STEM Summer Camps For Kids San Francisco STEM Classes For Kids in New York STEM Classes For Kids in Palo Alto STEM Classes For Kids in San Francisco Code Classes For Kids Code Classes For Kids in New York Code Classes For Kids in Palo Alto Code Classes For Kids in San Francisco STEM Summer Camps For Kids

Leave a Comment

Start typing and press Enter to search