T300RS and others FFB Wheel Development

Talk about anything concerning the source code.
InhexSTER
Posts: 19
Joined: Wed Feb 26, 2014 5:56 pm

Re: T300RS and others FFB Wheel Development

Post by InhexSTER »

Yeah, I think so. Really hacked up code atm, so maybe a bit later.

Looking at FFB it a big challenge, and most likely impossible to match exactly.

Have you tried looking at T300RS from PC side? Using DirectInput i mean.
Cause otherwise I am not sure you can tell what are value in effect downloads mean.
Things like magnitude, period and so on.
On G27 it seems there are slots for type of effects, such a constant force.
It seems Heavy/Light vibrations both use same report(0x11)

#load weak rumble effect
31 03 04 40 ff ff 00 00 00 60 00 70

It might be helpful to look at DInput since for example , duration infinite in DI defined as 0xFFFFFFFF, and no trigger button for effect also 0xFFFFFFFF
so maybe that what those bytes are in load rumble effect reports
User avatar
Matlo
Posts: 5768
Joined: Wed Jul 06, 2011 7:01 am
Location: France
Contact:

Re: T300RS and others FFB Wheel Development

Post by Matlo »

The T300RS does not use the same protocol when connected to a PC.

The FFB protocol used by Logitech is available here: https://opensource.logitech.com/opensou ... nformation
GIMX creator
InhexSTER
Posts: 19
Joined: Wed Feb 26, 2014 5:56 pm

Re: T300RS and others FFB Wheel Development

Post by InhexSTER »

Ah, I've read it has a hardware switch for it, but hoped it didn't change FFB reports too much.
Thanks for the link.
InhexSTER
Posts: 19
Joined: Wed Feb 26, 2014 5:56 pm

Re: T300RS and others FFB Wheel Development

Post by InhexSTER »

So, in the end decided to get G29 Wheel for PS4 since I am planning to get most cross platform racing games for it.
From what I've seen online it also has a switch PS3/PS4 modes, however PC software (they finally updated it to use same one as mice/keyboards use) uses PS4 mode.
So hopefully since the functionality pretty much same as G27 I hope FFB can be mapped better.

Edit:

So after some initial testing, G29 on PS4 has identical Report Descriptor to T300RS, except the type is Joystick not Gamepad. All other values are same.
There are some other small differences in other descriptors.
So Ill be looking into creating firmware for it in next few days.
On PC even though switch is in PS4 mode, its detected as device with different PID, so I assume there is similar thing to G27 with different modes.

Looks like Out report is identical to protocol described in the link above, just connecting the wheel and testing different levels of vibration i captured
3 effects being loaded High Resolution Spring, High Resolution Damper and Variable force (vibration). That was using Driveclub. So I belive its going
to be possible to do 1:1 FFB mapping with G29/G27
User avatar
Matlo
Posts: 5768
Joined: Wed Jul 06, 2011 7:01 am
Location: France
Contact:

Re: T300RS and others FFB Wheel Development

Post by Matlo »

Do you have some USB capture files?
GIMX creator
InhexSTER
Posts: 19
Joined: Wed Feb 26, 2014 5:56 pm

Re: T300RS and others FFB Wheel Development

Post by InhexSTER »

I do, technically there is almost no difference between T300RS/G29 in term of descriptors and reports are identical.

I also have a shifter so I can find which bytes in report are for that and I'll let you know.

Now I've got full FFB and RPM LED's in Driverclub on my G27.

So basically on your side to add support for it, I will give you source for my decriptors
that's all you would need to make new FW

To add support, just relay all out reports from console to G27 as is, I ignore extended commands though,
since I do setup native mode for G27 from FW

Here are descriptor files, I belive .h file is identical
https://www.dropbox.com/s/vs72qvthaaiqv ... s.zip?dl=0

So if you could add native support for G27 in your tool that would be cool.
Essentially you just need to do same thing as you do with reports f1,f2 when you pass it to DS4
except using OUT Endpoint. Report structure described in Logitech's PDF.


Also let's see how many people would want a solution that doesn't require PC.

My custom FW uses these:
Arduino Leonardo with my FW
USB Host Shield attached to Arduino
USB Hub so I can plug in more then 1 device (Dualshock 4 is also needed)

So its around 50-60 $ solution that is plug and play. Though its limited to just 1:1 mapping of inputs
User avatar
Matlo
Posts: 5768
Joined: Wed Jul 06, 2011 7:01 am
Location: France
Contact:

Re: T300RS and others FFB Wheel Development

Post by Matlo »

Congrats for your achievement :)
Thanks for the descriptors. I'll try to add G27 support in GIMX.

EDIT: I made a diff of the descriptor files:

Code: Select all

diff -r G29/Descriptors.c T300RS/Descriptors.c
50c50
<     0x09, 0x04, //Usage (Gamepad)
---
>     0x09, 0x05, //Usage (Gamepad)
137c137
< 	.USBSpecification       = 0x0100,//1.00
---
> 	.USBSpecification       = 0x0110,//1.10
144,146c144,146
< 	.VendorID               = 0x046D,
< 	.ProductID              = 0xC260,
< 	.ReleaseNumber          = 0x8900,
---
> 	.VendorID               = 0x044F,
> 	.ProductID              = 0xB66D,
> 	.ReleaseNumber          = 0x0100,
174c174
< 			.MaxPowerConsumption    = USB_CONFIG_POWER_MA(200)
---
> 			.MaxPowerConsumption    = USB_CONFIG_POWER_MA(100)
242c242
< 	.Header                 = {.Size = USB_STRING_LEN(8), .Type = DTYPE_String},
---
> 	.Header                 = {.Size = USB_STRING_LEN(12), .Type = DTYPE_String},
244c244
< 	.UnicodeString          = L"Logitech"
---
> 	.UnicodeString          = L"Thrustmaster"
253c253
< 	.Header                 = {.Size = USB_STRING_LEN(30), .Type = DTYPE_String},
---
> 	.Header                 = {.Size = USB_STRING_LEN(29), .Type = DTYPE_String},
255c255
< 	.UnicodeString          = L"G29 Driving Force Racing Wheel"
---
> 	.UnicodeString          = L"Thrustmaster Racing Wheel FFB"
GIMX creator
User avatar
Matlo
Posts: 5768
Joined: Wed Jul 06, 2011 7:01 am
Location: France
Contact:

Re: T300RS and others FFB Wheel Development

Post by Matlo »

What about the format of the interrupt IN transfers?
Does the G29 use the same report format as the T300RS, or does it use its own report format?
In the latter case, could you please post the report format?
GIMX creator
InhexSTER
Posts: 19
Joined: Wed Feb 26, 2014 5:56 pm

Re: T300RS and others FFB Wheel Development

Post by InhexSTER »

Matlo wrote:What about the format of the interrupt IN transfers?
Does the G29 use the same report format as the T300RS, or does it use its own report format?
In the latter case, could you please post the report format?
It seems the format is identical for everything except the OUT report, I will do more tests tonight to figure out
shifter bytes, G27 shifter should be compatible with G29, it is most likely
bytes you have marked unused first 7 bits before PS in byte 8 of the report.

2 0xFF bytes after 2 brake pedal bytes are for a clutch, behaves same way as other 2 pedals
User avatar
Matlo
Posts: 5768
Joined: Wed Jul 06, 2011 7:01 am
Location: France
Contact:

Re: T300RS and others FFB Wheel Development

Post by Matlo »

Thanks for the tips!
I modified the EMUT300RSPS4 firmware, and got it to work in the UI.
I am not able to test it in Driveclub yet because it requires a huge 10GB update.
GIMX creator
Post Reply