Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fanatec csl dd + csl pedal support #42

Closed
ciscoyo opened this issue Oct 3, 2023 · 29 comments
Closed

fanatec csl dd + csl pedal support #42

ciscoyo opened this issue Oct 3, 2023 · 29 comments

Comments

@ciscoyo
Copy link

ciscoyo commented Oct 3, 2023

hi,
i've got the ready to race bundle csl dd + p1 v2 wheel + normal pedals.
i installed oversteer for testing and ffb seems to work, steering recognises and all buttons work. Great work so far!
(i wanted to test it ingame but raceroom doesen't even start and f1 23 crashes after i power on the wheel).

but the pedals are not working correct. noticed when pushed, late and only sometimes, but that's it. there is no constant screening of it.

i'm offering my help with it ofc. even a discord-call. i'm sure i can track the usb traffic with usbmon or something and share it. it's your call.
cheers

@ciscoyo ciscoyo changed the title fanatec csl dd + pedals support fanatec csl dd + pedal support Oct 3, 2023
@gotzl
Copy link
Owner

gotzl commented Oct 15, 2023

Hi,

could you check with evtest? Does a pedal push register also only sometimes/late?
Does this command /usr/bin/evdev-joystick --evdev $devnode --deadzone 0 --fuzz 0 change anything?

Also, what is the exact type of pedals you have? They are directly connected to the base, right? Do you have the option to plug them in via USB directly to the PC?

About your comment about F1 23: I think you should turn on the wheel before starting the game. In principle, the game should work. At least I could successfully play some days ago.... Edit: Ah, actually, it was F1 22 ... So no idea about F1 23 then ;)

@ZakMcKrack3n
Copy link
Contributor

@ciscoyo I got the same bundle , for me codemasters Dirt Rally 2.0 started crashing some time ago when in CSW 2.5 compatibility mode (orange led), but works fine in native mode (red LED on base power button).

Dirt Rally 2.0 also crashes when turning on the device mid game or switching into CSW 2.5 compatibility mode , where the native mode works fine, maybe you can test the different modes ? (switching is done by a short press of the power button after turning it on and its finished calibrating itself).

As I have the same pedals, are the pedals working in other games / windows ?
If you have no windows to test and this is your only set up:
Are the pedals connected to the correct port , otherwise funky things could occur if plugged in to hand brake port etc.

@dtran11
Copy link

dtran11 commented Oct 21, 2023

I am seeing the same problem with the pedals in Oversteer with a GT DD Pro. However I think it's just an issue with Oversteer because I see correct values with evtest.

By the way, is the GT DD Pro supported? I assume so because a lot is working but just didn't see it explicitly in the README. Maybe the internals are the same as a CSL DD?

0eb7:0020 Endor AG FANATEC Wheel

Thanks

@gotzl
Copy link
Owner

gotzl commented Oct 21, 2023

@dtran11 looks like the 'Pro' is just the torque update? As you show, the PID does not change from the non-Pro one. So, I would say it is 'supported' and I'll update the readme. (I put 'supported' in quotes because only the wheelbase is supported by this driver (FFB), while the wheel itself with its display and some of its buttons is not.)

@ZakMcKrack3n
Copy link
Contributor

@gotzl the "Pro" actually has the chip in the base to enable playstation support, it also has both 5/8Nm power supply options.

Probably works identical to a CSL DD pro (I got the identical usb ids) , maybe we can update the readme that this is no longer experimental, no complains here with the CSL DD at least.

@ciscoyo
Copy link
Author

ciscoyo commented Oct 22, 2023

hello all,
i really appreciate your help!
just let you know, i've done a lot of research about it and tested a lot, but i'm still a linux noob. pls keep that in mind ^^

