SukkoPera / PsxNewLib

Playstation controller interface library for Arduino
GNU General Public License v3.0
133 stars 29 forks source link

Seeking compatibility with Steering Wheel Madcatz Dual Force #27

Open youenchene opened 1 year ago

youenchene commented 1 year ago

Context

I have build some OpenPSX2AmigaPadAdapter. It's working well with several official PS1 and PS2 joypads. Tx for the great work.

My point is to make work a Steering Wheel Madcatz Dual Force with my Amiga.

I looked OpenPSX2AmigaPadAdapter firmware, the pull request to make is obsviously in PsxNewLib.

Status

On psx.begin() we get a 0 / No Controller found.

I've noticed that on the plug :

I'll dig into several documentations in the next days (the one you linked at the end of README.md).

I would be delighted of you can share some hints to be able to accomplish this.

SukkoPera commented 1 year ago

If the 3V3 power pin is missing, it can only mean that the wheel either requires external power or takes 7.5V from pin 3, which OpenPSX2AmigaPadAdapter does not provide. It must draw power somewhere :).

In the latter case, you might try building the devel version of my PsxControllerShield project and use it with an Arduino powered at 9V through the barrel jack or just hack external power on the right pin of the OpenPSX2AmigaPadAdapter.

As for the protocol, the manual says that this wheel can function in three different modes: digital, analog or neGcon. All of them are already supported by PsxNewLib.

youenchene commented 1 year ago

The wheel got some battery for force effect but it can work without it (no force effect).

So I bet it use the pin3.

When you say the right pin, it's pin 3, ok?

I confirm for the 3 modes.

So next step would to do a test powering pin 3.

SukkoPera commented 1 year ago

Yep!

youenchene commented 1 year ago

Got pin 4 on ground and pin 3 +7,5 on a stabilized power :

Unknown Controller type found, using anyway Mouse -> Joystick Controller lost No controller found No controller found

(the no controller found is very slow, as before it was very quick)

LED1 : blinking very slowly.

Note that, I made a mistake on the first plug (reverting ground and power 7.5V) which make all button viewed as pressed. It may have damaged the card.

SukkoPera commented 1 year ago

If you plugged the wheel in with reversed power, the wheel might have been damaged, too.

youenchene commented 1 year ago

Wheel is not damaged. I played Gran turismo for 5mn without any issue.

OpenPSX is damaged.

It works well when FTDI cable is on (+5v power is plugged).

If not it's a mess with the buttons and directions on the amiga.

I guess this the tension regulator or the BSS138 transistor.

I clean up my mess and next step would be to add a extra power plug directly within the wheel.

And may be , may be not, I will be allowed to write some code after.

SukkoPera commented 1 year ago

You were lucky, OpenPSX is cheap and easy to fix :).

In theory you don't need to write any code, all the protocols the wheel speaks are already supported. But you might need to add a custom direction/button mapping so that every control goes where you want.