Step 1: Materials and Tools
- Wood, about 7 inch wide and 1/4 inch thick
- Paint, Wood glue
- USB game pad
- competition joystick
- (6) competition pushbuttons
- (4) #10 1/2 inch wood screws (or metal screws)
- (7) #8 or #6 1.5 inch Wood screws
- (20) 0.187 inch Female Quick Disconnect Crimp Connectors
- 300 inch (25 feet) 24-28-gauge hookup wire (old CAT-5 cable works with the jacket removed)
- 12x12 inch square solid foam shelf liner
- Dremel with micro drill bit (e.g. 0.0260 inch)
- 1.125 inch hole saw (for drill)
- Table Saw / regular saw for woodworking
- Needle nose Pliers
- diagonal-cutting pliers (dykes)
- Soldering Iron and solder
- Wire strippers
- Helping hands
- Wire crimp tool
- Hot air gun
- Hot glue gun
- Software: AutoHotkey (Windows only, similar automation software exists for Mac /Linux)
Step 2: Make the box
The housing for the joystick mouse can be as simple or as complex as you want. The author used a wooden box that was gifted by a friend. Hence, there are not any pictures for that portion of the project. The author’s first model was built using particleboard shelving, dowels, and cardboard. The author has also experimented with stiff Tupperware containers. The templates showing the original (side view) and top-piece template are attached.
Saw two rectangles of wood 7 inch x 8 inch (1/4 inch to 1/2 inch thick). These will be the top and bottom pieces. Determine the angle of the finished joystick mouse, then cut identical trapezoids for the sides. The height of the joystick mouse should be as short as possible. If you use thinner wood (1/4 inch over 1/2 inch and measure to make sure you don't have a lot of wasted space inside vertically it increases the ergonomics of the device. The front and back will be rectangles the same width but of different heights (because the back of the mouse is positioned higher). If it fits, round the corners and use wood glue or screws to hold the sides of the box together. If it doesn’t fit properly, make adjustments by sanding/cutting/filing/hammering until it does.
The holes for the pushbuttons need to be 1 1/8 inch (1.125 inch). We are going to drill seven holes in the top, one for each button and one for the shaft of the joystick. Postpone adding either the top or the bottom of the structure until the end. Make sure it fits and predrill your pilot holes for the screws. You may even want to screw it together lightly to make sure everything works. Unscrew the top and bottom until the end of the project, leaving the box alone.
For the rear piece, you will need a hole for the USB cable to pass through the housing. Originally, the author had the hole centered on the rear panel. However, the opening was found to be too small for the USB header to fit through. This resulted in the author having to unsolder the USB cable from the game pad, pass the cable through, solder again- or clip the USB cable in half and then splice/solder all the wires inside back together. (Please reference the pictures on the author's website.) Ignore the nice hole drilled in the middle and make much better use of a small mousehole drilled in the bottom edge of the piece. This simplifies the build process considerably.
Once things are sanded/painted and ready to go, cut a piece of solid shelf liner a little smaller than the bottom. Hot-glue this into place. This provides an anti-skid surface that helps keep the joystick in place during use. You could also use the rubber furniture bumpers, but they come off easier.
Step 3: Insert the arcade controls. In this step, we put the arcade pieces into the top panel. The joystick and the pushbuttons all come with good exploded diagrams and installation instructions.
For the pushbuttons: Insert the buttons through the holes in the panel from the top. From the back, put the nut on and hand-tighten only most of the way (the nuts are plastic, metal tools will tear them up). Insert the cherry microswitch. The microswitch will only snap into the pushbutton one way. There are tabs on the pushbutton that mate with holes in the microswitch. Turn the button and microswitch assembly so that the contacts point towards the center of the unit where the circuit board will go. Hand-tighten the nut the rest of the way until it is snug. For added security, a large drop of hot glue will keep the nut from loosening.
For the joystick: From the back, screw the joystick base plate into the wood. Be careful the center where the shaft for joystick will be over the hole in the wood. I like to cover the screws and edges with hot glue just to make sure it doesn't get any ideas about leaving. Assemble the joystick. Put the washer on the shaft, then put the collar. Insert this assembly from the top. From the bottom, put the button-masher part on the shaft (there is a proper direction, the smaller end should be towards the bottom of the shaft). Push the button masher down the shaft until you can move the joystick and have it make good contact with the switches on the bottom. Push the lock ring into place to keep the joystick assembly together.
Label all the switches with a Sharpie. This will be very important when it is time to hook it all up.
Step 4: Wiring Part #1. In this step, we will make the wiring leads that will run from the switches to the game pad.
The author made the wiring leads the same length, which makes them interchangeable. This also means that the wiring will be a lot more of a rat nest inside the device. Ideally, the length would be carefully measured and you would have one length for the lower two buttons, one length for the next higher buttons, one length for the top buttons, a length for the left and right switches, a length for the up switch and a length for the down switch. This is a lot of extra work for something nobody is going to see.
The author used old CAT5 cable, sans jacket, for the wiring. Any thin solid core wire should work. The author took the CAT5 and separate it into color pairs or inchtwists inch for a cheap hook-up wire. Cut a 14 inch length of a twist. You should have two wires twisted together. Untwist the ends about 1.5 inches. Strip 1/4 inch of insulation from all four ends. Put two the female crimp connectors on one end of the twist (one for each wire). Using the crimp tool, crimp the connectors tightly onto the wire. Test to make sure the ends are tight are will not work loose.
Critical Step: Test each finished set for continuity with a multimeter. It should be continuous from the bare end of the wire to the metal on the crimp connector. If one is not made correctly you will spend HOURS debugging why things are not working. Make 10 of these wiring harnesses.
Step 5: Gamepad Preparation. In this step, we start preparing the gamepad for its new life as a joystick mouse.
First, plug the gamepad into the computer and test it out (see the later section on testing). Go to the Control Panel (on Windows), Game Controllers. You should see the gamepad listed. Go to Properties. Press all the buttons and move the direction pad and make sure everything is working. The buttons will be numbered. Test the buttons so that you know which button corresponds to which number. Keep track of the connections by writing it down. The information may not be silkscreened on the circuit board. It always good to make sure it works before you tear it apart.
Unscrew the gamepad housing. Gently get all the pieces out of the housing. Throw away the housing. Throw away the little buttons. Throw away the little silicone plastic springs. If it has pager motors (for rumble/feedback, cut those off and save them for some other project. If you do cut the motors off, be sure to cut cleanly so the wires are not exposed.
Most gamepads have triggers (usually buttons 5,6,7,8). 5&7 tend to be on one trigger, 6&8 on the other. Normally, you have three wires running to each pair of buttons. One is common, and the other wire indicates which button (e.g. 5 or 7) is pressed. For space reasons, we are only making the joystick with 6 buttons, but that is a tradeoff of space vs. functionality. If your gamepad has 10 buttons, there is no reason you couldn't use all ten buttons.
With the multimeter, test the trigger circuits for continuity until you know which two of the three are used by #5 and which two of the other three are used by #6. Clip the trigger button circuit boards off and throw away, leaving the three wires connected to the main circuit board on each side. Strip 1/4 inch off the ends used by #5 and #6. Clip and throw away the wire that would have run to #7 and #8.
The basic steps are:
- Identify the traces or test points corresponding to a particular button
- Drill a very small hole in the board with a micro drill bit and a Dremel so that it is either a) Through a test point or b) next to a trace (without touching it)
- With a little sandpaper, sand through the lacquer until you see bare copper. Solder will not adhere to the lacquer, so to join the wires we need bare metal
- Repeat for all buttons to be adapted (in this case, the 4 directions and buttons 1-4)
Be very careful when drilling next to the traces. It is very easy to slip with the Dremel and destroy the traces. If I am drilling next to a trace, I go for the widest point available. This will give more surface area for soldering later and helps support the wires. Thinner traces can be torn off the board easier than thicker ones.
Step 6: Wiring Part #2. In this step, we actually attach the wires to the gamepad.
For starters, by looking at the circuit traces, I notice that the left and down share trace, and up and right share a trace. It makes sense - one can't go up and down (or left and right) at the same time. To simplify the number of holes to drill and solder, combine these two wiring harnesses into one that has a combined point. To do this, wrap one wire around the base of the other and then solder them together. For the buttons 1-4, notice that they have a shared point so do the same thing - four wiring harnesses hooked up with 1 point in common. This will vary depending on the model of the gamepad.
Insert a wire from one of the wiring harnesses from the back so it sticks up through the board on the circuit board side. Slightly bend the wire so that it does not pull out immediately. I sometimes put a drop of hot glue on the back to provide mechanical support and to keep the wires from backing out immediately. After a couple seconds, apply the solder. It should form a bead that covers the testing pad and holds on to the wire. Remove soldering iron. Once the solder is cool, snip off the extra wire with the diagonal cutters.
For trace-connection wires: Fold the wire down with pliers. It needs to make as much contact with the copper trace as possible. It needs to be as horizontal as possible (parallel to the trace). Apply the heat to the trace on the board and press the wire and the trace together with needlenose pliers or a small screwdriver. Apply the solder while applying pressure with the screwdriver. Once the solder is applied, remove the iron and then remove the screwdriver if it looks like it is holding together. These are very fragile, so be careful.
Test everything. Repeat these steps for all wires until all the wires are successfully attached to the gamepad. In some cases, it is good to pre-tin the wire or the traces. This can make adhesion easier. To pre-tin, apply solder to the wire and the traces individually so that they are silver-colored. Then press them together (with the pliers) and heat them up with the iron. The solder should melt, remove the iron. The pieces should hold together.
For the trigger buttons (#5 & #6), fold the wiring harness wire ends into hooks with needle nose pliers, then bend the stubby wires for the trigger buttons into hooks. Put a 1/2 inch piece of heat-shrink tubing over the wiring harness wires. Link the hooks, then crimp into place with the pliers. Solder the wires. Move the heat shrink tubing over the solder joint. Heat quickly with the hot-air gun to make a good seal. This prevents the trigger wires from touching accidentally.
A common error that occurs on this step is when the rosin-core of the solder connects to one surface, thus providing an insulator. For instance, the test pad will be coated with a tiny layer of plastic, and the solder will adhere to the wire, but the wire and the circuit board on the gamepad are electrically separate. It is good to test with the multimeter before you test on the computer. To fix this, heat up the bad solder joint with the iron for about ten seconds. On the traces, sometimes sanding the rosin flux off with sandpaper helps also.
See the next step about testing. Going through the entire testing process after every two or three connections to the board is highly recommended. It helps in finding connections that are bad early on in the design process.
Step 7: Test on the Computer
This an important step. Test often. It is much easier if you can figure out that something is not soldered correctly before there are wires everywhere. This step makes sure that things are soldered correctly and you haven't accidentally knocked something loose.
If you have to unsolder the USB connectors on the game pad, be very careful that you put them back in the right order. Otherwise, the gamepad controller explodes and you could damage your computer. Go to Control Panel. Go to Game Controllers. You should see the controller listed in the box. Click Properties to test the controller.
Touch the pairs of wires together (or press the buttons) one at a time. If the indicator light on the screen turns on (for a button) the connection is good. If the + character moves in the box, it is a good connection for a direction. If you have not done so, mark one of the crimped ends with a permanent marker so that you know what it does later. When done, Click OK. Remove the USB game pad from the computer.
Step 8: Wiring Part #3. In this step, we connect the quick-connect ends of the wires to the proper pushbuttons.
Position the circuit board between the lower 4 buttons (that is the only blank spot inside the case) with the wires streaming towards the top. One pair of wires at a time, connect the wiring harnesses to the respective buttons. Remember to connect to the contacts marked “Common” and “NO”.
Route the wires as best you can. The only thing to avoid is the joystick. If wires run directly under the joystick they can jam the joystick or cause it to move erratically. Anywhere else in the case is fair game. Testing is a must for this stage also. The odds are decent that something will get jarred loose. Every few connections, hook the USB cable back up to the PC and test everything.
Step 9: Finishing touches. Once everything has been tested again and all the wires are in place - it is time for a couple finishing touches.
Put a large dollop of hot glue on the backside of the top panel. Press the circuit board into the glue to hold it in place. This allows the device to be handled without the circuit board banging into things. Put a small overhand knot into the USB cable right on the inside of the box. If someone yanks on the cord, they yank against the wall of the box and not against the solder joints. Put the top and bottom back on the box and put the screws in place. The unit should now be fully assembled.
Step 10: Hardware Complete!
At this point, the hardware is complete. However, when plugged into a computer, it is still just a USB gamepad. Wiggling the stick and pressing the buttons does nothing, because Windows/Mac/Linux don't natively use a joystick as a means of input (they all want a mouse). To really make it useful, we need some software to translate joystick motion to mouse motion. Here is where the program launching and talking parts come into play.
Step 11: Software
To translate joystick movement to mouse movement, we use the program AutoHotKey. There is a variation of AutoHotKey called IronAHK that is supposed to work under Linux or Mac using the Mono framework. I haven't gotten it to work, but your mileage may vary. There are other programs available for Mac and Linux that do system automation that should work with the Joystick mouse. There are other programs that can do joystick to mouse conversions:
Stick Mouse: Acceleration turned on, not configurable, Only Left and Right button
Price - $5. Website: Trajectorylabs.com.
Joy Mouse: No Keyboard keys, no configuration, no drag or double-click. Exits if tray left-clicked, options if right-clicked. Price: Free. Website: http://www.deinmeister.de/jmt_e.htm