@gotzl ye i installed evtest and tested it. like every single movement from wheel or pedals are recognised.
(holy shit, i'm so happy that i could install the driver right somehow xD)

here is the output regardless for the completeness (and to find something new like "event codes" or problems maybe):

Input driver version is 1.0.1
Input device ID: bus 0x3 vendor 0xeb7 product 0x20 version 0x111
Input device name: "Fanatec FANATEC Wheel"
Supported events:
Event type 0 (EV_SYN)
  Event type 1 (EV_KEY)
    Event code 288 (BTN_TRIGGER)
    Event code 289 (BTN_THUMB)
    Event code 290 (BTN_THUMB2)
    Event code 291 (BTN_TOP)
    Event code 292 (BTN_TOP2)
    Event code 293 (BTN_PINKIE)
    Event code 294 (BTN_BASE)
    Event code 295 (BTN_BASE2)
    Event code 296 (BTN_BASE3)
    Event code 297 (BTN_BASE4)
    Event code 298 (BTN_BASE5)
    Event code 299 (BTN_BASE6)
    Event code 300 (?)
    Event code 301 (?)
    Event code 302 (?)
    Event code 303 (BTN_DEAD)
    Event code 704 (BTN_TRIGGER_HAPPY1)
    Event code 705 (BTN_TRIGGER_HAPPY2)
    Event code 706 (BTN_TRIGGER_HAPPY3)
    Event code 707 (BTN_TRIGGER_HAPPY4)
    Event code 708 (BTN_TRIGGER_HAPPY5)
    Event code 709 (BTN_TRIGGER_HAPPY6)
    Event code 710 (BTN_TRIGGER_HAPPY7)
    Event code 711 (BTN_TRIGGER_HAPPY8)
    Event code 712 (BTN_TRIGGER_HAPPY9)
    Event code 713 (BTN_TRIGGER_HAPPY10)
    Event code 714 (BTN_TRIGGER_HAPPY11)
    Event code 715 (BTN_TRIGGER_HAPPY12)
    Event code 716 (BTN_TRIGGER_HAPPY13)
    Event code 717 (BTN_TRIGGER_HAPPY14)
    Event code 718 (BTN_TRIGGER_HAPPY15)
    Event code 719 (BTN_TRIGGER_HAPPY16)
    Event code 720 (BTN_TRIGGER_HAPPY17)
    Event code 721 (BTN_TRIGGER_HAPPY18)
    Event code 722 (BTN_TRIGGER_HAPPY19)
    Event code 723 (BTN_TRIGGER_HAPPY20)
    Event code 724 (BTN_TRIGGER_HAPPY21)
    Event code 725 (BTN_TRIGGER_HAPPY22)
    Event code 726 (BTN_TRIGGER_HAPPY23)
    Event code 727 (BTN_TRIGGER_HAPPY24)
    Event code 728 (BTN_TRIGGER_HAPPY25)
    Event code 729 (BTN_TRIGGER_HAPPY26)
    Event code 730 (BTN_TRIGGER_HAPPY27)
    Event code 731 (BTN_TRIGGER_HAPPY28)
    Event code 732 (BTN_TRIGGER_HAPPY29)
    Event code 733 (BTN_TRIGGER_HAPPY30)
    Event code 734 (BTN_TRIGGER_HAPPY31)
    Event code 735 (BTN_TRIGGER_HAPPY32)
    Event code 736 (BTN_TRIGGER_HAPPY33)
    Event code 737 (BTN_TRIGGER_HAPPY34)
    Event code 738 (BTN_TRIGGER_HAPPY35)
    Event code 739 (BTN_TRIGGER_HAPPY36)
    Event code 740 (BTN_TRIGGER_HAPPY37)
    Event code 741 (BTN_TRIGGER_HAPPY38)
    Event code 742 (BTN_TRIGGER_HAPPY39)
    Event code 743 (BTN_TRIGGER_HAPPY40)
    Event code 744 (?)
    Event code 745 (?)
    Event code 746 (?)
    Event code 747 (?)
    Event code 748 (?)
    Event code 749 (?)
    Event code 750 (?)
    Event code 751 (?)
    Event code 752 (?)
    Event code 753 (?)
    Event code 754 (?)
    Event code 755 (?)
    Event code 756 (?)
    Event code 757 (?)
    Event code 758 (?)
    Event code 759 (?)
    Event code 760 (?)
    Event code 761 (?)
    Event code 762 (?)
    Event code 763 (?)
    Event code 764 (?)
    Event code 765 (?)
    Event code 766 (?)
  Event type 3 (EV_ABS)
    Event code 0 (ABS_X)
      Value      0
      Min        0
      Max    65535
      Fuzz     255
      Flat    4095
    Event code 1 (ABS_Y)
      Value      0
      Min        0
      Max    65535
      Fuzz     255
      Flat    4095
    Event code 2 (ABS_Z)
      Value      0
      Min        0
      Max    65535
      Fuzz     255
      Flat    4095
    Event code 3 (ABS_RX)
      Value      0
      Min        0
      Max    65535
      Fuzz     255
      Flat    4095
    Event code 4 (ABS_RY)
      Value      0
      Min        0
      Max    65535
      Fuzz     255
      Flat    4095
    Event code 5 (ABS_RZ)
      Value      0
      Min        0
      Max    65535
      Fuzz     255
      Flat    4095
    Event code 6 (ABS_THROTTLE)
      Value      0
      Min        0
      Max      255
      Flat      15
    Event code 7 (ABS_RUDDER)
      Value      0
      Min     -128
      Max      127
      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 code 40 (ABS_MISC)
      Value      0
      Min        0
      Max      255
  Event type 4 (EV_MSC)
    Event code 4 (MSC_SCAN)
  Event type 21 (EV_FF)
    Event code 80 (FF_RUMBLE)
    Event code 81 (FF_PERIODIC)
    Event code 82 (FF_CONSTANT)
    Event code 83 (FF_SPRING)
    Event code 85 (FF_DAMPER)
    Event code 88 (FF_SQUARE)
    Event code 89 (FF_TRIANGLE)
    Event code 90 (FF_SINE)
    Event code 91 (FF_SAW_UP)
    Event code 92 (FF_SAW_DOWN)
Properties:

so i can aid @dtran11 theorie, it's an oversteer problem with fanatec.

Also, what is the exact type of pedals you have? They are directly connected to the base, right? Do you have the option to plug them in via USB directly to the PC?

i use the standard regular csl one https://fanatec.com/eu-en/pedals/csl-pedals
and yes, they're plugged in in the wheelbase. i've read about the problem, but since i'm getting any movement registered, it shouldn't apply to me.

  • to be honest, it doesen't make any sense.. why should the wheelbase do extra work to change the signals from the pedals?! just do a pass through.. but that's just my noob opinion ^^

so that means, everything seems to be OK, right?
that even includes that i can't update the fanatec firmware (coz no windows) isn't a problem at all, right?

thx for your help!
cheers

@ZakMcKrack3n
Copy link
Contributor

raceroom dosen't have proton support anymore sadly, so it's not related to you gotzl/hid-fanatecff.

@ciscoyo Actually you can force the use of proton for any game (under compatibility in the games list) .
I tested raceroom using proton experimental only some weeks ago, ffb worked with csw 2.5 (yellow) mode , did not test with native mode at the time.
As I nearly ran out of space because all of the racing games that work, its currently backed up on an external HDD :)

