About the Arcade Machine!
Today, I spent the day doing an upgrade on my arcade machine. Since the newer Raspberry Pi 3B+ models have come out, boasting dual-band WiFi and a higher stock clock speed, I knew I’d be putting one into the arcade machine in an attempt to run a stable 1400 MHz overclock. It’s asking a lot of these tiny computers, but I had faith that it could handle it, so let me fill you in on what happened. First, let me give you a run down of the arcade machine as a whole, so you know whats inside that makes it work.
The inside of the arcade machine, really doesn’t appear to have all that much, but there’s a lot of cool stuff happening, the most of which is out of sight. First, the power comes in on the bottom right, where there is a switched outlet, to allow the machine to truly be powered off. The 120 VAC power is then run into some terminal strips to break it out to feed power to various other devices, in my case, 4 power supplies for the devices running the machine. This set of breakouts can be seen in the picture below.
The aforementioned power supplies would be a 12 VDC supply, a 5 VDC supply, a monitor power supply, and the Raspberry Pi power supply (which was implemented after the pictures were taken). The power supplies were sized to handle the amps expected to be pulled based on the specifications of all of the components and devices within the machine. You can see in the first picture of the inside of the machine, that there is a small amplifier in the lower left. This is fed by the 3.5 mm stereo output on the Pi, and is controlled by a front mounted volume knob, which can be seen in some of my other pictures of the arcade machine.
As you can see in the above pictures, the top of the machine houses a 12 VDC LED light strip to back-light the marquee. There is also the custom printed marquee itself, the speakers, and the top of the acrylic screen panel. The top piece that was removed also has an LED light strip on it, to evenly light the marquee. Both LED light strips connect to the 12 VDC breakout using screw-terminal barrel connectors, for ease of maintenance.
The above pictures show the true heart of the machine, which is the joystick/button controller, and the LED controller, as well as the joysticks and buttons themselves. The two controllers are mounted on the underside of the control surface in between the 2 sets of player controls. This is the reason they are not visible to the naked eye. In the top picture, you can see that each button has 4 connections:
- An LED controller controlled line
- An LED controller daisy-chained ground
- A button/joystick controller controlled line
- A button/joystick daisy-chained ground
Luckily, the joysticks only need half of these connections, since they don’t have lights. Total, this is 4 connections per button, and 8 connections per joystick totaling 80+ connections under there. That’s why it’s such a wiry mess that hard to photograph. The joysticks also have a servo-controlled restrictor plate that can restrict movement to a 4 direction, or diamond shaped pattern, where they joystick can only follow a plus sign of directions, or allow it to be used for 8 directions, counting the diagonals. This accounts for a few more connections, and more complex software functionality, that I’m not going to get into in this post.
Skipping over the upgrade for the moment, and moving back out of the machine, the last thing we have to do is replace the rear service panel. The service panel houses an 80mm Noctua fan, that moves a significant amount of air, with little to no noise. This is what keeps the inside of the machine cool, especially the overclocked Raspberry Pi. The fan is also connected using a removable connector for ease of service. The Noctua’s are expensive fans, with a horrible color scheme, but when you need the best in quiet performance, there’s no other choice.
It’s Upgrade Time!
My primary reason for making this post today was to focus on the upgrading of the Raspberry Pi from a Model 3B to 3B+. The 3B+ has better specs, including higher stock clock speed and dual-band WiFi. After my arcade machine was updated to Raspbian Stretch, the SD card was ready to just swap into the new Pi. I first have to remove the old Raspberry Pi, noting where all connections were made. In my case, I used a breakout hat on the Pi for GPIO connections, so swapping is extremely simple, and reliably easy to get the proper pins connected. In the below pictures, you can see the process of re-securing the Pi onto the MDF monitor mount inside the machine. First it’s reinstalled (First image.), then the USB, audio, video, and power connection are made (Second image.). Lastly, the hat board is replaced (Third image.). The hat board is what connects to the servo controller for the joysticks. They run off of 2 GPIO pins on the Pi that get driven by a Python script.
Now, after upgrading the first thing I did was some overclocking, then I ran the Pi through some CPU stress tests to insure that it would hold the overclock without crashing. I was successfully able to overclock up to 1400 MHz and remain stable, even after about an hour of testing. This is great news, as it means that heavier emulation, like Nintendo N64 and PS1 emulation, will become much more attainable on the Raspberry Pi platform. This is something I may look into in the near future. For now, that’s all I got. I sure had one crazy day, and the arcade machine is running better than ever.