loading

How to build a USB cable for the Universal PCB

Picture of How to build a USB cable for the Universal PCB
The Universal PCB (UPCB for short) project was started to allow a single game controller, especially fighting sticks, on as many different consoles as possible. Information about the project can be found on the following thread in the Shoryuken.com forums: Shoryuken.com

This Instructable will cover how to build a Button Select USB cable for the UPCB. The Button Select USB cable is probably the most important cable you can use with the UPCB; in one cable, it allows you to play your controller on both PC's and Playstation 3 systems. It also allows you to use the USB Bootloader so you can upgrade your UPCB firmware when new versions come available.

The process of building this cable is identical to building any UPCB console cable, so there will be a lot of blatant cut and pasting from the original console cable Instructable. Since every UPCB owner should have one, it was felt the Button Select USB cable deserved its own Instructable.
 
Remove these adsRemove these ads by Signing Up

Step 1: Check .H file for cable information.

Picture of Check .H file for cable information.
The main, and most current, archive for the UPCB project can be found in the first post of the UPCB thread on Shoryuken.com: Shoryuken.com

Download the latest version, and extract the .zip somewhere easy to reach. Inside the main directory is the source code for the UPCB project.

Each supported console system will have a separate .H and .C file for that module. The .C file contains the actual routines for that system. These will not be of help unless you just want to see how it works. The .H file contains a large amount of comments which detail how that system communicates, what type of connector it uses, and pinouts. The current section in the USBTEMPLATE.H file we will be listed below.

The main information we need right now is that there are no components needed. If any were, they'd be listed in the 'How to create a UPCB cable' section.

We'll be referencing this set of information frequently during the building of the cable, so don't be afraid if it seems a bit much. The comments describe the communication in great detail and can seem a bit confusing. Just ignore then as we focus on building the cable.

       USB Pinout	(Looking at the end of a USB cable that plugs into a PC or other USB port)	___________	| 4 3 2 1 |	| _ _ _ _ |	-----------    <- thicker half of cable where the contacts are.		Pin		Description	1		VCC	2		D-		3		D+	4		GND		To Make a UPCB cable for Button Select USB	D-Sub 15 Pin		USB Pin	1					4 (GND)	2					High	3					Low	4					Low	5					Low	6					Low	7					Low	8					1 (VCC)	9					NC - Not connected to anything	10					High	11					High	12					NC - Not connected to anything	13					2 (D-)	14					3 (D+)	15					Low

Step 2: Gather Tools and Parts

Picture of Gather Tools and Parts
DSC02421.JPG
DSC02433.JPG
The tools required here are only the most basic of soldering tools.
- Soldering iron
- Solder
- Multimeter or Continuity tester

Other items can certainly help with soldering, but are almost never required for building a cable such as this:
- Flux
- Desolder pump or copper braid
- 'Helping Hands'

The parts we need are extremely simple
- Sacrificial USB cable. It doesn't matter what it was in another life, only that it has a flat 'A' end. This can easily be scavenged from old USB peripherals such as mice and keyboards. If you manage to find a long USB 'A' to 'A' cable, you can cut it in have and use them to create two UPCB cables. Otherwise, cut the cable as far from the 'A' end as you can to give us the most amount of cable to work with.
- DB-15 male plug with solder cup connectors. Digikey Part No. 215ME-ND , or available at any good electronics store. The chance of it being a good electronics store is directly, inversely, proportional to the number of HDTV's they sell. This is one of the few electronics parts that you can still find at some Radio Shacks.
- DB-15 Hood. The one used in the pictures here is Digikey Part No. 972-15SY-ND , but there are tons of D-Sub hoods made. You can also find these for cheap in most good electronics stores. I highly recommend that whatever hood you get, make sure to get thumbscrews to go with.
- Wire. The wire used here is 30 AWG Kynar wire, available from Fry's. Just about any kind of wire can be used, but using a very small guage will make things much easier.

Components other than these are needed for some consoles, however they are the exception, not the rule. As of this writing, the only systems that require anything more than wire are the FM-Towns system (detailed in neogeo.h) and the 3DO system (detailed in 3do.h)

Step 3: Prep the Plug with Solder

