Repairing a PlayStation controller to USB adaptor

Published April 20, 2013
Advertisement
I recently purchased an inexpensive PlayStation controller USB adaptor for my PC. Several reviews confirmed that it was compatible with the controller's analogue joysticks so I thought it would be what I was after. Life is rarely that easy with cheap electronics, unfortunately!


adaptor-product.jpg

When it arrived I plugged it in and Windows installed the appropriate HID drivers for it automatically, but as much as I waggled the joysticks on a connected DualShock 2 controller the axis preview in Control Panel remained resolutely in the zero position. PlayStation controllers have an "Analog" button that can be pressed to toggle between digital and analogue modes, but any attempts to press this resulted in the "Analog" light briefly flashing before immediately switching off again.

Thinking it may be a driver issue I tried to install the drivers from the mini CD that had been included with the adaptor. My PC could not read the disc (it appeared to be scratched, and was not very well protected in postage) so I hunted around online until I found a package that worked using the device's USB ID (VID_0810&PID_0001). This enabled the controller's rumble/vibration feature, but I still couldn't get analogue input to work. Thinking that if one driver package could add vibration support, another might add analogue support I contacted the Amazon seller to ask them if they could send me a copy of the correct drivers - they instead chose to send me a whole other unit in the post.

In the meantime, I experimented with another controller plugged into the adaptor. I was surprised to find that with two controllers plugged in at once I could enable analogue mode on one of the controllers. This made me think there could be a power issue - the second controller increased the capacitance across the power supply, which would make it more resilient to voltage spikes and reduce ripple that could be causing the controller to reset out of analogue mode. This was further confirmed by plugging the adaptor with a single controller into a powered USB hub - in this scenario the controller would only leave analogue mode when vibrating. I checked the power supply pins on the controller ports and was very surprised to see that there was apparently nothing connected to pin 5, which is supposed to deliver +5V to the controllers. At this point I decided to dismantle the adaptor to see what was going on.


adaptor-circuit-top.jpg

On the inside of the adaptor I could see that several components had been omitted. This could be to blame on cost-cutting measures (e.g. the LEDs D1 and D2 which are purely cosmetic) but the removal of D3 puzzled me the most - this diode is connected between USB VCC and the controller port pin 5, and is presumably responsible for providing power to the connected controller. I put this down to an oversight at the factory, and soldered a 1N4001 rectifier diode in the marked place.


diode-polarity.jpg

The above image shows a close-up of the place the missing diode should appear - D3 is indicated by a silk-screened diode symbol. Unsurprisingly the 1N4001 silicon diode has far superior characteristics to the silk-screen diode it replaced.


diode-soldered-in.jpg

With the diode in place both controller ports started working flawlessly, even allowing me to use a wireless Guitar Hero controller receiver (though not the whammy bar - Guitar Hero controllers lack the "Analog" button to manually enable the analogue mode and instead rely on the PlayStation to enable it via software). Whilst I had the soldering iron out I thought I should add the missing LEDs, once again using the existing markings to establish the correct polarity:


led-polarity.jpg

If the markings are unclear, the anode (+) is always to the left when viewing the bottom of the circuit board when the other markings are upright.


leds-bottom.jpg

As the enclosure is blue and I seem to remember some fuss being made of the PlayStation 2's blue LED when it first came out I opted to use two blue LEDs with 1K5 resistors. I do not have any surface-mount resistors but through-hole ones fit quite easily though they can be a little fiddly to solder down.

When the replacement adaptor arrived in the post I was surprised to see that (once again) the diode D3 was missing and it demonstrated the same problems as the other one I'd fixed. I find it unlikely that the same mistake could be made twice, so this seems to be a genuine cost-cutting measure. Microcontroller I/O pins often have an internal protection diode between them and the positive power supply, which is how I assume the circuit works at all when the controllers are left unpowered - a small amount of current flows from the I/O (data) pins to the positive rail via these protection diodes, which is just enough to let the controller work in digital mode but once they draw more current (e.g. when sampling analogue inputs or driving the vibration motors) the voltage droops far enough for the controller to reset and leave analogue mode.