@ciscoyo
Copy link
Author

ciscoyo commented Oct 23, 2023

i found something new (copy pasta from the readme/description):

[Device specific]
Advanced functions of wheels/bases are available via sysfs. Base sysfs path:
/sys/module/hid_fanatec/drivers/hid:ftec_csl_elite/0003:0EB7:0005.*/

for me there is no hid-fanatec in /sys/module/
like i said, i'm just a linux noob and i don't know if or how that matters.

@ciscoyo ciscoyo changed the title fanatec csl dd + pedal support fanatec csl dd + csl pedal support Oct 23, 2023
@gotzl
Copy link
Owner

gotzl commented Oct 24, 2023

Hmm.. Missing /sys/module/hid_fanatec/ indicates that the driver is not properly installed. Note that this directory only exists when the driver got loaded. And the driver loads after plugging-in / powering on the device. To see what's happening when you plugging-in/powering the device look at journalctl -xfk. There, you should also see some messages from hid_fanatec. You can then also post the output here.

Not sure if I can help much with the games. proton logs are mostly giberish for me as well, unless I know what I'm looking for ^^ However, I'll try to install Raceroom and report back if I also run into problems. And when F1 23 is on sale I'll buy it to check this on my side. What sometimes helps with input-related issues is to disable steam-input ('right-click' -> Properties -> Controller'). Maybe you can try that?

@ciscoyo
Copy link
Author

ciscoyo commented Oct 25, 2023

first off, for everyone using a "rolling release" distro like me (Nobara), when u do the make command, u may get this warning:

[me hid-fanatecff]$ make

Compiling Fanatec kernel module

make -C /lib/modules/`uname -r`/build M=$PWD
make[1]: Verzeichnis „/usr/src/kernels/6.5.8-200.fsync.fc38.x86_64“ wird betreten
warning: the compiler differs from the one used to build the kernel
  The kernel was built by: gcc (GCC) 13.2.1 20231011 (Red Hat 13.2.1-4)
  You are using:           gcc (GCC) 13.2.1 20230728 (Red Hat 13.2.1-1)
make[1]: Verzeichnis „/usr/src/kernels/6.5.8-200.fsync.fc38.x86_64“ wird verlassen

for my noob linux understanding that means i need to make sure that every kernel is the same version. at least the compiler and the build kernel modules, but the fuk i know which they r.
so i simply loaded with GRUB(comes with nobara) an older kernel and hope, that both kernel modules r the same.

now i can install it without this warning and i finally have /sys/module/hid_fanatec/ in my directory, when the wheel is power on and plugged in ofc.
than doing the journalctl -xfk and turn on my wheel, to see the difference.

Okt 25 20:07:38 alien kernel: usb 3-2.3: new full-speed USB device number 5 using xhci_hcd
Okt 25 20:07:38 alien kernel: usb 3-2.3: New USB device found, idVendor=0eb7, idProduct=0020, bcdDevice= 0.17
Okt 25 20:07:38 alien kernel: usb 3-2.3: New USB device strings: Mfr=1, Product=3, SerialNumber=0
Okt 25 20:07:38 alien kernel: usb 3-2.3: Product: FANATEC Wheel
Okt 25 20:07:38 alien kernel: usb 3-2.3: Manufacturer: Fanatec
Okt 25 20:07:38 alien kernel: hid_map_usage: 78 callbacks suppressed
Okt 25 20:07:38 alien kernel: Fanatec FANATEC Wheel: Invalid code 768 type 1
Okt 25 20:07:38 alien kernel: Fanatec FANATEC Wheel: Invalid code 769 type 1
Okt 25 20:07:38 alien kernel: Fanatec FANATEC Wheel: Invalid code 770 type 1
Okt 25 20:07:38 alien kernel: Fanatec FANATEC Wheel: Invalid code 771 type 1
Okt 25 20:07:38 alien kernel: Fanatec FANATEC Wheel: Invalid code 772 type 1
Okt 25 20:07:38 alien kernel: Fanatec FANATEC Wheel: Invalid code 773 type 1
Okt 25 20:07:38 alien kernel: Fanatec FANATEC Wheel: Invalid code 774 type 1
Okt 25 20:07:38 alien kernel: Fanatec FANATEC Wheel: Invalid code 775 type 1
Okt 25 20:07:38 alien kernel: Fanatec FANATEC Wheel: Invalid code 776 type 1
Okt 25 20:07:38 alien kernel: Fanatec FANATEC Wheel: Invalid code 777 type 1
Okt 25 20:07:38 alien kernel: input: Fanatec FANATEC Wheel as /devices/pci0000:00/0000:00:08.1/0000:0a:00.3/usb3/3-2/3-2.3/3-2.3:1.0/0003:0EB7:0020.0011/input/input38
Okt 25 20:07:38 alien kernel: ftec_csl_elite 0003:0EB7:0020.0011: input,hiddev97,hidraw2: USB HID v1.11 Joystick [Fanatec FANATEC Wheel] on usb-0000:0a:00.3-2.3/input0
Okt 25 20:07:38 alien kernel: ftec_csl_elite 0003:0EB7:0020.0011: Hires timer: period = 2 ms

