Control Panel Construction
You've probable already been to my cabinet construction page, but if not, it's available.
This page is dedicated to the construction of the control panel for my arcade machine. I took lots of photos during the process, but this page is being produced well after the fact. Therefore, it won't be in dated log format.
Let's get started!
Thoughts, Objectives, Planning and Parts:
One thing I knew when planning construction of this, my first ever arcade control panel, was that it probably wouldn't be my LAST panel. I knew that I would likely want to change it someday, and realized quickly that I could never get ALL of the specialized controls for some games onto one panel. Because of this, in the very early stages of planning, I decided that all of my controls would be wired up to DB-25 plugs. That way if I DO want to change, replace or swap controls later, I WON'T have to re-do the whole cabinet.
After researching what others had done, and spending a bit of time on http://www.klov.com reading about and remembering some of my favorite games from growing up, I made a list of controls that I wanted my panel to have. I made a decision early on that I HAD to be able to play real, 4-player Gauntlet on this machine, so clearly, I would need a 4 player joystick set-up.
Here's the list of controls I decided would give me maximum flexibility without too many "specialized" controls.
I ordered all of these controls from www.happcontrols.com, except for the spinner, which was from www.slickstick.com; links are to the product pages:
4 8-way joysticks (red, blue, yellow and green, in true Gauntlet fashion)
7 buttons per player (if I were doing this over now, I probably would only put 4 on players 3 and 4...)
4 Player "free coin" buttons (these are hidden... more later)
1 3" lighted track-ball with three "mouse" buttons
1 Spinner with two adjacent buttons
"Asteroids" lay-out (5 buttons)
Basic Pinball controls (2 flipper buttons per side and a ball launch button)
To interface the controls to the computer in the cabinet, I used the following encoders:
Other miscellaneous parts I used:
Crimp-On Male and Female
With all parts in hand, I setup up a prototype control panel and did a couple of weeks worth of play testing:
This step was VERY important to the final product, as I made several small but significant changes to control spacing and lay-out including:
Changed CP shape so P1 and P2 are "square" to the screen
Widened the panel a bit for more shoulder room with 4 players
Changed spacing of 7 button lay-out - Closer buttons for more comfort / control
Moved the spinner and filghtstick closer together for better "Tron" feel
Changed the orientation of P3 and P4 joysticks from 45 degrees to 90 degrees (better for 2 player 2 joystick games)
With adjusted measurements in hand, I sat down with Visio and made full size control mounting templates for every control.
If you have access to MS Visio, here is my control template file: Arcade Controls V2.vsd
I printed these out and headed for the wood shop!
WARNING: Cutting MDF is VERY MESSY. It created a LOT of dust; breathing it is probably harmful to your health. Wear a dust mask! When cutting / shaping MDF, do it outside if possible. If outside is not possible, find a well-ventilated or air-filtered room.
The CP is constructed from 3/4" Medium Density Fiberboard (MDF). This material is HEAVY and MESSY, buy it is also easily machinable, and dimensionally stable.
My first real construction step was to cut out the CP top from an MDF blank and lay out the final control positions. I just taped down the printed Visio templates in the proper positions:
Then it was back to the shop for some drilling and cutting of holes to mount the controls. Each button requires a 1 1/8" hole through the panel. These were drilled with a 1 1/8" spade bit.
The key with this type of bit is to put the point at the center, and drill through PART WAY until the tip breaks the bottom surface of the MDF. Once all holes are drilled PART WAY, flip the panel over and complete the drilling. This method prevents tear out on the bottom side of your control panel; tear out can make it hard to get your buttons mounted FLAT.
For the larger trackball and flight-stick openings, I rough cut the hole with a jig saw and then trimmed to final size using a router and flush trim bit.
My first step in building the body of the control panel was to glue pairs of MDF boards together into 1 1/2" blanks. The process was straight forward... spread a lot of glue; apply a lot of clamps until glue dries. You may ask "Why not just use 2x stock?" The answer: "real wood" expands and shrinks with temperature and humidity. MDF and ply-wood do not. They are "dimensionally stable". Using MDF ensures that the dimensions of the cut parts stay the same over time:
Once the laminated MDF blanks were dry, I ripped all of the blanks to the same width. I then miter cut all of the blanks into the shape of the CP base. In this shot, you can see the body components clamped down on the up-side down control panel top. You'll probably notice some "interference issues" where the body laps over openings in the control panel top. I'll deal with that issue shortly.
The body shape roughly follows the control panel top. I left about 3/4" overhang all around, except in the back. In the back, the top is actually 1/8" IN from the body. This will allow the back to sit tight against the cabinet after t-molding is installed.
Here are some shots of the interference areas:
This issue could have been avoided by making the top larger... but at 47" by 17", it's large enough! I carefully marked all of the areas that overlapped controls, and removed MDF with my router and table saw / dado blade until there was no more interference. It took some time and patience, but to me it was worth the effort to NOT make this beast any bigger.
I wanted the control panel top to slope downwards towards the players. This, combined with the shape I chose for the body lead to some complicated compound bevel cuts on two of the parts.
I started by beveling the top of the front and back rails. Next, I cut the correct slope on the two parts that are perpendicular to the back rail.
With the four easy pieces done, I clamped everything down and marked the two parts that run at 45 degrees against the already cut parts. After sever trial and error attempts, and a bunch of wasted MDF, I managed to get the compound bevel cuts correct.
Lesson learned: compound bevels are advanced carpentry!
Here's the top resting on the now sloped body:
Next step was to drill out the areas for the pinball flipper and ball-release buttons. Since my body is 1 1/2" thick, I had to drill a hole large enough for the button nut through the first (inside) layer. Then I drilled a through hole with the 1 1/8" spade bit for the button. Wherever possible, I rounded the inside edges with a 1/8" round-over bit in my router. Where the route couldn't reach, I used some sandpaper to round the edges.
If you are going to include pinball controls on your control panel body, make sure to account for them in your control lay-out for the TOP. You don't want to find that a flipper button and a joystick want to occupy the same space inside your panel.
In this shot, the body is upside down. In addition to the flipper holes, you can see an area removed due to interference. You can also see the rebate I added to the bottom of each body component to receive the bottom of the control panel:
The last opening to cut before assembling the body was a wire pass-through in the back rail. In the first shot, you can see where more material was removed near the ends to address control interference:
I chose to use epoxy to assemble the control panel body. It is stronger than wood glue, and can also fill small gaps without losing strength.
I used epoxy with a set time of ~15 minutes. Even with that "long" set time, it was necessary to glue up the body in stages. You can see one of my sub assembly glue-ups in the foreground. Once all of the joints were epoxied, I left the body clamped down to a flat surface overnight. Make sure to put some clear plastic tape down on that surface under each joint... or else you've got yourself a new over-sized control panel bottom!
Before removing the clamps, I wanted to add some reinforcement. I knew that I would be rounding over the body corners, and the back corners were down to 3/4" once material was removed to eliminate control interference. I drilled two 1/2" holes through each joint and epoxied in 1/2" walnut dowels for reinforcement:
Once the epoxy was set, I trimmed all of the dowels flush and removed the clamps. Here's the glued-up base with the CP top:
I rounded over all of the body corners with my belt sander:
With the control panel body completed, I attached the top using two lengths of piano hinge. Since the MDF wouldn't hold those tiny screws well enough, I drilled out each screw hole in the body and top with a 1/4" bit and epoxied in lengths of 1/4" dowel. Once the epoxy dried, I trimmed the dowels flush.
To get the screws to align properly, I pre-drilled each hole with a Vix bit:
This is a specialized bit with a spring loaded tip. The shape of the tip centers the hole in the hinge counter-sink.
Another tip for installing piano hinges is to start by installing the two END screws first, then alternate ends until you reach the center.
The last step for the CP construction was to cut the bottom panel to fit in the rebated area of the control panel body. The holes are for my "free credit" buttons, which will be easily reachable, but not visible:
The control panel bottom was installed with glue, and screws through the bottom into the body, and through the body sides into the bottom edge.
This step was actually done AFTER the bottom and inside of the control panel body were painted.
The screw holes were filled with Bondo auto-body filler.
In this shot, I've also cut the access hole in the bottom panel. This will allow my to reach up inside and unlatch the top:
Bondo is great for fixing uh-ohs too. Notice that I had to change the final location of my hidden "free credit" buttons in the bottom of the control panel. The original holes filled nicely with Bondo.
After the Bondo dried, I trimmed the body sides flush with the bottom panel using my router and flush trim bit.
Now it's time for some finish work!
Finishing the Control Panel:
With the construction of the control panel top, body and bottom complete, it's time to turn my attention to the finishing. This is where you cover all mistakes and make it all look pretty!
The process started by painting all of the inside surfaces black. I used Krylon spray paint.
Here's the underside of the top after one coat, and after the final (3rd) coat. Apply thin coats and sand with 220 grit paper between coats. After sanding, remove ALL dust with a vacuum and tack rag before the next coat.
You can REALLY see areas where Bondo was applied, and the dowels for the piano hinge screws in that first coat:
The same process was repeated for the bottom panel:
...and for the inside of the body:
After all of the painting, I went back and attached the bottom to the body (see the end of the body construction section). Here's the finished base assembly. This shot also shows the irregular shape of the inside body surfaces, due to control interference:
Next up is applying laminate to the top and bottom of the control panel.
In this shot, contact cement has been applied to the bottom of the control panel, and to the laminate in the background. Cut the laminate oversized. It will be trimmed later.
After the contact cement feels DRY on both surfaces, I placed several slats from an old vinyl blind on the bottom surface. These will keep the surfaces apart until I am ready for them to meet. Contact cement is VERY unforgiving. Once the surfaces meet, forget about it. they aren't coming apart without trashing the laminate.
Flip the laminate over onto the blinds. Carefully remove the blind slats, starting in the CENTER. Press down and work your way slowly to the next slats. continue this until all of the slats are out. Then go over the entire surface with a J-roller to ensure good contact.
After all of the slats are out and the surface has been j-rolled (j-roller in photo below), use a router and a laminate trimming bit (it has a bearing on the BOTTOM of a flush trim bit) to shape the laminate:
I used a properly sized forstner bit to drill out the openings for my "free credit" buttons.
Here is the top (resting on a soft surface so the paint won't get scratched) coated in contact cement. Behind it, the piece of laminate is lying upside down, also coated in contact cement.
Following the same steps as above, I applied and rolled down the laminate:
To trim out the holes in the control panel top, I flipped it over and drilled a 3/4" hole in the center of each opening. These pilot holes will serve as entry points for my laminate trimming bit. Flip the top back over, and go around each hole with the router and laminate trimming bit:
If you follow this process, you should get nice edges around the holes with no chipping:
Finishing the sides of the body provided a dilemma.
My original plan was to use black laminate, but there were obstacles:
All black would look too "heavy" and plain
I couldn't get a strip of laminate long enough to go all the way around without a visible seam
I wasn't confident that I could apply and trim the laminate around this complex shape and be happy with the results
After a few days of wrestling with the possibilities, I had an idea... How about aluminum foil?!?
I made up a test panel of MDF with an aluminum foil laminate. I crumpled the foil, and then re-flattened it for some pattern. Then applied contact cement and rolled the foil down onto an MDF scrap. To my surprise, it looked good! After the contact cement dried fully, I rubbed and scratched the test surface. It was every bit as durable as any paint or poly I've used. Furthermore, if it did get a scratch, it was hard to notice, since I had added some texture with the crumpling.
All systems go... here's the body coated with contact cement:
And a long strip of foil that has been crumpled, flattened and coated with contact cement:
And the result after trimming the foil with a utility knife:
It looks even better in person!
Using my router and a carefully adjusted 3/32 slot cutting bit, I cut a groove around the control panel top edge, and pounded in some t-molding:
I mounted the top to the body using the piano hinges:
Now I'm ready to fit some controls!
I added my pinball buttons and "free credit" buttons:
Shots of the inside with the pinball and "free credit" buttons installed:
The "free credit" buttons hidden away on the bottom of the control panel:
And finally, all of the controls installed:
Unfortunately, while pretty to look at, this won't do me much good until it's wired.
That's coming up next!
Wiring the Control Panel:
This is where the fun begins!
Here's a shot of the inside of the CP with all controls mounted:
Not too much fun this way... but I'm going to change that soon enough.
As I said earlier, the wiring for this cabinet / CP will be modular and built around the DB-25 connector. This is a common connector with 25 pins. Most printer cables (non USB) have a male DB 25 on one end and a female DB25 on the other.
Here are the components I used to build a single harness. This one harness has enough connections for 2 joysticks with 7 buttons and a start button each! The wires shorn are lengths of CAB012 12 conductor wire, and two pieces of normal stranded wire (for ground connections). The second shot is a close-up of the solder terminals on the DB-25.
This is what the individual wires in the CAB012 look like. Each bundle has ONE wire of each color:
As you can see, the connections here are very small. You WILL NOT be able to do this without a proper soldering iron. The model I used came from Radio Shack (Catalog #: 64-2185):
It had good temperature control, a small enough tip to get to the individual pins, and can head to the ~800 degrees needed for good soldering. With the wrong soldering iron (or a soldering gun), you'll likely destroy your connector and be VERY frustrated.
In addition to the wire and connector, you'll need some heat shrink tubing to protect and insulate the completed joints. I used color coded heat shrink. Each piece is ~ 3/4" long:
To wire by this method, it is critical that you plan what will connect to what pins, and keep good notes on associated wire colors. Here is the Excel file I used to keep it all straight: Controls Wiring Key.xls
Each wire must be soldered to the correct pin. Start at one end and work across the top row. Make sure to put a piece of heat shrink on the wire BEFORE you solder, and keep it back from the heat of the soldering iron. Once all 12 wires are soldered, you will have the second picture below:
Slide all of the heat shrink tubes down onto the soldered joints:
After heating with a hair dryer or heat gun, the tubing will shrink tightly around the joints:
Flip the connector and repeat the process for the other row of pins:
At this point, pin 13 was the only unused pin on my connector; it is designated as ground. I twisted two ground wires together and then to a pigtail wire, and soldered:
The pigtail wire connects to pin 13, which will now supply ground to ALL 24 of the other inputs supported by this harness:
Heat shrink for the ground wire completes this harness:
I finished off by gathering the input wire bundle and a ground wire and bundling them with color coded wire ties:
A second harness caries 2 more players worth of controls:
Here are the 4 completed harnesses for this control panel. From right to left, they are: Player 3 / Player 4 , Player 1 / Player 2, Aux controls (flightstick, flippers, asteroids, etc), and Trackball / Spinner / Power connections:
Because the 4th harness carries +5 / +12 volt connections, and I don't want to fry my encoders some day, this harness uses a MALE DB25 instead of a female. This way it can NEVER be plugged in incorrectly to my KE72 inputs.
The way most encoders work is that they have several terminals
for inputs. Each input responds when that terminal is connected in a
circuit (continuous loop) with "ground". Each button or joystick direction
is actually a tiny switch; when a button is pressed, it completes the
circuit from the input side of the switch to the ground side of the switch.
Each "switch" for the control panel (every button and every joystick direction) must have one input wire going back to the encoder, and one terminal attached to ground.
Most encoders only have a few ground terminals that must be
shared by all of the inputs. You must find a way to get a wire from
each "switch" in your CP back to these terminals.
While it is possible to run a separate wire from each switch's ground terminal back to your encoder, and then bundle them together and connect to a ground terminal, this gets messy and uses a lot of wire.
A better option is to "daisy chain" the grounds for a group of controls. What daisy chaining means is to connect many switches' ground terminal together in a continuous "chain".
Here's a picture of some of the "chains" I made up for my control panel wiring:
As you can see, each chain is just several pieces of wire, each long enough to go from one switch (button or joystick direction) to the next. Twist two wire ends together and crimp on a terminal to the pair of twisted wire ends. Repeat this process until you have as many ground connections as you need.
Each of the pictured chains shows 11 terminals. A 12th terminal
was eventually added to the end, and attached to one of the black wires from
a completed harness above. This gave me 12 ground connections per chain....
a perfect match for the 12 inputs per player! Each chain served 1 player (4
joystick directions + 7 buttons + 1 start), so there were two of these
chains attached to each of my harnesses.
In my situation, I have a total of 8 ground terminals on my encoder... so I divided my controls up appropriately between them.
My ground wires run along side (bundled to) my input wires. at each switch, I cut one input wire to length nest to the corresponding ground terminal and crimp on a connection. The rest of the wires continue on until there is only one left by the end of the ground chain.
This process gives me 4 harnesses exiting the back of my control panel. Now I must make something to connect them to inside the cabinet.
The KE72 encoder I used has a pair of break-out boards that
connect to it. each of these boards takes 36 inputs, and supplies 4
ground terminals. My first step was to connect a short length of
CAB012 to each side of each break-out box:
Make sure to follow your wiring plan carefully.
I then stripped the opposite ends of all of these wires and soldered them to the ends of three long printer cables that had one male end and one female end each. I cut off the female end, exposing the wires inside. After all of the soldering was done, I had a simple, and removable connection from my encoder to my control panel. Also, if I ever want to replace my control panel, I don't have to change anything inside the cabinet, as long as a stick to the wiring plan.
Here is the finished wiring inside the control panel:
And that's all she wrote!
While this is a fairly complicated panel, the basic wiring principles are the same for any arcade control panel.
Feel free to contact me with any questions or comments!
Go to Cabinet Construction Home