berarma / new-lg4ff

Experimental Logitech force feedback module for Linux
GNU General Public License v2.0
298 stars 18 forks source link

G923 support #44

Closed Elizafox closed 2 years ago

Elizafox commented 3 years ago

Hello,

I noticed this driver doesn't work with the G923, which also doesn't work with stock linux. 😞

What does work with stock linux:

What doesn't work:

Any luck that this could be supported? I have this wheel and a little kernel programming experience, although not in HID devices. I can provide whatever information you need.

There is this project, but they don't appear to have gotten very far.

dmesg output on attach:

[112950.561289] input: Logitech G923 Racing Wheel for PlayStation 4 and PC as /devices/pci0000:00/0000:00:01.2/0000:02:00.0/0000:03:08.0/0000:08:00.3/usb5/5-3/5-3:1.0/0003:046D:C267.0090/input/input113
[112950.561382] hid-generic 0003:046D:C267.0090: input,hiddev3,hidraw4: USB HID v1.10 Gamepad [Logitech G923 Racing Wheel for PlayStation 4 and PC] on usb-0000:08:00.3-3/input0
[112950.567061] hid-generic 0003:046D:C267.0091: hiddev4,hidraw5: USB HID v1.11 Device [Logitech G923 Racing Wheel for PlayStation 4 and PC] on usb-0000:08:00.3-3/input1
[112950.573017] hid-generic 0003:046D:C267.0092: hiddev5,hidraw6: USB HID v1.11 Device [Logitech G923 Racing Wheel for PlayStation 4 and PC] on usb-0000:08:00.3-3/input2

lsusb -v output:

Bus 005 Device 008: ID 046d:c267 Logitech, Inc. G923 Racing Wheel for PlayStation 4 and PC
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.00
  bDeviceClass            0 
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x046d Logitech, Inc.
  idProduct          0xc267 
  bcdDevice           38.00
  iManufacturer           1 Logitech
  iProduct                2 G923 Racing Wheel for PlayStation 4 and PC
  iSerial                 3 YFAJAJYHYFOKOTYQAXAGUWIZO
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0062
    bNumInterfaces          3
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              200mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      0 
      bInterfaceProtocol      0 
      iInterface              0 
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.10
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength     193
         Report Descriptors: 
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               5
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x84  EP 4 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               5
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      0 
      bInterfaceProtocol      0 
      iInterface              0 
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.11
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      54
         Report Descriptors: 
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0014  1x 20 bytes
        bInterval               5
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      0 
      bInterfaceProtocol      0 
      iInterface              0 
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.11
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      30
         Report Descriptors: 
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               1
can't get debug descriptor: Resource temporarily unavailable
Device Status:     0x0000
  (Bus Powered)
berarma commented 3 years ago

Hi.

Sorry, this isn't supported and I can't do anything about it. I'd like to help but I don't have the means.

I don't know very much about HID devices neither, I just modified the module so that it could process more effect types and other changes that had little to do with the HID interface.

Our best bet would be that the wheel could be switched to a mode compatible with the G29 or G920. But we'd need to know how to do it.

Logitech had released information about all their previous models. Maybe if we contacted the right people at Logitech they would release some programming docs.

isopix commented 3 years ago

It doesn't sound so bad, at least you can use it as big and pricey (and uncomfortable) joypad.

But seriously you can sell it and buy two used G29 or G27 for that price. Or much more better(but less reliable) Fanatec/Thrustmaster gear for similar price.

If you look over ticket's on this github(or forks) you will find that some devs tried, but was unfortunate to do it