shit s not looking good.. but again, with evtest everything works just fine

when i keep journalctl -xfk activ and than start f1 23 i get this:

Okt 25 20:39:45 alien kernel: sr 3:0:0:0: [sr0] tag#9 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=0s
Okt 25 20:39:45 alien kernel: sr 3:0:0:0: [sr0] tag#9 Sense Key : Not Ready [deferred] 
Okt 25 20:39:45 alien kernel: sr 3:0:0:0: [sr0] tag#9 Add. Sense: Medium not present - tray closed
Okt 25 20:39:45 alien kernel: sr 3:0:0:0: [sr0] tag#9 CDB: Read(10) 28 00 00 00 00 00 00 00 08 00
Okt 25 20:39:45 alien kernel: blk_print_req_error: 8 callbacks suppressed
Okt 25 20:39:45 alien kernel: I/O error, dev sr0, sector 0 op 0x0:(READ) flags 0x80700 phys_seg 4 prio class 2
Okt 25 20:39:45 alien kernel: sr 3:0:0:0: [sr0] tag#10 unaligned transfer
Okt 25 20:39:45 alien kernel: I/O error, dev sr0, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2
Okt 25 20:39:45 alien kernel: buffer_io_error: 6 callbacks suppressed
Okt 25 20:39:45 alien kernel: Buffer I/O error on dev sr0, logical block 0, async page read
Okt 25 20:39:45 alien kernel: sr 3:0:0:0: [sr0] tag#11 unaligned transfer
Okt 25 20:39:45 alien kernel: I/O error, dev sr0, sector 1 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2
Okt 25 20:39:45 alien kernel: Buffer I/O error on dev sr0, logical block 1, async page read
Okt 25 20:39:45 alien kernel: sr 3:0:0:0: [sr0] tag#12 unaligned transfer
Okt 25 20:39:45 alien kernel: I/O error, dev sr0, sector 2 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2
Okt 25 20:39:45 alien kernel: Buffer I/O error on dev sr0, logical block 2, async page read
Okt 25 20:39:45 alien kernel: sr 3:0:0:0: [sr0] tag#13 unaligned transfer
Okt 25 20:39:45 alien kernel: I/O error, dev sr0, sector 3 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2
Okt 25 20:39:45 alien kernel: Buffer I/O error on dev sr0, logical block 3, async page read
Okt 25 20:39:45 alien kernel: sr 3:0:0:0: [sr0] tag#14 unaligned transfer
Okt 25 20:39:45 alien kernel: I/O error, dev sr0, sector 4 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2
Okt 25 20:39:45 alien kernel: Buffer I/O error on dev sr0, logical block 4, async page read
Okt 25 20:39:45 alien kernel: sr 3:0:0:0: [sr0] tag#15 unaligned transfer
Okt 25 20:39:45 alien kernel: I/O error, dev sr0, sector 5 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2
Okt 25 20:39:45 alien kernel: Buffer I/O error on dev sr0, logical block 5, async page read
Okt 25 20:39:45 alien kernel: sr 3:0:0:0: [sr0] tag#16 unaligned transfer
Okt 25 20:39:45 alien kernel: I/O error, dev sr0, sector 6 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2
Okt 25 20:39:45 alien kernel: Buffer I/O error on dev sr0, logical block 6, async page read
Okt 25 20:39:45 alien kernel: sr 3:0:0:0: [sr0] tag#17 unaligned transfer
Okt 25 20:39:45 alien kernel: I/O error, dev sr0, sector 7 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2
Okt 25 20:39:45 alien kernel: Buffer I/O error on dev sr0, logical block 7, async page read
Okt 25 20:39:48 alien kernel: sr 3:0:0:0: [sr0] tag#4 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=0s
Okt 25 20:39:48 alien kernel: sr 3:0:0:0: [sr0] tag#4 Sense Key : Not Ready [deferred] 
Okt 25 20:39:48 alien kernel: sr 3:0:0:0: [sr0] tag#4 Add. Sense: Medium not present - tray closed
Okt 25 20:39:48 alien kernel: sr 3:0:0:0: [sr0] tag#4 CDB: Read(10) 28 00 00 00 00 00 00 00 08 00
Okt 25 20:39:48 alien kernel: I/O error, dev sr0, sector 0 op 0x0:(READ) flags 0x80700 phys_seg 4 prio class 2
Okt 25 20:39:48 alien kernel: sr 3:0:0:0: [sr0] tag#5 unaligned transfer
Okt 25 20:39:48 alien kernel: Buffer I/O error on dev sr0, logical block 0, async page read
Okt 25 20:39:48 alien kernel: sr 3:0:0:0: [sr0] tag#6 unaligned transfer
Okt 25 20:39:48 alien kernel: Buffer I/O error on dev sr0, logical block 1, async page read
Okt 25 20:39:48 alien kernel: sr 3:0:0:0: [sr0] tag#7 unaligned transfer
Okt 25 20:39:48 alien kernel: sr 3:0:0:0: [sr0] tag#8 unaligned transfer
Okt 25 20:39:48 alien kernel: sr 3:0:0:0: [sr0] tag#9 unaligned transfer
Okt 25 20:39:48 alien kernel: sr 3:0:0:0: [sr0] tag#10 unaligned transfer
Okt 25 20:39:48 alien kernel: sr 3:0:0:0: [sr0] tag#11 unaligned transfer
Okt 25 20:39:48 alien kernel: sr 3:0:0:0: [sr0] tag#13 unaligned transfer
Okt 25 20:39:49 alien kernel: umip_printk: 5 callbacks suppressed
Okt 25 20:39:49 alien kernel: umip: F1_23.exe[7984] ip:14786692d sp:117648: SGDT instruction cannot be used by applications.
Okt 25 20:39:49 alien kernel: umip: F1_23.exe[7984] ip:14786692d sp:117648: For now, expensive software emulation returns the result.
Okt 25 20:39:49 alien kernel: umip: F1_23.exe[7984] ip:154887efd sp:1176b0: SGDT instruction cannot be used by applications.
Okt 25 20:39:49 alien kernel: umip: F1_23.exe[7984] ip:154887efd sp:1176b0: For now, expensive software emulation returns the result.
Okt 25 20:39:51 alien kernel: umip: F1_23.exe[8100] ip:14e8d8e8a sp:1215e518: SGDT instruction cannot be used by applications.

