Introduction

The most important consideration in the design phase is to allow your design to change.  As I said, I have saved over $300 dollars by revising the design as I went along.  Remember also that the time to fix something is before you have started building anything.  Usually, the process will take the form of refinements, rather than a clean slate, but even a clean slate is easier to work with than having a controller 2/3rds completed and then trying to switch things around.

My design has basically gone through four major stages and countless refinements (and in some ways has circled back to how it started).   Let's look at each stage now to see how the design has matured and what has changed:

Stage One:  My original plan had an I-PAC and an Opti-PAC controller in a Radio Shack project box connecting to each panel with a 40-pin Hard Drive cable.  The forty-pin cable had enough inputs to cover all the inputs for the I-PAC and the Opti-PAC.   I had about ten individual panels and each panel was self-sufficient.  For example, I had a trackball panel with its own start buttons and 3 buttons for Missile Command.  I had a spinner panel with two spinners and three buttons each for Blasteroids.  I had a Steering Wheel panel with it's own Super joystick for a shifter, in addition to four or five buttons.  And I didn't have a way to run two trackballs, however, I was considering running a panel off of each main panel with a pass-thru that supplied inputs to the opti-pac.

Stage Two:  Cheep Technology came out with the Cheep Spinner and the Hackball, both of which were USB and Plug-N-Play.  I liked the concept and realized that I could use the trackball in an enclosure and use the buttons on the Primary Panel along with it as required.  I also decided that I didn't like having the I-PAC in a separate enclosure.  I didn't need the Opti-PAC any more, the 40-pin cable would be difficult for my son to remove and install and I didn't really like the idea of a separate box for the I-PAC.  The I-PAC was moved inside the Primary Panel, and I came up with the idea of using DB25 cables to connect the Secondary Panels to the Primary Panel.   This is also when I came up with the concept of plugging the SF panel into the Primary Panel for 3-player games and into the Secondary Panel (which in turn plugged into the Primary Panel).  While I was laying this out, I realized how to cross inputs so the left joy on the SF Panel (Player 3 for 4-player games) used the same inputs in this setup as the right joystick on the SF Panel (Player 3 for 3-player games) used in the 3 player setup.  (Control translation).

Stage Three:  I saw a Vindicators game on E-bay and realized that I had no way to play this.  The game required four 2-way vertical, 2-button joysticks.  None of my controls would work for a 2-player game of Vindicators.  Something had to be done.   I designed the Vindicators panel.  At the same time, I realized that I didn't really like the I-PAC being in the Primary Panel, because it meant this panel was always on my desk, even if I didn't need it at all for the game I was playing.  The I-PAC went back into an enclosure, but now it would connect with DB25 cables and multiple panels could plug directly into it and I could use the control translation lessons from Stage Two in the new setup.  Eventually, I also decided to split the Vindicators Panel into the Assault and Sarge Panels to save desk space when they weren't both required.

Stage Four:  I was pretty happy with this design, except that I had to drop the flashing LED's from the Primary and Assault Panels, because the DB25 didn't have enough inputs to support them.  I considered using RJ45 phone jacks for a separate cable to power the LED's, but I didn't like that idea.  I considered running dual DB25 cables to the SF panel and rearranging the inputs to allow inputs for the LED's, but I didn't like that idea either.  Then I remembered the bi-directional inputs on the I-PAC controller.  Through some careful reworking, I was able to make the LED's work with only a single DB25 cable per panel.  The wiring connections are a lot less straight-forward now, but the end result is much better.

Now that we have seen that the design ideas can change, let's look at some things that can cause a design to change:

New Products -  An example of this is the KeyWiz Keyboard encoder.  This is similar to the I-PAC, but better suited to my concept.  The introduction of this product made me completely re-think my button mappings; however, since I had not bought any of the required supplies, making this change did not cost me anything.

Software Changes - MAME originally did not handle mechanical rotary joysticks well and it almost killed our custom rotary joystick design.  Then, MC-Escher from BYOAC came out with modified source files that made MAME work the way we wanted and our original concept was saved.  It pays to stay up to date on software changes in MAME.

Maturity of the Design - As you can see from above the design changed greatly with each stage.  There is no way I would have initially sat down and come up with a Stage Four design.  But you plan a little, learn some new things, add those to the design, change some more, etc.  In the end, the design gradually but continually keeps imporving.

Other people's suggestions - Below are my original panel (based on the HotRod controller), a derivative of the OzStick, and my current panel design:

hotrod-side.png (5397 bytes)OzStick-side.png (3872 bytes)Current-side.png (3772 bytes)

The problem with my original design is you either have to cut a five-degree angle on the front and back panels for the width of the panel (which requires at least a bench saw), or you have gaps at the rear of the panel and lack support.

