linux-usb.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Force Feedback support not recognized on Granite Devices Simucube
@ 2019-06-17 11:46 Bernd Steinhauser
  2020-02-05 18:54 ` Bernd Steinhauser
  0 siblings, 1 reply; 6+ messages in thread
From: Bernd Steinhauser @ 2019-06-17 11:46 UTC (permalink / raw)
  To: linux-input; +Cc: linux-usb

[-- Attachment #1: Type: text/plain, Size: 2194 bytes --]

Resending this message to linux input as suggested.

Hi,

I own a Granite Devices Simucube force feedback wheel which I'd like to get 
working under Linux.
The current status is that if I use a tool to check/test the FFB, it tells me 
that the device does not support FFB.
I'm also using the device under Windows 7 and there it works without any special 
driver, so it should work with USB HID FFB.
In principle, it supports the following effects (see link below):
- constant force
- friction
- damping
- spring
- sine wave
- square wave
- sawtooth
- triangle

The device advertises as MCS, Granite Devices SimuCUBE with id 16d0:0d5a, I'll 
attach lsusb output.
Upon connection, the device is recognized and the output is:

[ 3271.812807] usb 1-2.4.2: new full-speed USB device number 10 using xhci_hcd
[ 3271.921182] usb 1-2.4.2: New USB device found, idVendor=16d0, idProduct=0d5a, 
bcdDevice= 2.00
[ 3271.921184] usb 1-2.4.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 3271.921185] usb 1-2.4.2: Product: SimuCUBE
[ 3271.921186] usb 1-2.4.2: Manufacturer: Granite Devices
[ 3271.921187] usb 1-2.4.2: SerialNumber: 0123456789
[ 3281.943990] input: Granite Devices SimuCUBE as 
/devices/pci0000:00/0000:00:09.0/0000:04:00.0/usb1/1-2/1-2.4/1-2.4.2/1-2.4.2:1.0/0003:16D0:0D5A.0016/input/input48
[ 3281.944223] hid-generic 0003:16D0:0D5A.0016: unknown set_effect report layout
[ 3281.944228] hid-generic 0003:16D0:0D5A.0016: input,hiddev2,hidraw15: USB HID 
v1.11 Joystick [Granite Devices SimuCUBE] on usb-0000:04:00.0-2.4.2/input0

I spent some time looking at the code and also other ffb code in usbhid, but 
since I'm not really familiar with C I have a hard time figuring out why it 
doesn't work out of the box and how to fix this, but I'd be happy to help 
implementing/debugging it.
For a start, it would be really nice to find out what is reported, what the 
report should look like and why it doesn't match.

Kind Regards,
Bernd

Links that might or might not be useful for general information:
https://granitedevices.com/wiki/SimuCUBE_technical_specifications
https://granitedevices.com/wiki/SimuCUBE_Firmware_User_Guide#DirectInput_Effect_Settings_and_Descriptions





[-- Attachment #2: lsusb-v.txt --]
[-- Type: text/plain, Size: 2406 bytes --]

Bus 001 Device 010: ID 16d0:0d5a MCS 
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x16d0 MCS
  idProduct          0x0d5a 
  bcdDevice            2.00
  iManufacturer           1 Granite Devices
  iProduct                2 SimuCUBE
  iSerial                 3 0123456789
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0029
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xc0
      Self Powered
    MaxPower              100mA
    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.11
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength    1465
         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 device qualifier: Resource temporarily unavailable
can't get debug descriptor: Resource temporarily unavailable
Device Status:     0x0001
  Self Powered

^ permalink raw reply	[flat|nested] 6+ messages in thread
* Force Feedback support not recognized on Granite Devices Simucube
@ 2019-06-17 10:35 Bernd Steinhauser
  2019-06-17 10:57 ` Oliver Neukum
  0 siblings, 1 reply; 6+ messages in thread
From: Bernd Steinhauser @ 2019-06-17 10:35 UTC (permalink / raw)
  To: linux-usb

[-- Attachment #1: Type: text/plain, Size: 2129 bytes --]

Hi,

I own a Granite Devices Simucube force feedback wheel which I'd like to get working under Linux.
The current status is that if I use a tool to check/test the FFB, it tells me that the device does not support FFB.
I'm also using the device under Windows 7 and there it works without any special driver, so it should work with USB HID FFB.
In principle, it supports the following effects (see link below):
- constant force
- friction
- damping
- spring
- sine wave
- square wave
- sawtooth
- triangle

The device advertises as MCS, Granite Devices SimuCUBE with id 16d0:0d5a, I'll attach lsusb output.
Upon connection, the device is recognized and the output is:

[ 3271.812807] usb 1-2.4.2: new full-speed USB device number 10 using xhci_hcd
[ 3271.921182] usb 1-2.4.2: New USB device found, idVendor=16d0, idProduct=0d5a, bcdDevice= 2.00
[ 3271.921184] usb 1-2.4.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 3271.921185] usb 1-2.4.2: Product: SimuCUBE
[ 3271.921186] usb 1-2.4.2: Manufacturer: Granite Devices
[ 3271.921187] usb 1-2.4.2: SerialNumber: 0123456789
[ 3281.943990] input: Granite Devices SimuCUBE as /devices/pci0000:00/0000:00:09.0/0000:04:00.0/usb1/1-2/1-2.4/1-2.4.2/1-2.4.2:1.0/0003:16D0:0D5A.0016/input/input48
[ 3281.944223] hid-generic 0003:16D0:0D5A.0016: unknown set_effect report layout
[ 3281.944228] hid-generic 0003:16D0:0D5A.0016: input,hiddev2,hidraw15: USB HID v1.11 Joystick [Granite Devices SimuCUBE] on usb-0000:04:00.0-2.4.2/input0

I spent some time looking at the code and also other ffb code in usbhid, but since I'm not really familiar with C I have a hard time figuring out why it doesn't work out of the box and how to fix this, but I'd be happy to help implementing/debugging it.
For a start, it would be really nice to find out what is reported, what the report should look like and why it doesn't match.

Kind Regards,
Bernd

Links that might or might not be useful for general information:
https://granitedevices.com/wiki/SimuCUBE_technical_specifications
https://granitedevices.com/wiki/SimuCUBE_Firmware_User_Guide#DirectInput_Effect_Settings_and_Descriptions




[-- Attachment #2: lsusb-v.txt --]
[-- Type: text/plain, Size: 2406 bytes --]

Bus 001 Device 010: ID 16d0:0d5a MCS 
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x16d0 MCS
  idProduct          0x0d5a 
  bcdDevice            2.00
  iManufacturer           1 Granite Devices
  iProduct                2 SimuCUBE
  iSerial                 3 0123456789
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0029
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xc0
      Self Powered
    MaxPower              100mA
    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.11
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength    1465
         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 device qualifier: Resource temporarily unavailable
can't get debug descriptor: Resource temporarily unavailable
Device Status:     0x0001
  Self Powered

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2022-06-26 10:07 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-06-17 11:46 Force Feedback support not recognized on Granite Devices Simucube Bernd Steinhauser
2020-02-05 18:54 ` Bernd Steinhauser
2022-06-26  9:59   ` Bernd Steinhauser
  -- strict thread matches above, loose matches on Subject: below --
2019-06-17 10:35 Bernd Steinhauser
2019-06-17 10:57 ` Oliver Neukum
2019-06-17 11:36   ` Bernd Steinhauser

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).