@gotzl
Copy link
Owner

gotzl commented Oct 27, 2023

shit s not looking good..

No, this actually looks good! The Fanatec FANATEC Wheel: Invalid code 768 type 1 appear AFAIU because the wheel has too many buttons ... It doesn't do any harm. The ftec_csl_elite 0003:0EB7:0020.0011: Hires timer: period = 2 ms says that everything is fine and the FFB should function.

What you see when you start F1 looks troublesome, though.. There a bunch of IO errors... I'm wondering, what is /dev/sr0? Usually srX is for optical devices.. These IO errors appear only when the wheel is plugged-id/powered-on? I don't see how these two things can relate ...

btw when i try to config the steamcontroler, it worked with the wheel ^^

What do you mean with that?

@ciscoyo
Copy link
Author

ciscoyo commented Oct 27, 2023

btw when i try to config the steamcontroler, it worked with the wheel ^^

What do you mean with that?

its a call back i guess.. steam did a major controller update yesterday.. i cant do shit now..
yesterday i could basicly create my own controller layout with every button working, but me stupid didnt try out pedals. my bad.

I'm wondering, what is /dev/sr0? Usually srX is for optical devices.. These IO errors appear only when the wheel is plugged-id/powered-on? I don't see how these two things can relate ...

no, they appear when ever i start an app(like steam) or game. but only apps or games that r able to use controllers like raceroom or cyberpunk etc. games like crusader kings for example do not cause any entries at all.

the power on/plugged in output is the one above, the 20:07:38 o´clock log.

so for my noob understanding there is still a missing driver or something.. like my distro, apps, games, cant handle the codes/variables what ever.. i wounder if this is only related to the not up to date fanatec firmware...
but than again.. i dont understand why apps/games just dont use evtest outputs, they look so good xD

@ZakMcKrack3n
Copy link
Contributor

@gotzl regarding the time period:
I experimented with 1ms (1000Hz , yay) and some games worked (Automobilista 2 for example) fine , but assetto corsa did crash everytime when force feedback was initialised at pre race screens.

Could it be that some kernels have a problem with 2ms as well ?
Input reporting at 1000Hz, but what way ffb events goes through with proton is still a mistery to me.

An idea would be to introduce a module option to be able to modify this hardcoded value for trubleshooting.

The sr0 errors are seem to come from games with active 3rd party copy protection left overs, as stated in the log , there is no medium present , so anything later should not be relevant regarding read errors.

@gotzl
Copy link
Owner

gotzl commented Oct 29, 2023

@ZakMcKrack3n oh, that's interesting. I can reproduce the crash of AC. This is very puzzling to me. Technically, the rate of the driver should have no influence on the game what-so-ever... I will investigate. You're right, this could be related to the problems @ciscoyo has...

@gotzl
Copy link
Owner

gotzl commented Nov 8, 2023

Hi, so, F1 23 was on sale and I bought it ;)
For me, the game starts if I use 'default' settings for Steam Input, but it does not recognize the wheel. If I use Disable Steam Input, the game doesn't start at all. So, I guess this confirms what @ciscoyo is seeing. I'll create another ticket to track this issue.

@ciscoyo
Copy link
Author

ciscoyo commented Nov 8, 2023

for your understanding, i disabled steam input overall. that means i disable the input in the main option menu, like in the top left corner option menu. so its disabled for every game by default.
all games by itself, in their own game option menu, r set to default (which is disabled).

@ciscoyo
Copy link
Author

