Below is a tutorial on how to modify an XBox video game controller to work as both a USB-compatible computer game controller & a 2-port USB 1.1 hub.
Apparently, XBox controllers are 100% USB-compliant devices. This means modifications are as simple as connecting wires of the same colour together. Once modified, the controller will work on the computer & run in any game program that requires a controller.
Solder, soldering iron, knife, flat-head/Phillips screw drivers, XBox controller with breakaway cable, USB cable, two female USB connectors, electrical tape, flux, flux remover/rubbing alcohol, side cutters, wire strippers, continuity tester/multimeter, a computer running Windows 9x/NT/2000/XP, driver software, some 22 WAG or 30 WAG copper wire, some method of static protection, small paint brush, cloth/paper towel, anti-static bag, tweezers/needle-nose pliers & LOADS of patience.
The controller's circuit board is very delicate. Handle with care. Take anti-static precautions before working on the board. Do not work on the board while it is plugged into any other device, especially when that device is giving power to the work piece. Store the board in a static free environment when not working on it. Do not work on the board while power is flowing through unless certain measurements are needed to be taken; if so, make sure proper precautions are taken to avoid shock.
Part 1: XBox Controller To USB Controller
1. Disconnect the XBox breakaway cable from the XBox controller & take note of the pin-outs for a USB connector, an XBox controller connector & an XBox breakaway cable connector. The pin-out diagram is shown below:
2. Use a knife or a flat-head screw driver to pry open the plastic case that protects the XBox controller connector. Save the XBox controller connector & the plastic case in case they are needed. Or, cut the XBox controller connector off of the breakaway cable (using side cutters) & throw the connector & case away if they are not needed.
3. Use a knife to remove about 2.5 cm of the outer insulation & the underlying ground wires (the ground wire will look like an other layer of insulation made out of extremely thin wires woven together).
4. Use wire strippers to remove about 1 cm of insulation from each of the small multi-coloured wires EXCEPT THE YELLOW WIRE! These wires are 30 WAG stranded copper wire, so take care to avoid plucking or cutting out one of the strands (if this happens, repeat steps 3-4 as needed).
5. Use side cutters to cut the USB cable to about half its original length, save the half of the cable that has the male USB connector & throw the other half away. Then, repeat steps 3-4 using the severed end of the salvaged cable. Note that there is no yellow wire in the USB cable, so all the wires can be stripped. The same hazards in steps 3 & 4 apply to this step, though.
6. Now that the USB & XBox breakaway cables are prepared, match each coloured wire together (i.e.: green-to-green, white-to-white, red-to-red & black-to black) & twist each matched pair of wires together to temporarily fasten them to each other. Leave the yellow wire of the XBox breakaway cable unmatched & disconnected.
7. Solder each pair of wires together (again, green-to-green, white-to-white, red-to-red & black-to black). Once each pair of matched wires is soldered, tape the solder joints SEPARATELY with electrical tape. This prevents the joint of one wire pair from touching the joint of an other wire pair. This is important because if this isn't done, the controller could burn out & stop working. Again, leave the yellow wire of the XBox disconnected.
8. Tape all the taped wires together in a bundle & tape the outer insulation of the USB & XBox breakaway cables together (using electrical tape) so that the break in the outer insulation is sealed.
9. Connect the XBox breakaway cable back onto the XBox controller.
10. On a Windows computer, download & install a driver for modified XBox controllers called XBCD. This driver can be downloaded here or in the Downloads page. Once the program has been downloaded, run it. The first window will appear & ask if the installation should continue. Click the "Yes" button. Then, for every window in the installation, keep on clicking the "Next" button until it is finished. And now, installing the controller; Plug the modified XBox controller into the computer. The "Found New Hardware" wizard will appear. In the wizard, click the "Next" button. A warning window will appear, warning that the driver isn't digitally signed. Just click the "Continue Anyway" button. The first half of the controller's installation is done. Click the "Finish" button & LEAVE THE CONTROLLER PLUGGED IN!!! The "Found New Hardware" wizard will appear again, this time, for the installation of a USB 1.1 hub. Just click the "Next" button to install the hub & click the "Finish" button.
11. Test the controller. Go to the Control Panel in Windows, double-click the "Game Controllers" icon, select "XBCD XBox Gamepad" in the new window & click the "Properties" button. This is used to test if all of the controller's functions (including the rumble functions) are working, as well as to recalibrate the controller. When it is confirmed to work properly, use it for any computer program that needs a controller!!! If using Linux, simply install a game or an emulator program & assign the controller buttons & sticks; if they are detected & if they work in the program, all is well.
The controller can be left as it is without further modification & simply used as a regular computer controller. If the controller is needed to be used as a mouse, download a program called ControlMK, available here & in the Downloads page (this programs allows computer controller buttons & joysticks to have keyboard buttons assigned to them, as well as giving designated joysticks the functionality of a mouse).
The same thing can be achieved with an other program called Joy2Key, available here & in the Downloads page.
If the XBox live headset device is needed on the computer as a computer headset, download a driver called XBAudio, available here or in the Downloads page.
If XBox memory cards are needed to work on a computer as external flash memory, download a driver called XBMem, available here or in the Downloads page.
But what about the installation? Remember the USB hub installation? This is because the computer detects the memory card slots of the XBox controller as a two-port USB 1.1 hub! Keep reading for more modifications.
Part 2: XBox Controller To USB Hub
1. Take not of the pin-outs for a USB connector & an XBox memory card connector. The pin-out diagram is shown below:
2. Turn the controller upside-down. Then, using a Phillips screw driver, remove the seven black screws from the back of the controller & remove the front shell.
3. Now that the controller is open, search for six galvanised screws (they look like gold screws) that are holding the circuit board to the rear shell. Then, remove the six screws using the Phillips screw driver.
4. Look near the bottom of the two hand-rests of the controller. There are stepper motors in the hand-rests, which are plugged into the circuit board. Unplug the stepper motors from the circuit board (each stepper motor spins a little chunk of metal called a ballast, which in turn causes the controller to vibrate or "rumble").
5. Take hold the rear shell & circuit board as if it were completely assembled. Then, instead of squeezing the trigger buttons, gently press the back sides of the triggers. If done with enough pressure, the circuit board will be removed from the rear shell of the controller. Afterwards, remove the plastic shield that protects the memory card slots.
6. Use a file to widen the holes of the memory card connector shield. Widen the holes to that the female USB connectors can fit through them.
7. Look at the plastic parts of the XBox memory card & notice that they are clipped together through the circuit board (these clips are at the left & right sides of the connectors & look like plastic flat-head screws). Use side cutters to cut off these plastic clips & gently lift the connectors up & away from the circuit board. This will give direct access to the solder connections of the memory card slots.
8. Use a soldering iron to remove the XBox memory card connectors from the circuit board. BE CAREFUL TO NOT APPLY HEAT ON THE SAME SPOT OF THE BOARD FOR A LONG TIME, or else the "wires" on the board (known as copper traces) will be ripped off of the board & break!!! That isn't a good thing since the USB connectors need these traces to stay on the board & work. Let the board cool down for 15-20 seconds after heating each pin for about 20-25 seconds. Once the connectors has been removed, let the board cool down for 30 seconds. WARNING: the pins of the memory card connectors are extremely small & tightly packed together, so expect some degree of difficulty.
9. Align the pins of the female USB connectors to the proper holed on the circuit board (according to the pin-outs) & insert them into the board. Remember that the connectors have to be plugged into the board so that they aren't upside-down if the controller is held right-side up. So, note that the controller is right-side up when the trigger buttons are resting on top of the workbench. Also, remember that the connectors are protected by the memory card connector shield that was filed. So, once the USB connectors have been plugged into the holes, bend them towards the circuit board & pull them outwards so that they extend from the plastic shield by about 5 mm.
10. Solder each USB connector onto the circuit board. The same dangers & warnings in steps 8 & 9 apply to this step. Then, slide the plastic shield onto the circuit board. If the shield doesn't fit, it is because the USB connectors aren't aligned to fit into the holes of the shield. So, take the shield off & bend the USB connectors on the board until they are aligned with the shield's holes & put it back on.
11. Put the circuit board back into the rear shell of the controller & plug the stepper motors back into the board.
12. Take four of the six galvanised screws & screw them back into the circuit board with the Phillips screw driver. Note that there used to be two screws on either side of the USB connectors; since the screws will not hold on that part of the board anymore, it is pointless to put screws in there. That is why only four screws are used instead of six. The two extra screws can be save for something else or thrown away.
13. Close the controller with the front shell & turn it upside-down. Then, screw the seven black screws into the rear shell. Once the controller has been closed, test it on the computer. Firstly, test all the normal controller functions; go to the Control Panel in Windows, double-click the "Game Controllers" icon, select "XBCD XBox Gamepad" in the new window & click the "Properties" button to do so. If the controller functions work properly, close the Game Controller & Control Panel windows & plug a USB device into the controller. If this modification was done properly, the USB device would be detected by the computer, installed & start to work as normal.
If the USB device is only USB 1.1 compliant, there will be no warnings. If the device is USB 2.0 compliant, an icon in the system tray (beside the clock) will appear & warn of slower operation speeds. But that's alright since the speed of the device doesn't really affect anything else other than speed (i.e.: USB 2.0 memory card will not go corrupt if it is plugged into the controller & used as normal).