How to Piggyback an Xbox360 controller on a Universal PCB by Toodles
DSC03054.JPG.web.jpg
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

Due to the security measures Microsoft has put in place on all Xbox360 controllers, it is not currently possible to have the UPCB natively speak with the Xbox360. So, in order to play your stick on an Xbxo360, we need to connect the Xbox360 controller to our controller.

This Instructable will guide you through the process of preparing a common ground Xbox360 controller to be piggybacked on a UPCB.

Before beginning on this path, please take some time to verify the controller works on your computer! Nothing is more heartbreaking than finding out the controller is dead AFTER you've put all of this work into it. Once you've tested everything and seen the buttons work on your computer, then can you safely get started.
 
Remove these adsRemove these ads by Signing Up

Step 1: Understand how the controllers work

hydrogen.jpg
Before we get into the actual instructions, I want to take a moment to explain a bit of theory. I feel its best that if you understand how things work, you'll be better suited for building and troubleshooting those things. So before we get into how to make a piggyback PCB, I want to take a moment to explain how and why it works; we're gonna get a little electrical. Those of you who already have a decent understanding may want to correct some points like about electron holes; there is no need. The explanations given here are meant to be simple, and meant to apply to single power supply digital electronics, like video game console controller.

Other great guides to help you understand this stuff:
http://www.gamesx.com/misctech/controltech.htm
http://www.gamesx.com/controldata/controlprimer2.htm

Don't get scared, but we need to cover something quick before we just into how this all affects you: 'voltage'. You've heard it, and may not be sure what it means. That's fine. It's just a build up of electricity, a bunch of electrons under pressure, ready to shoot out if it just had someplace to go. Someplace less crowded with electrons. High voltage: lots of electrons under lots of pressure. Low voltage, not so much. If you put the two together, those electrons from the High voltage will shoot out and intermingle with the Low voltage point, until they are all at the same pressure on both sides. Once they've evened out the pressure, there's nowhere else to go. Since they are at the same pressure, they are at the same voltage.

By itself, you can't tell how much pressure a spot it under; you have to have another spot to compare it to. That's why a voltmeter has two probes on it; one to test a point, and the other to say 'compare it to this spot'.

You've probably heard the term 'ground' before in dealing with sticks, but you may not understand what it really means. Ground is just an easy way of saying 'low voltage' or '0 volt reference point'. We're all familiar with 9 volt batteries, and how one end has the plus sign, and the other has a minus sign. If the positive side has 9 volts, what's it comparing it to? The minus side, a.k.a. Ground.

If you've looked up the pinouts of your favorite console controller online, you've probably seen one line with a certain voltage on it (+3.4 volts on Sony controllers, +5 volts on just about everything else. ) and another line marked Ground. So plugging in a controller to your console is just like plugging in a 5 volt battery to your controller, with Ground going to the minus side of the battery.

In everything we're going to do in this Instructable, when we talk about voltage, we are going to compare it to Ground. A low voltage is one really close to ground. A high voltage is one higher than ground.

We've all heard about how digital stuff is all 1's or 0's, even if we didn't really understand it. The idea is, when we check something, we're checking its voltage. It's either going to under a whole lot of pressure, or under almost no pressure. That's it. That's all we care about. We check that voltage, and we get our answer. High, or low.

The chips on your controller PCB, including the Universal PCB, have one wire for each switch in your controller: up, down, start, and every other direction and button you have. If it sees that line has High pressure, it knows that button has not been pressed. If it sees that line has low pressure, it know the button has been pressed.

But how does each line get high or low? We know that there is high pressure at the plus side of our battery. We know there is low pressure at the minus side, or ground, of our battery. So all we have to do is have the line connected to high when the button is not pressed, and have it connected to ground when the button is pressed. The line to the PCB is made high because its connected to the plus side of the battery with the resistor. When the button is pressed (closed), all of those high pressure electrons see a place to go, and shoot out to the ground connection. Because all of the pressure on the line is no longer there, the chip sees a low pressure and knows you pressed the button. Because we can connect that same ground to all of the switches, this setup is referred to as a 'common ground', because all switches has one line in common: ground.

This is how most controller PCB's work to see what you've pressed. The nice thing is we can check a line in multiple places. Checking the pressure on the line doesn't change the pressure on the line, so we can have different chips checking them all at once. As long as the PCB's all use a common ground (so it knows that high means not pressed, and low means pressed), we can have bunches and bunches of them all checking the line at the same time and working just fine.

Most chips will act funny if they aren't powered. They'll actually try and take power from any pins that have a high pressure on them. Since they're taking the power, the pressure on that line drops, and the other PCB will think you've pressed the button, even though you haven't. This is why making sure all of your PCB's are powered is important.

So, a quick recap:
1. Both PCB's must to powered, otherwise neither will operate.
2. Both the UPCB and the Piggybacked controller can check the pressure on a line at the same time with no problems.

So, all we gonna do is connect up the lines for the power, and the lines for each of the switches, and we're done. In the next step, we'll go over exactly where those lines are.
zomfibame says: Nov 7, 2008. 7:00 PM
alex-sharetskiy; If I understand correctly, The "point" is to hook a ribbon of wires to the PCB of an x-box 360 controller, so that you can then hard-wire any style and/or make of joystick/control into the Xbox360.... in order to trick the Xbox into "thinking" that it does not have an unlicensed, home brewed joystick (that Bill Gates didn't make royalties off of) plugged into it. and as a result you can have a controller that fits the game your playing, and your own personal ergonomics. then again, I could be completely confused, and misunderstanding the whole instructable. ;-)
Sandisk1duo says: Oct 2, 2008. 5:28 PM
what's the point of doing this?
Toodles (author) says: Oct 23, 2008. 9:48 PM
"Due to the security measures Microsoft has put in place on all Xbox360 controllers, it is not currently possible to have the UPCB natively speak with the Xbox360. So, in order to play your stick on an Xbxo360, we need to connect the Xbox360 controller to our controller." We want to use an arcade stick on multiple different systems, so I made the UPCB. Microsoft uses heavy authentication that requires a licensed controller, so I made a way to connect one to the UPCB. This Instructable tells you how to connect it.
Pro

Get More Out of Instructables

Already have an Account?

close

PDF Downloads
As a Pro member, you will gain access to download any Instructable in the PDF format. You also have the ability to customize your PDF download.

Upgrade to Pro today!