ciscoyo commented Nov 18, 2023

Could it be that some kernels have a problem with 2ms as well ?

i highly doubt it tbh, since it's around for like more than 5 years for mouses and for keyboards for some amount of time as well by now and there is no problem at all..
i guess it's just a no support for this game issue, since other games work with the 1000Hz. that means wine/proton actually can handle the wheel outputs.
but again, this i just my noob suggestion. u guys seem to have way more knowledge with this than me ^^

@gotzl
Copy link
Owner

gotzl commented Nov 19, 2023

So I gave RRE a shot today. After some fiddling, it works for me with FFB. Note that there is a invert FFB button that I had to deselect, but after that, FFB feels alright.

As always, I disabled steam input for the game. Then I had to select the 32bit version, 64bit version wouldn't start because of the shader compilation issue. Then the game loaded but the wheel did not show up. So, I tried the proton63 trick. There, the game loaded and the wheel did show up as well. Back to, proton8, but the wheel did not show up. So, I tried proton7, where the game froze on startup. Then I went to proton-experimental, and TADA!, the game loads, the wheel shows up and FFB works.

So, again a game where the detection of the wheel is problematic for me with proton8, but after switching through some proton versions (w/o removing the pfx) it did eventually work... @ciscoyo so, what I can say for now is that RRE in principle does work. But I don't know the exact recipe how to get the wheel recognized...

@ciscoyo
Copy link
Author

ciscoyo commented Nov 19, 2023

so, what I can say for now is that RRE in principle does work.

good timing. i know, i played raceroom the whole morning trying to config the wheel..
i just launched the game to test it again and for some reason i had ffb, despite i didn't change anything.

Note that there is a invert FFB button that I had to deselect, but after that, FFB feels alright.

ye, i noticed after one or 2 rounds that's inverted ffb and must be a game setting. i couldn't believe, that's your driver and nobody would have noticed it so far xD
but than again there r ppl out there, who actually want this.. otherwise they would have never even implemented it, since its the complete opposite of how it should feel to drive a car xD

anyway, i had 2 bigger updates for these games today. not the one sec. ones, like 5 seconds/500mb ones.. maybe valve did something, since i contacted them about this, 2 weeks ago or something. and i had a bigger update for experimental yesterday or friday also.

So, I tried the proton63 trick. Then I went to proton-experimental, and TADA!

so we r 2 now, who actual NEED the 6.3.8 proton prefix AND the experimental prefix, for the wheel to be recognised and with functional ffb xD
finally Raceroom (RRE) and F1 23 are fully functional!

As always, I disabled steam input for the game. Then I had to select the 32bit version, 64bit version wouldn't start because of the shader compilation issue.

not sure why shaders cause problems there, but don't have problems with the 64bit version, using shaders as well (tho i don't need to, since im using newest mesa anyway)

i just wanna say great fucking work!! well deserved rest of the weekend everybody!!

@ciscoyo
Copy link
Author

ciscoyo commented Nov 29, 2023

I'm wondering, what is /dev/sr0? Usually srX is for optical devices.. These IO errors appear only when the wheel is plugged-id/powered-on? I don't see how these two things can relate ...

The sr0 errors are seem to come from games with active 3rd party copy protection left overs, as stated in the log , there is no medium present , so anything later should not be relevant regarding read errors.

speaking about optical devices, maybe its the steeringwheel leds. like, the p1 v2 wheel has a led on centre top and 3 digital unit thingy. they can interact with games and shit. u can even program them to show different things like current gear or speed and the single led is for current trackflag (like green for race, yellow for drive slow, incident ahead and so on) or revs states (like green>yelow>red) or something.
means, its a steeringwheel specific one. i dont have different wheels, so i cant test it. more leds=more events/erros i assume ^^
but for me, couldnt care less about leds to be honest. nice to have but simply not important ^^ not at all

@ZakMcKrack3n
Copy link
Contributor

speaking about optical devices, maybe its the steeringwheel leds.

Hard no, all the led endpoints are provided by this project itself, there would not be any without it.
Also under windows, all games use the fanatec middle ware to send telemetry so it can drive the display/leds of the wheel.
That is basically the goal of https://github.com/gotzl/hid-fanatecff-tools , to be a telemetry endpoint and send it to this driver to display gears/speed and rpm led(s).

I suggest if everything is working force feedback and input wise (depending on the game) to close this issue ?

@melroy89
Copy link
Contributor

melroy89 commented Dec 29, 2023

@ciscoyo I got the same bundle , for me codemasters Dirt Rally 2.0 started crashing some time ago when in CSW 2.5 compatibility mode (orange led), but works fine in native mode (red LED on base power button).

Dirt Rally 2.0 also crashes when turning on the device mid game or switching into CSW 2.5 compatibility mode , where the native mode works fine, maybe you can test the different modes ? (switching is done by a short press of the power button after turning it on and its finished calibrating itself).

As I have the same pedals, are the pedals working in other games / windows ? If you have no windows to test and this is your only set up: Are the pedals connected to the correct port , otherwise funky things could occur if plugged in to hand brake port etc.

I have the opposite experience actually.. I have maybe another bundle. But I have CSL DD base with CSL Steering Wheel BMW + CSL Pedals (no load cell).

