Am Montag, den 17.06.2019, 12:35 +0200 schrieb Bernd Steinhauser: > > 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. Hi, 1. this eport is more appropriate for linux-input. You should put it into CC 2. You indeed triggered this check: /* * Fill and check the pidff_usages */ static int pidff_init_fields(struct pidff_device *pidff, struct input_dev *dev) { int envelope_ok = 0; if (PIDFF_FIND_FIELDS(set_effect, PID_SET_EFFECT, 1)) { hid_err(pidff->hid, "unknown set_effect report layout\n"); return -ENODEV; } 3. Your lsusb is incomplete (likely you need to run it as root), so nobody can say what's wrong with your descriptors. HTH Oliver