JacKeTUs / linux-steering-wheels

Project to track Linux steering wheels support
11 stars 1 forks source link

VRS DirectForce Pro #4

Closed JacKeTUs closed 1 month ago

JacKeTUs commented 1 month ago

One post on Reddit is telling that, besides VRS DirectForce Pro follows with USB HID spec, wheelbase is not working. May be a7 descriptor issue, may be duration issue.

https://www.reddit.com/r/linux_gaming/comments/15keqlq/anyone_tried_asetek_simsports_wheelbase_on_linux/

JacKeTUs commented 1 month ago
  1. the Set Effect Report (Usage 0x21) does not contain a Start Delay (Usage 0xA7) and Linux requires this usage. Presume setting to zero if no Start Delay is required would be sufficient.
  2. the Set Condition Report (Usage 0x5F) does not contain a Parameter Block Offset (Usage 0x23) and Linux requires this usage to be defined.
  3. in the PID Device Control (Usage 0x96) logical collection, Linux expects the Logical Minimum to be 1, but VRS DFP specifies 0.

Source: https://www.reddit.com/r/linux_gaming/comments/15keqlq/comment/l4e3ecc/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button

JacKeTUs commented 1 month ago
  1. 0xA7 (Start delay) is absent on most current DD wheelbases (Simagic with fw up to 159, Cammus, Simucube prior to 1.0.49 firmware), and it can be easily patched
  2. Parameter Block Offset (Usage 0x23) in Set Condition Report (0x5F) used for telling the device what Axis needs to be affected (https://usb.org/sites/default/files/hut1_5.pdf#section.18.1). It's not mandatory by PID standard, and i think condition like "if it not defined, then it will be 0" will be applicable here.
  3. Neither PID specification nor USB specification clearly states what logical minimum should be in PID device control (https://usb.org/sites/default/files/hut1_5.pdf#section.18.14). Driver can fixup the descriptor of the device, just flip 0 -> 1 there, or set enforce_min parameter to 0 here (https://elixir.bootlin.com/linux/latest/source/drivers/hid/usbhid/hid-pidff.c#L935).
JacKeTUs commented 1 month ago

It seems to me that PIDFF shoud be patched for adding compatibility for these devices

JacKeTUs commented 1 month ago

Okay, i started another repo with fixed pidff specific for VRS base here

JacKeTUs commented 1 month ago

If anybody wanted to test it, please use https://github.com/JacKeTUs/vrs-ff driver for testing

JacKeTUs commented 1 month ago

Wheelbase works with patches