I'm using a handy script using the device ID as input:

find_by_id(){     v=${1%:*}; p=${1#*:}  # split vid:pid into 2 vars
  v=${v#${v%%[!0]*}}; p=${p#${p%%[!0]*}}  # strip leading zeros
  grep -il "^PRODUCT=$v/$p" /sys/bus/usb/devices/*:*/uevent |     sed s,uevent,, |     xargs -r grep -r '^DEVNAME=' --include uevent; 
}

In PC Mode (Red Light), I get: Bus 007 Device 003: ID 0eb7:0020 Endor AG FANATEC Wheel, so I use.

find_by_id 0eb7:0020

Points me to: /sys/bus/usb/devices/7-1:1.0/0003:0EB7:0020.000C/

Driver is:

lrwxrwxrwx  1 root root     0 Dec 29 22:37 driver -> ../../../../../../../bus/hid/drivers/ftec_csl_elite/

Journal log:

Dec 29 23:01:17 melroy-pc kernel: usb 7-1: USB disconnect, device number 14
Dec 29 23:01:17 melroy-pc kernel: usb 7-1: new full-speed USB device number 15 using uhci_hcd
Dec 29 23:01:18 melroy-pc kernel: usb 7-1: New USB device found, idVendor=0eb7, idProduct=0020, bcdDevice= 8.01
Dec 29 23:01:18 melroy-pc kernel: usb 7-1: New USB device strings: Mfr=1, Product=3, SerialNumber=0
Dec 29 23:01:18 melroy-pc kernel: usb 7-1: Product: FANATEC Wheel
Dec 29 23:01:18 melroy-pc kernel: usb 7-1: Manufacturer: Fanatec
Dec 29 23:01:18 melroy-pc kernel: hid_map_usage: 34 callbacks suppressed
Dec 29 23:01:18 melroy-pc kernel: Fanatec FANATEC Wheel: Invalid code 768 type 1
Dec 29 23:01:18 melroy-pc kernel: Fanatec FANATEC Wheel: Invalid code 769 type 1
Dec 29 23:01:18 melroy-pc kernel: Fanatec FANATEC Wheel: Invalid code 770 type 1
Dec 29 23:01:18 melroy-pc kernel: Fanatec FANATEC Wheel: Invalid code 771 type 1
Dec 29 23:01:18 melroy-pc kernel: Fanatec FANATEC Wheel: Invalid code 772 type 1
Dec 29 23:01:18 melroy-pc kernel: Fanatec FANATEC Wheel: Invalid code 773 type 1
Dec 29 23:01:18 melroy-pc kernel: Fanatec FANATEC Wheel: Invalid code 774 type 1
Dec 29 23:01:18 melroy-pc kernel: Fanatec FANATEC Wheel: Invalid code 775 type 1
Dec 29 23:01:18 melroy-pc kernel: Fanatec FANATEC Wheel: Invalid code 776 type 1
Dec 29 23:01:18 melroy-pc kernel: Fanatec FANATEC Wheel: Invalid code 777 type 1
Dec 29 23:01:18 melroy-pc kernel: input: Fanatec FANATEC Wheel as /devices/pci0000:00/0000:00:1d.1/usb7/7-1/7-1:1.0/0003:0EB7:0020.0012/input/input40
Dec 29 23:01:18 melroy-pc kernel: ftec_csl_elite 0003:0EB7:0020.0012: input,hiddev1,hidraw4: USB HID v1.11 Joystick [Fanatec FANATEC Wheel] on usb-0000:00:1d.1-1/input0
Dec 29 23:01:18 melroy-pc kernel: ftec_csl_elite 0003:0EB7:0020.0012: Hires timer: period = 2 ms

However, games will NOT recognize the wheel nor pedals correctly with the game DiRT4 using Proton/Wine for example.

image

HOWEVER, when I set the CSL Base in comparability mode (yellowish/orange light). I will get: Bus 007 Device 010: ID 0eb7:0004 Endor AG FANATEC Wheel.

find_by_id 0eb7:0004

Points me to: /sys/bus/usb/devices/7-1:1.0/0003:0EB7:0004.000B/

Driver is also:

lrwxrwxrwx  1 root root     0 Dec 29 22:33 driver -> ../../../../../../../bus/hid/drivers/ftec_csl_elite

Journal log shows:

Dec 29 23:00:20 melroy-pc kernel: usb 7-1: USB disconnect, device number 13
Dec 29 23:00:20 melroy-pc kernel: usb 7-1: new full-speed USB device number 14 using uhci_hcd
Dec 29 23:00:21 melroy-pc kernel: usb 7-1: New USB device found, idVendor=0eb7, idProduct=0004, bcdDevice= 8.01
Dec 29 23:00:21 melroy-pc kernel: usb 7-1: New USB device strings: Mfr=1, Product=3, SerialNumber=0
Dec 29 23:00:21 melroy-pc kernel: usb 7-1: Product: FANATEC Wheel
Dec 29 23:00:21 melroy-pc kernel: usb 7-1: Manufacturer: Fanatec
Dec 29 23:00:21 melroy-pc kernel: hid_map_usage: 78 callbacks suppressed
Dec 29 23:00:21 melroy-pc kernel: Fanatec FANATEC Wheel: Invalid code 768 type 1
Dec 29 23:00:21 melroy-pc kernel: Fanatec FANATEC Wheel: Invalid code 769 type 1
Dec 29 23:00:21 melroy-pc kernel: Fanatec FANATEC Wheel: Invalid code 770 type 1
Dec 29 23:00:21 melroy-pc kernel: Fanatec FANATEC Wheel: Invalid code 771 type 1
Dec 29 23:00:21 melroy-pc kernel: Fanatec FANATEC Wheel: Invalid code 772 type 1
Dec 29 23:00:21 melroy-pc kernel: Fanatec FANATEC Wheel: Invalid code 773 type 1
Dec 29 23:00:21 melroy-pc kernel: Fanatec FANATEC Wheel: Invalid code 774 type 1
Dec 29 23:00:21 melroy-pc kernel: Fanatec FANATEC Wheel: Invalid code 775 type 1
Dec 29 23:00:21 melroy-pc kernel: Fanatec FANATEC Wheel: Invalid code 776 type 1
Dec 29 23:00:21 melroy-pc kernel: Fanatec FANATEC Wheel: Invalid code 777 type 1
Dec 29 23:00:21 melroy-pc kernel: input: Fanatec FANATEC Wheel as /devices/pci0000:00/0000:00:1d.1/usb7/7-1/7-1:1.0/0003:0EB7:0004.0011/input/input39
Dec 29 23:00:21 melroy-pc kernel: ftec_csl_elite 0003:0EB7:0004.0011: input,hiddev1,hidraw4: USB HID v1.11 Joystick [Fanatec FANATEC Wheel] on usb-0000:00:1d.1-1/input0
Dec 29 23:00:21 melroy-pc kernel: ftec_csl_elite 0003:0EB7:0004.0011: Hires timer: period = 2 ms

But then the game will recognize my wheel + pedals! And I can play the game without any issues using this driver, but again only in comparability mode (yellow LED light).

image

Strange right?

@ciscoyo
Copy link
Author

ciscoyo commented Jan 4, 2024

ye, we have the same base and pedals, but i have the p1 v2 wheel. but its only an optical difference, pretty sure.
i think u miss some prefix/win driver.. read link

i found this Kimplul/hid-tmff2#46. very interesting and a lot of useful informations there. i will mess with this a lil bit, when i have time :)

i cant help u with this, u just need to test it for yourself ^^
anyway, this is how it is for me. when i go with the xbox mode(yellow), my device is called "fanatec clubsport v2.5 wheel" and with pc mode(red) "fanatec csl dd".
but i have to say, that i only play and test with raceroom, coz its simply the best sim racing game physics, ffb and netcode wise ^^ and its f2p! it just misses a few more players..

what else i can say is, what to consider when using diff modes:

  • re/start game AND steam WITH wheel already powered on in a chosen mode. like u need to make sure that the wine container is really closed when restarting, coz it can interference
  • u need to create a new profile and bind all stuff new, even pedals
  • u might be even config something in the steam controller settings

@ciscoyo
Copy link
Author

ciscoyo commented Jan 4, 2024

speaking about optical devices, maybe its the steeringwheel leds.

Hard no, all the led endpoints are provided by this project itself, there would not be any without it. Also under windows, all games use the fanatec middle ware to send telemetry so it can drive the display/leds of the wheel. That is basically the goal of https://github.com/gotzl/hid-fanatecff-tools , to be a telemetry endpoint and send it to this driver to display gears/speed and rpm led(s).

I suggest if everything is working force feedback and input wise (depending on the game) to close this issue ?

wow.. yea ok. im not sure if i can understand that at all, but thats fine. u guys seem to have the grip in this subject, i rely on u :)
and i see that gotzl is even coding this alongside. thats just simply amazing..
@gotzl i told u, just pm me or sth for a late chrismas present. im willing to support u, since im not a useful coder ^^ its just a code that u can redeem

@gotzl
Copy link
Owner

gotzl commented Jan 8, 2024

@ciscoyo Don't think github offers PMs.. Anyways, thanks for the offer, that's very nice :) But you really don't have to! If you insist though, I use the same nickname for my steam account, you should be able to find it (the one with the serious-sam icon).

@melroy89
Copy link
Contributor

@ciscoyo Don't think github offers PMs.. Anyways, thanks for the offer, that's very nice :) But you really don't have to! If you insist though, I use the same nickname for my steam account, you should be able to find it (the one with the serious-sam icon).

There are multiple steam account with that nickname when searching on gotzl, and the ID is not gotzl: https://steamcommunity.com/id/gotzl

image

@dinuxlt
Copy link

dinuxlt commented Jan 17, 2024

Some time ago @gotzl created discord server and it can be used for "fast communication".
Note sure if he is using discord actively.

Or maybe is good idea to add invitation link to README.md ?

@gotzl
Copy link
Owner

gotzl commented Jan 18, 2024

Or maybe is good idea to add invitation link to README.md ?

I see the need for another communication channel as well. I'll check if I can publish the invite to the discord (or create one).

@gotzl
Copy link
Owner

gotzl commented Jan 18, 2024

Closing as the CSL DD (Pro) should work.

@gotzl gotzl closed this as completed Jan 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants