PS2 Dualshock Controller pinouts and signals

Started by stuart_jennings1, June 28, 2005, 06:08:03 PM

Previous topic - Next topic

stuart_jennings1

Hi,

I'm a newbie to this forum,  so I apologise if the information I'm requesting has been posted somewhere and I just haven't found it.

First, let me explain a little about the project I'm planning. I'm going to try and modify a wireless PS2 controller to incorporate all the extra functionality and buttons found in XBOX and Gamecube controllers and then create a decoder adapter, which the wireless controller plugs into, that will then plug into all three consoles and also into a PC simultaneously so that the same controller can be used regardless of console being played and without having to plug the controller into a different console. In this way, the console that is switched on will be the one using the controller.

My problem is this: I'm trying to find the signal and pinout information for PS2 dualshock controllers (including rumble motor info) but can't seem to find a document anywhere that gives me this information. I've found the PSX Controller document on the gamesx web site but nothing about PS2 controllers. I've found snippets of information that people have posted as replies but nothing specific and have spent hours searching in Google to no avail.

If anyone knows where I can find a document (preferably like the one on PSX Controllers on gamesx) with this information, please could you let me know. I could find out the hard way, by analyzing a controller myself, but if someone else has already done the work, I would prefer not to have to reinvent the wheel. ;)

Many thanks in advance,

Stuart.
Time is an illusion... lunchtime, doubly so.[/b][/i][/font]

Adeptus

Step 1: Get a PS2-to-whatever adaptor (check it works with wireless controllers, some don't apparently)
Step 2: Plug in
Step 3: Play

OK, not what you wanted... how about this...
As far as I know, PS2 controllers are the same as PS1 analog/dualshock controllers.
So, all info re the PSX controllers applies to PS2 as well.

If you want to have it plugged in to everything at once, try making a kind of 'reverse multitap' ie one socket, multiple plugs. Then plug into each of the specific console adaptors.

I seriously doubt you will be able to mod it to 'incorporate extra functionality'...

stuart_jennings1

I figured there wouldn't be any appreciable difference between the PSX and PS2 analogue controllers, but the document I referred to on www.gamesx.com seems to list all the signals for the buttons as single-bit, and I was under the impression that the buttons on the PS2 analogue controllers were pressure sensitive. This information I also got from the gamesx website.

I agree, the simplest way would probably be to use a "reverse multi-tap" with the different PS2-to-other adapters but sometimes these challenges are more for the fun of doing it than to do whats easiest. ;)

Thanks for responding, though - any information is useful at this point. I don't want to get started with the actual work and find I've missed something useful.

Regards,

Stuart.  
Time is an illusion... lunchtime, doubly so.[/b][/i][/font]

Aidan

My understanding is that the PS2 protocol is slightly different to that of the PSX in order to support the analog buttons. However, the PS2 pads are also backwards compatible, so talking to them with the PSX protocol will get you PSX protocols back. Based on a little bit of guestimation, you'll probably find that the PS2 protocol follows the same model as the PSX protocol, but with slightly different commands/responses.

That's all nice to know, but if you're trying to add funtionality that's not there, you're going to have to totally re-engineer the PS2 pad's microcontroller anyhow. At this point, you're pretty much starting from scratch, so you can use anything you like.

For the XBox stuff, I'd recommend looking into microcontrollers that can handle USB. The Gamecube uses a similar serial protocol that the N64 used, but extended it to handle the extra controls. Having said that, I'm not aware of any microcontrollers with two USB ports!
[ Not an authoritive source of information. ]

Adeptus

From what I understand, XBox is basically USB with a different plug. I believe you can use an XBox controller on PC with standard USB HID drivers, if you change the plug. So you don't need a micro with 2 USB ports, just wire the one port to both connectors.

Aidan

#5
My understanding was that the XBox controllers didn't use the standard HID drivers, but required a seperate driver to handle them; XBCD is one.
[ Not an authoritive source of information. ]

LUFBRA-TONY

Bytes 1 to 9 (except the ID byte) are the same as the PS1 controller. Bytes 10 to 21 are the analogue buttons.

10 → 0x00=Off 0xFF=On
11 ← 0x00=Off 0xFF=On
12 ↑ 0x00=Off 0xFF=On
13 ↓ 0x00=Off 0xFF=On
14 ∆ 0x00=Off 0xFF=On
15 O 0x00=Off 0xFF=On
16 X 0x00=Off 0xFF=On
17  0x00=Off 0xFF=On
18 L1 0x00=Off 0xFF=On
19 R1 0x00=Off 0xFF=On
20 L2 0x00=Off 0xFF=On
21 R2 0x00=Off 0xFF=On

ID byte is 0x79  

LUFBRA-TONY

#7
The rumble motors are controlled on the Command line on byte 4 for the RH motor and byte 5 for the LH motor.  0x00 =off, 0xFF=on

phreak97

the xbox controller IS standard usb with a different plug.. but it is not a standard hid controller.. so you will need xbox pad specific drivers.. these arent so hard to get though.

Aidan

QuoteBytes 1 to 9 (except the ID byte) are the same as the PS1 controller. Bytes 10 to 21 are the analogue buttons.
Excellent stuff! Was this a case of snooping the bus, or do you have other sources?
[ Not an authoritive source of information. ]

LUFBRA-TONY

Did have some info to start with, but ended up playing with some 74 logic including 22 x 74HC164 shift regisers linked in series and 8 LEDs to read out the results a byte at a time.  Was amazed when my circuit worked and gave me these results!

The problem is i was hoping to find out the protocol that puts the controller into analogue mode (when you switch the PS2 on it thinks for a minuite, checks what sort of controller is plugged into it and then locks the controller in analogue mode (red LED on)).  Finding this proved to be beyond my very limited electronics ability.  The plan was then to develop the PIC program i had to act as a fully functional PS2 DualShock Controller.

stuart_jennings1

This is fantastic! - thanks very much, Tony.
I'm buying the beers ;)  :D   :lol:  
Time is an illusion... lunchtime, doubly so.[/b][/i][/font]