Support for Thrustmaster T500RS
Created by: hoover67
First of all, thanks for your efforts in getting these wheels to work on Linux.
I'm trying to use the script to initialize my T500RS (right now I'm trying to get the pedals working correctly) and I have created the following file in tm_devices:
name = 'Thrustmaster T500RS'
idVendor = 0x044f
idProduct = [0xb65d]
control = [
{'step':1, 'request_type':0x41, 'request':83, 'value':0x0001, 'index':0x0000, 'data':b''},
{'step':2, 'request_type':0x41, 'request':83, 'value':0x0004, 'index':0x0000, 'data':b''},
]
jscal = '6,1,255,32767,32767,21844,21844,1,3,511,511,1394469,1394469,1,3,511,511,1394469,1394469,1,3,511,511,1394469,1394469,1,0,0,0,536870912,536870912,1,0,0,0,536870912,536870912'
dev_by_id = 'usb-Thrustmaster_Thrustmaster_FFB_Wheel-joystick'
It's basically a cut and paste from the thrustmaster_tx file, with the name, idProduct and dev_by_id fields changed to (hopefully) reflect the t500RS on my system (alongside HOTAS Warthog and two MFD frames):
$ lsusb -d 0x044f:
Bus 002 Device 007: ID 044f:b65d ThrustMaster, Inc. <<<--- this is the same product id as the TX
Bus 002 Device 010: ID 044f:b352 ThrustMaster, Inc.
Bus 002 Device 009: ID 044f:b351 ThrustMaster, Inc.
Bus 001 Device 004: ID 044f:0402 ThrustMaster, Inc.
Bus 001 Device 003: ID 044f:0404 ThrustMaster, Inc.
When I try to initialize the device however I'm getting the following error:
$ python tmdrv.py -d thrustmaster_t500rs
Traceback (most recent call last):
File "tmdrv.py", line 109, in <module>
initialize(args.device)
File "tmdrv.py", line 45, in initialize
m['data'],
File "tmdrv.py", line 77, in _control_init
idVendor, idProduct,
File "/usr/local/lib/python2.7/dist-packages/usb1/__init__.py", line 2298, in openByVendorIDAndProductID
return result.open()
File "/usr/local/lib/python2.7/dist-packages/usb1/__init__.py", line 2067, in open
mayRaiseUSBError(libusb1.libusb_open(self.device_p, byref(handle)))
File "/usr/local/lib/python2.7/dist-packages/usb1/__init__.py", line 133, in mayRaiseUSBError
__raiseUSBError(value)
File "/usr/local/lib/python2.7/dist-packages/usb1/__init__.py", line 125, in raiseUSBError
raise __STATUS_TO_EXCEPTION_DICT.get(value, __USBError)(value)
usb1.USBErrorAccess: LIBUSB_ERROR_ACCESS [-3]
I'm pretty new to all of this USB stuff, but have nearly 30 years of Unix / Linux experience so I'm not afraid of the shell... I'd love to help with getting this wheel to work on Linux if I may, but right now I'm a bit stuck as to what to do next.
evtest finds the device fine:
$ evtest /dev/input/event8
Input driver version is 1.0.1
Input device ID: bus 0x3 vendor 0x44f product 0xb65d version 0x100
Input device name: "Thrustmaster Thrustmaster FFB Wheel"
Supported events:
Event type 0 (EV_SYN)
Event type 1 (EV_KEY)
Event code 304 (BTN_SOUTH)
Event code 305 (BTN_EAST)
Event code 306 (BTN_C)
Event code 307 (BTN_NORTH)
Event code 308 (BTN_WEST)
Event code 309 (BTN_Z)
Event code 310 (BTN_TL)
Event code 311 (BTN_TR)
Event code 312 (BTN_TL2)
Event code 313 (BTN_TR2)
Event code 314 (BTN_SELECT)
Event code 315 (BTN_START)
Event code 316 (BTN_MODE)
Event type 3 (EV_ABS)
Event code 0 (ABS_X)
Value 2669
Min 0
Max 4095
Fuzz 15
Flat 255
Event code 1 (ABS_Y)
Value 128
Min 0
Max 255
Flat 15
Event code 2 (ABS_Z)
Value 128
Min 0
Max 255
Flat 15
Event code 5 (ABS_RZ)
Value 128
Min 0
Max 255
Flat 15
Event code 16 (ABS_HAT0X)
Value 0
Min -1
Max 1
Event code 17 (ABS_HAT0Y)
Value 0
Min -1
Max 1
Event type 4 (EV_MSC)
Event code 4 (MSC_SCAN)
Properties:
Thanks in advance for any ideas,
Uwe