adaptor-fixed.jpg

With these fixes in place I now have two working PlayStation USB adaptors for the price of one (and two 1N4001 diodes). I'm still rather perplexed by why there's such a blatent flaw in the hardware, but it is at least an easy fix which is why I've written it up. In summary: if your cheap PlayStation to USB adaptor ("Twin USB Vibration Gamepad", "Twin USB Joystick") is not working correctly, unscrew it and see if D3 is missing. If it is, solder a 1N4001 or similar diode between the two holes left for that purpose.
2 likes 11 comments

Comments

Bogdanas

Nice read, I have the same adapter, but my PSOne joystikcs are working fine in analog mode, through D3 is missing

April 28, 2013 02:58 PM
benryves
Thank you, and that's interesting information - I'm glad to hear yours works for you. Mine worked slightly better when plugged into a powered USB hub, so I guess they can be quite sensitive to voltage levels and particular controllers.
April 29, 2013 01:48 AM
fluxus42

im having the same problem(analog sticks not working) but on my adapter D3 looks to be populated...

(http://img703.imageshack.us/img703/3308/hio8.jpg) do you think replacing the diod at D3 my help?

the adapter is connected directly to the PC, tried USB2 and USB3 ports

August 05, 2013 07:52 PM
benryves
That's interesting, are you able to measure the voltage between ground and pin 5 of the PlayStation connectors to ensure that the controllers are powered? What happens if you press the "Analog" button on the controllers - does the LED blink at all? It's curious that they used a surface mount diode instead of a through-hole one, too, I'm not sure how good a connection that will have made.
August 05, 2013 08:53 PM
fluxus42

buttons(D-Pad and shoulder) are working, so controler has power.

Pressing the analog button shows no reaction(no flashing LED, no steady light) connected to a playstation 2 the controller is working fine(analog sticks working).

im currently looking for my multimeter, could take a day or two :D

p.s.: the rumble function is working, but left side feels sluggish.

August 06, 2013 04:25 PM
benryves
Digital I/O lines on microcontrollers often include protection diodes - here's an example from the ATmega168 datasheet:

avr-io.gif

If you don't connect the positive power supply pin but have a positive voltage on the data pin (Pxn in the above example) current will flow through the upper diode into the positive power supply rail and the microcontroller will switch on. However, this power supply is generally unreliable (if the data line goes low, as data lines are wont to do, the device loses power - not to mention data signals are not usually rated to the hundreds of milliamps a controller will need to run) and so only works accidentally (if at all) and can lead to strange behaviour - in the case of my adaptors there was no connection to the PS2 controller's power supply (pin 5) thanks to the missing diode but there was a connection to its data pins and the controller was therefore being powered via its data pins. Interestingly the rumble feature did also partially work, but the analogue feature didn't work at all, so it does sound somewhat similar to your issue.
August 06, 2013 04:40 PM
fluxus42

ah ok, i see.

i will try to tap into the connection when i found my multimeter and got back my breadboard

oh and thanks for your help :)

August 06, 2013 06:14 PM
fluxus42
found some time and my equipment, Pin 4 to 5 reads 4.46V, 4 to 3 = 5.12V.
i used this pinout=http://makezine.com/2008/06/09/playstation2-controller-i/
i also measured voltage at D3, its 0.65V when Analog button is up and 0.66 when its up. Analog LED shows no reaction.
August 09, 2013 06:35 PM
benryves
Sorry for not getting back to you sooner, but I'm not really sure what the problem could be! Have you tried with a different controller, or does it do the same with all of them?
August 16, 2013 10:19 PM
DeAdLyWaRrIoR07

I have this adapter but the circuit board looks way different than the image above. My PS1 controller (SCPH-110) won't work at all, but it used to work on the console. How can I fix this?

June 09, 2020 03:20 PM
DeAdLyWaRrIoR07

I have this adapter but the circuit board looks way different than the image above. My PS1 controller (SCPH-110) won't work at all, but it used to work on the console. How can I fix this?

June 09, 2020 03:22 PM
You must log in to join the conversation.
Don't have a GameDev.net account? Sign up!
Advertisement