G29 got all the knobs you got on your G923, but I still recommend G27 with buttons in much more stable position(on shifter, that doesn't rotate like wheel). You shouldn't have problem to sell G923 for 80%-90% of new unit on sale(they are usually on sell, so I hope you haven't paid full price ;-) G29 is PC/PS3/PS4/PS5 compatible, so it's still good buy if you need console compatiblity(and resellability, because of such wide compatiblity).

But because you wrote you've got some kernel programming experience, and if you are not in hurry to use your gear(play games), then you can have more fun hacking protocol and finding magic sequence to reintialize it(you must prepare windows machine with WireShark or some VM wih usb dump ability. Like I wrote, there already were unsuccesfull attempts to do it, so let's start with finding them.

anyway good luck with reselling it or tinkering for weeks(or months or even years ;-)

On 3/29/21, Elizabeth Myers @.***> wrote:

Hello,

I noticed this driver doesn't work with the G923, which also doesn't work with stock linux. 😞

What does work with stock linux:

  • The buttons and paddle shifters (most of them at least)

  • The directional buttons, detected as a joystick with four axes (but only on or off)

What doesn't work:

  • The wheel

  • The pedals

  • +/-, enter, and the click wheel

Any luck that this could be supported? I have this wheel and a little kernel programming experience, although not in HID devices.

There is this project, but they don't appear to have gotten very far.

--

You are receiving this because you are subscribed to this thread.

Reply to this email directly or view it on GitHub:

https://github.com/berarma/new-lg4ff/issues/44

Elizafox commented 3 years ago

It doesn't sound so bad, at least you can use it as big and pricey (and uncomfortable) joypad. But seriously you can sell it and buy two used G29 or G27 for that price. Or much more better(but less reliable) Fanatec/Thrustmaster gear for similar price. If you look over ticket's on this github(or forks) you will find that some devs tried, but was unfortunate to do it G29 got all the knobs you got on your G923, but I still recommend G27 with buttons in much more stable position(on shifter, that doesn't rotate like wheel). You shouldn't have problem to sell G923 for 80%-90% of new unit on sale(they are usually on sell, so I hope you haven't paid full price ;-) G29 is PC/PS3/PS4/PS5 compatible, so it's still good buy if you need console compatiblity(and resellability, because of such wide compatiblity). But because you wrote you've got some kernel programming experience, and if you are not in hurry to use your gear(play games), then you can have more fun hacking protocol and finding magic sequence to reintialize it(you must prepare windows machine with WireShark or some VM wih usb dump ability. Like I wrote, there already were unsuccesfull attempts to do it, so let's start with finding them. anyway good luck with reselling it or tinkering for weeks(or months or even years ;-) … On 3/29/21, Elizabeth Myers @.**> wrote: Hello, I noticed this driver doesn't work with the G923, which also doesn't work with stock linux. disappointed What does work with stock linux: The buttons and paddle shifters (most of them at least) The directional buttons, detected as a joystick with four axes (but only on or off) What doesn't work: The wheel The pedals +/-, enter, and the click wheel Any luck that this could be supported? I have this wheel and a little kernel programming experience, although not in HID devices. There is this project, but they don't appear to have gotten very far. -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: #44

It presents as 3 hidraw devices (which doesn't seem right to me). The first one seems to be the one that works. I can get data when I rotate the wheel when I run hexdump on it, and although I see some patterns I've not yet decoded what it all means yet.

P.S. there really is no need to be insulting (really — I don't appreciate it, and if that's how you treat your contributors, I'll happily go do this on my own and stop wasting your time and mine, it's easier when I don't have to deal with jerks who aren't convinced I can figure this out or learn, I am not a simpleton), and no, I have no intention of selling my wheel.

isopix commented 3 years ago

Sorry if you feel insulted, but I don't get why (and it wasn't my intention). I simply wrote that development start for G923 and were nowhere and that if you want usable device now, then it's better to sell and buy much cheaper G29 or G27(you can buy two units for G923 price), or feel free to hack it for weeks, months or longer(seeing how current development efforts stalled). On the bright side seeing also as development went(few months for working drivers) for totally different Fanatec and Thrustmaster gear went, it should be theoretically easier for G923, which at least mechanically is identical to G29

Feel free to point me at part of message where you felt insulted, because I cannot read my previous that way. And I'm not related to Berarma(dev of this project) at all. I'm simply G29 owner that follows wheel drivers development(for different wheels), so my message is definitely "not how new-lg4ff developers threat controibutors"

On 3/30/21, Elizabeth Myers @.***> wrote:

It doesn't sound so bad, at least you can use it as big and pricey (and uncomfortable) joypad. But seriously you can sell it and buy two used G29 or G27 for that price. Or much more better(but less reliable) Fanatec/Thrustmaster gear for similar price. If you look over ticket's on this github(or forks) you will find that some devs tried, but was unfortunate to do it G29 got all the knobs you got on your G923, but I still recommend G27 with buttons in much more stable position(on shifter, that doesn't rotate like wheel). You shouldn't have problem to sell G923 for 80%-90% of new unit on sale(they are usually on sell, so I hope you haven't paid full price ;-) G29 is PC/PS3/PS4/PS5 compatible, so it's still good buy if you need console compatiblity(and resellability, because of such wide compatiblity). But because you wrote you've got some kernel programming experience, and if you are not in hurry to use your gear(play games), then you can have more fun hacking protocol and finding magic sequence to reintialize it(you must prepare windows machine with WireShark or some VM wih usb dump ability. Like I wrote, there already were unsuccesfull attempts to do it, so let's start with finding them. anyway good luck with reselling it or tinkering for weeks(or months or even years ;-)

…

On 3/29/21, Elizabeth Myers @.**> wrote: Hello, I noticed this driver doesn't work with the G923, which also doesn't work with stock linux. disappointed What does work with stock linux: The buttons and paddle shifters (most of them at least) The directional buttons, detected as a joystick with four axes (but only on or off) What doesn't work: The wheel The pedals +/-, enter, and the click wheel Any luck that this could be supported? I have this wheel and a little kernel programming experience, although not in HID devices. There is this project, but they don't appear to have gotten very far. -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: #44

It presents as 3 hidraw devices (which doesn't seem right to me). The first one seems to be the one that works. I can get data when I rotate the wheel when I run hexdump on it, and although I see some patterns I've not yet decoded what it all means yet.

P.S. there really is no need to be insulting (really — I don't appreciate it, and if that's how you treat your contributors, I'll happily go do this on my own and stop wasting your time), and no, I have no intention of selling my wheel.

--

You are receiving this because you commented.

Reply to this email directly or view it on GitHub:

https://github.com/berarma/new-lg4ff/issues/44#issuecomment-809827417

berarma commented 2 years ago

There's already a PR to add support for this wheel.