Speaker Board

The board that holds the speakers actually serves a few purposes – holding the speakers of course, but also supporting the bottom of the marquee and giving the top part of the cabinet a finished look.

Because this piece will be attached after the cabinet is painted and the marquee backlights are installed, it will be screwed in rather than glued in. I decided to make it removable by using machine screw inserts.

First I held the piece in place with some duct tape and drilled pilot holes through the speaker board and into the mounting pieces so that the alignment would be correct.

I had planned to do two bolts on each side, but the profile pieces blocked my drill. Turns out that one bolt per side holds it pretty solidly. I used a countersink bit so the bolts could be flush.

Next I had to make sure the marquee would fit, and cut a notch in the top of the speaker board to support the bottom of the marquee. Unfortunately when I had assembled the cabinet, the left side of the roof slipped back a little and the notches in the roof and profile didn’t line up.

I used a utility knife to cut the notch in the roof a little wider in the front so at least the front of that groove would line up with the one in the profile. I had a little adjustment to do on the right side as well.

I also used a keyhole saw to extend the notches on the profile all the way down, so there would be room to insert the marquee and then slide it into the notch in the roof.

I held up one of the pieces of plexiglass to see how much to cut off. I didn’t need to be completely precise since there is a bit of wiggle room in the notches.

I trimmed it by scoring and snapping the edge off with a pair of pliers.

Then I used the trimmed plexiglass as a template to trim the marquee. I centered it so I could trim the same amount off each side.

The last step for the marquee was to cut a groove in the speaker board. With the speaker board installed, I marked where the side grooves line up. I also traced the inside top of the speaker board so I could be sure that the speaker holes would not interfere with the light board or the mounting boards on the sides.

Since there was already a pretty deep groove for the T-mold on the front of the speaker board, I had to make sure the notch for the marquee wasn’t too deep. I once again used the angle base for the router to get the 10-degree angle I needed.

I marked out the centers for the speaker holes and drilled them with a 4” hole saw.

The groove lines up pretty well with the grooves in the profile.

Here are some photos showing the fit of the marquee and the speaker holes.

Control Panel Support

Since the cabinet turned out to be slightly narrower than I had planned, I trimmed out the left profile so the control panel would fit. I also carved some notches in the front MDF piece to accommodate the GPIO connections.

The angle aluminum I bought to support the bottom of the ci trol panel was 36” long. I bought that size because it cost less than having them cut it to a 30” piece. And now that the cabinet is slightly narrower than I had planned, I would have had to trim it anyway.

I put the piece of angle aluminum on the cabinet and marked where I wanted screw holes. I drilled small pilot holes and used those as guides to make pilot holes in the MDF. Then I drilled out the holes to the proper size and used a countersink bit on the aluminum. Then I screwed the aluminum in place.

The bottom and both sides of the control panel are now really well-supported. I decided to use the piece of aluminum that I had cut off of the long piece to add some support to the top. Since the circuit board goes all the way to the top of the control panel, I positioned the aluminum between two mounting screws so it could fit between the circuit board and the control panel base. Since the narrow piece of MDF behind the control panel was now being used for support, I reinforced it with some shelf brackets.

Cabinet Assembly

The final home of the arcade machine will be my basement, so I decided to assemble it there instead of having to get the fully assembled cabinet down the stairs. I set one profile on its side and then started by connecting the floor to the back and the front pieces. I put glue in the dado cuts and also on some 1×1 boards along the seam, which I held in place with nails.

Then I put that assembly into the dado cuts in the profile (with some glue) and added the reinforcing 1x1s. I repeated the process for all the cross pieces, and then added the second profile.

I had forgotten that the 1x1s in the back should go top-to-bottom so that they would also create a ridge to support the door. So at the bottom I just did my best to line it up with the one I had cut.

Once I had both profiles on, I clamped it and left it to dry. I didn’t put any reinforcing 1x1s on the second profile because that’s much easier to do when you’re working with gravity instead of against it.

While I was waiting for the glue to dry, I added feet to the bottom, using furniture levelers attached to blocks of 2×4.

Once the glue had set, I flipped the cabinet to the other side and added the 1x1s. Once that glue had set, I stood the cabinet upright.

Because the dado cuts were such a tight fit and so close to the edge (I probably should have used at least a 13/16” bit instead of 3/4”), there was some cosmetic damage that occurred during assembly. I will need to repair these and also add filler to the seams on the front and top back before the cabinet can be painted.

Another issue is that when I measured and cut the cross pieces for the cabinet, I failed to account for the width of my saw blade. So now the control panel doesn’t quite fit.

To remedy this, I plan to cut away some of the wood under the cut for the angle aluminum that will hold down the panel.

I tried to see how well the marquee would fit, and that’s when I realized that I should have cut these slots all the way to the edge of the board.

Now that the cabinet is assembled, I don’t think the router will fit there, so I’ll likely extend those cuts with the reciprocating saw.

Final trimming and dry fit

I had all of the pieces for the cabinet cut, but I needed to round off the top back corner of the roof piece, and the piece right above the front piece needed to be trimmed a bit.