While talking to Chris Wigg of OzStick about building enclosures for me, he sent me the design that his new panels are going with (shown in the second figure above).  The angled edge at the bottom sits flat on the table, which provides the tilt to the joystick.  Chris' design can be viewed as an open box which mounts to the solid side panels.  His design does not have the overhang / wrist rest, and the top panel is roughly 1/8-inch below the top-wood, but otherwise it is similar.  I liked his design concept so much I used it as the baseline in designing my Star Wars yoke and steering wheel enclosures.  Besides being easier to assemble, his design has the following five advantages, which I think make it superior to anything else I have seen:

(1)  The components such as the joystick and buttons are positioned vertically (not at an angle).  This means you can experiment with different rake angles by just changing the slope of the lower line of the panel, rather than having to select the top panel and all the controls and change the rotation from 6 degrees to 10 degrees, etc.

(2)  Everything is at a constant depth.  For example, on my original panel, you have less depth clearance toward the front of the panel and more toward the rear.  On Chris' design, if I use 1x3's for the front and back panels, I have 2-1/2 inches of clearance anywhere on the panel.

(3)  The front and rear panels are perpendicular to the top panel.  The practical effect of this is I can place the controls anywhere on the top panel and as long as they clear the central box, everything will fit okay.  With my original design, deep items cannot be placed too close to the the top (rear) of the panel, or they would hit the rear wall.

(4)  The design is very flexible height wise.  For a number of my designs, 2-1/2 inches works fine for the buttons, but I need more depth for the joysticks.   Assuming that I just cut a hole in the base and cover it over, adding additional height is just a matter of using taller side panels.  The front and rear panels don't need to change at all.

(5)  The design is very constuction error tolerant.  Only the side panels touch the desk, the front and back panels do not.  This means that if my side panel base cuts are slightly angled, or the sides are not quite the same length, the panel will still work and the problem will hardly be noticeable.  I would expect my original panel to wobble if any of the dimensions weren't exactly true and it would be really obvious and look really bad.

While showing Chris' idea to a friend, he was surprised that the top panel did not extend to the sides of the panel.  I had wanted this also, and after he suggested it I saw that I could do this by just reducing the height of the side panels by 3/8-inch to account for the thickness of the top panel.  I also moved the front and rear panels flush with the edges of the side panels.

Now that you are prepared for your design to change, let get started . . .

Getting Started

The first step in this project is to decide how much of this controller you require.  I assume you are building this for MAME.  Play many different games in MAME with the keyboard and a PC joystick.  See which games you really like.  See which ones you dislike.  It doesn't make sense to build the trackballs, if you only like the Street Fighter style fighting games.  In this case, you could just buy a HotRod, OzStick, or X-Arcade and be very happy.  However, if you enjoy IKARI style rotary joystick style games, you won't be able to play it on these controllers.  The trick is to get familiar enough with the games that you neither buy/build more controls than you will use, nor end up wishing you had a control that you didn't build.

Following Others

At this point you have a fairly good idea of what games you enjoy and what controls are required.  The next step is to see how others have done similar controls.  This will give you ideas about construction and finishing techniques and control placement.  IMHO, the best place to start is the BYOAC Examples Page.  Also, if you have questions, you can search their message board archives or post on their message board and (usually) get a helpful answer.

Laying It Out

I found some Word Templates on LusiD's page and designed all my controls in Word.  My designs are available from the download files page.   Feel free to adjust them as you like.  If you are not comfortable with images in Word, a program called IPCD is specifically set up for this, or you can use any graphics or CAD package.

There are two main advantages to laying everything out this way.  First, you can print everything out and "test-fit" all the controls before you have actually cut a panel apart.  Secondly, when you are ready to cut a panel apart, you can just print out and lay your design on top of your panel to mark hole locations without having to measure so many inches in from the edge, etc.

Considerations

There are three primary considerations in designing this project:  Space and Usage, Required Buttons, and Conflicting Buttons.

Space and Usage - This is pretty self-evident.   Basically, if you live in a one bedroom apartment, with a laptop, and none of your friends like gaming, you might be better with my setup than a 48-inch wide monster 4-player Street Fighter controller.  Just an observation, don't let this stop you.

Required Buttons - If you are using a later version of MAME and a programmable encoder like the I-PAC, this hardly matters as you can set either the software or the encoder to make any button correspond to any key.  If you want to play an emulator with non-assignable keys, and don't have a programmable encoder, you had better make sure that your encoder supports the keys your game requires.

Conflicting buttons - Your controller may have more buttons than your encoder can support.  This is fine as long as these buttons are not used in the same game.  For example, both the lower left button on the SF panel and the right flipper button of this panel are mapped to P1B1.  This is fine because I don't use these buttons for different functions in the same game.  You must plan your controller carefully to avoid this.  Remember, even though the encoder may be programmable, if two buttons are both connected to the same input, the encoder can't tell which one is being pressed.