Picture of Prep the Plug with Solder
All of the pins except one, pin 9, will have wires soldered to them. Since we only have two hands, it is easiest to fill the empty points with solder first, and then add the needed wires.

Step 4: Jumper the 'System Select' wires

Picture of Jumper the 'System Select' wires
Every UPCB cable will have the main power (VCC) going into pin 8, and the main ground (GND) going into pin 1. There will also be a number of pins tied high or low (connected to VCC or GND) to tell the UPCB what system we are communicating with. These pins are the ones called High or Low in the 'How to make a UPCB cable' description in the console's .H file. Let's look at the one for the Button Select USB cable, in USBTEMPLATE.H

	To Make a UPCB cable for Button Select USB	D-Sub 15 Pin		USB Pin	1					4 (GND)	2					High	3					Low	4					Low	5					Low	6					Low	7					Low	8					1 (VCC)	9					NC - Not connected to anything	10					High	11					High	12					NC - Not connected to anything	13					2 (D-)	14					3 (D+)	15					Low

Before we start adding the system's cable, it is much easier to go ahead and take care of the system select lines now, without the massive console cable in the way. The only pins that say Low are pins 3-7 and 15. We are going to connect all of these so that they are electricly connected to what will be GND, pin 1. The only pins that say High are 10, 11, and 2. We are going to connect all of these so that they are electricly connected to what will be VCC, pin 8.