I need the curve on the roof piece to be a 100-degree curve and not 90, so instead of using a router, I marked where I wanted the curve and used a file and sand paper.

I filed down the two ends first and made sure they fit.

Once I had the entire edge filed down, I went over it with some 120-grit sandpaper.

Once this was done, I trimmed up the piece above the front with my circular saw. Then I put all the pieces together to check the fit.

Some of the joints will need some filler, but it all fits pretty well. I added the control panel and TV just to see how it would look.

In the previous image, you can see that the wires connected to the GPIO on the Raspberry Pi are right up against the wood. I actually need the control panel to slide down a little further, so I will chisel out a notch for the GPIO connections after the cabinet is assembled.

The last step before beginning assembly is to cut a T-mold slot in the roof piece, as well as a slot for the top of the marquee. The marquee slot has to line up with the slots on the profiles, so I measured carefully and found that they were off from each other by 1/8”. No big deal; I just need to cut a slightly diagonal slot in the roof so it all lines up. Being off by 1/8” over 30” will not be noticeable.

The other issue with the slot in the roof is that it has to be 10 degrees off of perpendicular so that it will line up properly. To achieve this, I bought an adjustable angle base for my router. It has angle marks every 7.5 degrees, so it set it to about 1/3 of the way between 7.5 and 15, and did a test cut.

It was right on.

I also used this test cut to measure the fence distance I would need for the angle base. The notch lines up perfectly on one side, but is slightly off on the other.

I might just chisel a little out of the notch on the profile so that the marquee can easily slide into the roof notch.

Next step: assembly!!!

Securing the joysticks, and LED wire connectors

I tried just using the same screws that I have for the standoffs to secure the joysticks to the control panel, but I didn’t trust that to hold. The holes for mounting the joysticks are just too big.

I decided to use the washers that I had used to mint the joysticks on the old control panel, but with the thickness of the washer plus the metal plate of the joystick, the 1/4” screws were too short. I got some 3/8” screws, but they were ever so slightly too long.

So I rummaged around in my toolbox and found more washers so I could stack them to keep the screws from poking through the control panel.


Once the arcade is built, I don’t plan to update the images on the SD cards very often. But I still want it to be possible without extreme amounts of trouble.

The extenders for the SD cards that I used before are not really practical anymore, because in some cases the ribbon would have to be creased in order to fit. This of course risks damaging the ribbon. Here is an example of where the extenders just don’t work.

So when I want to update the SD cards, I will have to get the displays out of the control panel, which means removing the large “Play Anything” circuit board. This means removing the 16 mounting screws (I may put Loctite on the threads of the standoffs so they don’t come out when I try to remove the screws) and disconnecting the wires from the relay bank.

But since the circuit board also will be driving the LEDs inside the buttons, I will have to disconnect those as well.

Disconnecting the wires from the button blade connectors is quite a hassle, and the negative lead is a long daisy chain. So I decided to connect the LED wires to the board with mounting posts. It took a while to find any kind of wire-to-board connector that was for only a single wire. And many of those still require two holes in the circuit board, which won’t work for me. I settled on these:

One potential problem with this approach is that I put the mounting hole for the negative wires too close to one of the Arduinos. Luckily, the mounting post fits and clears the Arduino. I will have to unplug that one to access the screw on top of the post, though.

Here is a section of the board with the mounting posts installed:

Some simple power consumption calculations (that I should have done a long time ago)

I knew that 20 AWG wire would be much more than adequate to handle the required amount of current for the LCD circuits. I went that large because I also wanted some structural enhancement after the stranded wires kept breaking. But I was curious to see just how much current those wires would be handling.

Each circuit board drives one 5V, 16MHz Arduino Pro Mini, one LCD, and one LED. The current draw of the LCD is 25 mA, according to Adafruit. The Arduino Pro Mini (5V) draws up to 26 mA when running the default “blink” sketch ( see https://www.arrow.com/en/research-and-events/articles/getting-started-with-the-arduino-pro-mini#:). It’s been long enough since I bought the arcade button kit that I don’t know the LED current draw, but the maximum current for a standard LED is 20 mA. So each board can potentially draw up to 71 mA. The largest current draw on the 20AWG wires will be on the segment between the relays and the first board, since that segment has to supply the current for all ten boards, or 710 mA. 20 AWG wire is rated for up to 3.5 A under continuous use. So, yeah, the wires I chose have a capacity of almost five times the current they will ever have to carry.

But I was surprised at how high the final number was. We’re approaching a full amp, and that’s just for one side. Granted, that is the maximum current that should ever be drawn, so games that don’t use all the buttons (and thus don’t light all of the LEDs and LCD backlights) will use less. Still, there is a potential for the LCD functionality to draw up to 1.42 A (710 mA per player), plus a little more to drive the coils of the relays.

I took a look at the power supply that I have been using for this circuit. Maximum output is 300mA. This led me to a question that I didn’t like: was inadequate power the only reason this didn’t work with the previous design? I quickly decided that I didn’t care about the answer to that question, because I like the new design so much better. Also, I immediately ordered a 3A power supply.