To do this, we are going to daisy chain a wire from one pin to the next. Using small (< 1") pieces of 30 guage wire with the ends stripped, this becomes rather easy compared to larger wires. In the picture you will see the first part of this, showing a wire going from pin 8 (VCC) to pin 11, then pin 10, then pin 2. Three small pieces of wire and all of the pins that are High have been connected.

Next, we'll do the Lows. With another short piece of 30 guage wire, connect pin 1 (GND) to pin 3 (low). Follow up with additional wire connecting pin 3 to pin 4, pin 4 to pin 5, pin 5 to pin 6, pin 6 to pin 7, and lastly one more wire connecting pin 7 to pin 15.

Now all of the pins that should be tied High or Low are connected to either GND (pin 1) for low, or VCC (pin 8) for high.

Step 5: Testing Part 1

Picture of Testing Part 1
No matter how good you are, or how certain your work, you always want to test early and often. If there are any failures in the soldering, it is much easier to correct now, before the large cable is in our way.

We will be doing continuity tests. If you're multimeter doesnt have a function for checking continuity, set it for checking resistances at its lowest setting. Just remember that infinite resistance means no connection, and almost no resistance means connected.

First, check the lines ties Low. For our Button Select USB example, that would be pins 3-7 and 15. Place one probe on pin 1 (GND). Take the other probe and check pins 3-7 in order. Each one should show almost no resistance to pin 1. Check the last Low pin, 15. All of the pins tested should be connected to pin 1, and show almost no resistance.

Repeat for the High lines. For our Button Select USB example, that would be pins 10, 11, and 2. Place one probe tip on pin 8 (VCC), and check the continuity with pins 10, 11, and 2. Each should show almost no resistance.


Lastly, check for shorts. Place one probe on pin 1, and the other on pin 8. There should be NO continuity. Infinite resistance. If these two lines are electrically connected, there is a short somewhere in your work. You MUST fix these before ever trying to use the cable. Using a shorted cable on a console may blow fuses, may cause fires, may fry your console and stick. It's bad, so fix it NOW.

If everything test correct, let's start work on the console cable.

Step 6: Pinout the Console Cable

Picture of Pinout the Console Cable
Now we need to find out what wires in the console cable do what. Once again, we need information about the console cable from the appropriate .H file.

	USB Pinout	(Looking at the end of a USB cable that plugs into a PC or other USB port)	___________	| 4 3 2 1 |	| _ _ _ _ |	-----------    <- thicker half of cable where the contacts are.		Pin		Description	1		VCC	2		D-		3		D+	4		GND

If you are using an extension cable, cut the extra connector off as far from the end that plugs into the console as possible. If you are using a sacrifice controller, cut the cable as close to the game pad as possible. In either case, we can as much cable length as we can get.

Remove some cable insulation from the now-exposed end. DO NOT REMOVE TOO MUCH. You want to remove about 1" of cable insulation; enough to make sure you can solder any of the wires to any of the DB-15 pins, and leave the wires short enough that the pull-stop on the D-Sub hood is grabbing onto the thick cable insulation.

We are looking for the individual wires that make up the cable, so we can identify what each does. In our Button Select USB example, there are only four wires.

Each wire should be a different color. We cannot trust the wire's color to tell us anything for certain about their function, even between otherwise identical pads. Technically, all USB devices *should* use the required colors of white, black, red, and green, but it is easy to find cheap make USB cables that do NOT conform to the standard, so we MUST test them against the pinout in the .H file. For this, we need a multimeter/continuity tester.

For each wire in your cable, you need to know which pin on the console connector it goes to. The USB connectors are protected by a metal shroud, so reaching them with a multimeter probe may be a little difficult. If you can't get the probe in to touch the pins, you can use a small piece of metal like a paper clip. Touch the paper clip against the probe tip and hold it there with your thumb. Touch the end of the paper clip to the pin inside the USB shroud. When the other probe touches the correct wire on the other end of the cable, the resistance will drop to almost nothing. Write down your results of which pin is which color.

Now that we know what color wire goes to what pin, we can begin connecting them to the UPCB plug.

Step 7: Connect Console Cable to plug

Picture of Connect Console Cable to plug
The results of our last test should tell us which color wire has which function. For the cable I used, the end results were:
1 - Red - VCC
2 - White - D-
3 - Green - D+
4 - Yellow - GND

My cable was cheap, so didn't match the 'standard' USB colors. This is why you should check EVERY cable with a multimeter. It's better than frying your PC or PS3.

Now we just to to see which pin on the DB-15 each one goes to. Again, that information is in the .H file. For brevity's sake, I've remove the ones we tied High and Low in the earlier steps.

	D-Sub 15 Pin		USB Pin	1					4 (GND)	8					1 (VCC)	13					2 (D-)	14					3 (D+)

So now we know where each wire goes.:

D-Sub Pin Color
1 Yellow
8 Red
13 White
14 Green

Only 4 more connections to solder. For each wire in the cable, strip a very small amount of insulation off of the end to expose the bare metal wire, and solder it into the proper D-Sub pin.

In the case of VCC and GND (D-Sub pins 8 and 1), there is already a small piece of wire in there. That's why you should use thin wire. Melting the solder and inserting the new wire should not dislodge the existing wire. If you need to hold them steady in the port while the solder cools, a pair of fine tipped needle nose pliers does the job very well. This is also why you want to daisy chain the system select wires; trying to keep 3 or more wires inside the port while the solder cools can be very frustrating.

Step 8: Testing Part 2

Picture of Testing Part 2
Now let's check all of the solder connections, as well as the wire inside the cable.

For each pin in the console plug, use a multimeter/continuity tester to check each wire and solder joint. One probe should be on the console plug end, while the other should be on the male pin of the D-Sub plug. Make sure they all work with almost no resistance between the two.

Next, re-check the system select pins. Keep one probe touching the VCC pin on the console plug, and use to other to test all of the pins that should be tied high. Make sure they all show almost no resistance. Move the probe to the GND pin on the console plug, and use the other probe to test each D-Sub pin that should be tied low.

Lastly, the dangerous short test. With one probe on the GND pin of the console plug, and the other probe on the VCC pin of the console plug, check the resistance. If the resistance is infinite, everything is good. If there is low resistance, you have a dangerous short and need to check and redo your soldering.

Once you have made sure there are no errors in your soldering, it is time to assemble the hood.

Step 9: Assemble Hood

Each hood is assembled differently, so I can't give specific instructions for every hood. I will describe the steps needed in general that should apply to every hood, and then step-by-step the assembly of the specific hood I used in this example.

The most important part of assembling the hood is to understand and use the 'pull-stop'. Every hood should have a method of holding on to the cable. You do not want to use this to hold onto the individual wires because they cannot take much strain without possibly being pulled out. The pull-stop on your hood is made to grab the actual cable where it is strongest, with all of the wires together and covered in strong insulation. In the case of any force pulling on the cable, the force is transfered to the hood and the DB-15 plug, instead of the weak solder points connecting the cable to the plug.

Most pull-stops use two small bolts and two small pieces of metal. The bolts are used to tighten the metal clamps around the cable. Once the clamps are on securely, they are placed in an area of the hood that prevents them from moving. This method seems to be the most common, and so I have picture of them below.

When securing the cable in the pull-stop, it is very important that it is secure! This is the single most important part of keeping the cable long lasting and useful. If the clamps trying to hold onto the cable seem too large to grip, please start wrapping the cable with electrical tape the make it thicker and easier for the clamps to grasp. If there is a pull-stop gasket on the controller you took the cable from, check to see if you can use it as well for the clamps to grab onto.

If the pull-stop is not securely holding onto the cable, the thin wires inside will break over time, come loose, short against other wires, fry your entertainment center, cause fires, and kill your cat. Do it right the first time.

The assembly of all of the hoods I have seen is fairly similar:
1. Place the DB plug into the little tabs that will hold it in place.
2. Place the pull-stop clamps on the wire and secure, and close as possible to where the pull-stops will be permanently at.
3. Put the pull-stop in its place and double check the clamps are on tight.
4. Place the mounting hardware such as thumbscrews in place.
5. Close the hood. Usually this means a couple of bolts, but the example hood here is a snap enclosure.

We will follow these steps exactly with our example hood.
1. Place the DB plug into the holding tabs.
2. Place the black pull-stop clamp over the wire, making sure it is gripping the insulated cable and not wires.
3. Add the securing metal piece and screw down tight.
4. Add thumbscrews
5. Close the hood.

Step 10: Testing Part 3

Picture of Testing Part 3
After all of that work, I know you are itching to plug the cable into your console and stick and get some gaming in. I understand. Don't. Setting everything into the hood could easily have knocked a wire loose, and shorts are bad. Let's take a moment with the multimeter to make sure everything is safe one last time before we plug it in.

The steps we take here are identical to 'Testing Part 2':

For each pin in the console plug, use a multimeter/continuity tester to check each wire and solder joint. One probe should be on the console plug end, while the other should be on the male pin of the D-Sub plug. Make sure they all work with almost no resistance between the two.

Next, re-check the system select pins. Keep one probe touching the VCC pin on the console plug, and use to other to test all of the pins that should be tied high. Make sure they all show almost no resistance. Move the probe to the GND pin on the console plug, and use the other probe to test each D-Sub pin that should be tied low.

Lastly, the dangerous short test. With one probe on the GND pin of the console plug, and the other probe on the VCC pin of the console plug, check the resistance. If the resistance is infinite, everything is good. If there is low resistance, you have a dangerous short and need to check and redo your soldering.

Step 11: Play!

Picture of Play!
Now plug your new UPCB cable into your stick and console, and let's see it work! If you plug it into your PC for the first time, you may see a couple of familiar 'New Hardware Found' windows that will take care of themselves. Just leave it be and it will be recognized as a HID compliant game controller. You can use the Gaming Options applet in the Control Panel to see the device itself, and the status of the buttons and stick.

Enjoy!
gan0076 years ago
i tried your cable design and connected my old 15 pin joystick to the cable.
1) connected via usb to pc
2) Configured the setting in Control panel in game console option
3) while selected the details like mine which as(4 button, pov,and throttle).
4) it says device not connected.

What can i do to work my old joystick.
Cubie2 gan0076 years ago
Hey!!! thats what I am trying to do!!! gan007! :P
jasonjohn898 years ago
wow very nice its game port right ?... works for joystick? issit possible to make this for micro genius gamepad?
Toodles (author)  jasonjohn898 years ago
I am not sure I understand what you are asking. This is not a converter, this is simply a cable. The Universal PCB sits inside an arcade stick. The buttons and stick are wired to the UPCB, and the UPCB has a D-Sub 15 connector on the back. Depending on what cable you attach to that D-Sub 15 connector, you can use the stick and buttons on most consoles, like the Super Nintendo Entertainment System, Sega Saturn, Playstation 3, and others. The cable described here is for using your arcade stick on a computer or Playstation 3. Read the linked to the Shoryuken.com forms on the first page of this Instructable, and the other Instructables about the UPCB. That should explain things pretty well.