Joystick Hat working incorrectly

I’ve got a Flashfire Cobra V6 and the hat instead of working as intended it reports as a single axis with each hat direction giving a different value, and axis value stays in that direction until I press a different direction. I’ve tested it in Windows and it works as intended so a factory defect is ruled out

lsusb -vd 11c0:5606 output:

Bus 001 Device 004: ID 11c0:5606 Betop USB Joystick
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass            0 
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x11c0 Betop
  idProduct          0x5606 
  bcdDevice            1.22
  iManufacturer           0 
  iProduct                2 USB Joystick
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0022
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      0 
      bInterfaceProtocol      0 
      iInterface              0 
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.00
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength     232
         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
Device Status:     0x0000
  (Bus Powered)


dmesg gives the following when it’s connected:

[  802.839421] input: USB Joystick as /devices/pci0000:00/0000:00:0c.0/usb1/1-2/1-2:1.0/0003:11C0:5606.0003/input/input10
[  802.839559] hid-generic 0003:11C0:5606.0003: input,hidraw1: USB HID v1.00 Joystick [USB Joystick] on usb-0000:00:0c.0-2/input0

1 Like

Have you solved this? I have the same problem.

Bus 005 Device 006: ID 11c0:5606 Betop FR-TEC Raptor MACH 2
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass            0 [unknown]
  bDeviceSubClass         0 [unknown]
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x11c0 Betop
  idProduct          0x5606 FR-TEC Raptor MACH 2
  bcdDevice            4.02
  iManufacturer           1 Sanmos Group
  iProduct                2 FR-TEC Raptor MACH 2
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0022
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      0 [unknown]
      bInterfaceProtocol      0 
      iInterface              0 
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.00
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength     232
          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
Device Status:     0x0000
  (Bus Powered)

[23742.775601] usb 5-1: new full-speed USB device number 7 using xhci_hcd
[23742.917985] usb 5-1: New USB device found, idVendor=11c0, idProduct=5606, bcdDevice= 4.02
[23742.918022] usb 5-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[23742.918025] usb 5-1: Product: FR-TEC Raptor MACH 2
[23742.918028] usb 5-1: Manufacturer: Sanmos Group
[23742.937111] input: Sanmos Group FR-TEC Raptor MACH 2 as /devices/pci0000:00/0000:00:07.1/0000:0a:00.3/usb5/5-1/5-1:1.0/0003:11C0:5606.000B/input/input34
[23742.937253] hid-generic 0003:11C0:5606.000B: input,hidraw0: USB HID v1.00 Joystick [Sanmos Group FR-TEC Raptor MACH 2] on usb-0000:0a:00.3-1/input0

i also tried evtest and pressing the hat:

Input driver version is 1.0.1
Input device ID: bus 0x3 vendor 0x11c0 product 0x5606 version 0x100
Input device name: "Sanmos Group FR-TEC Raptor MACH 2"
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 type 3 (EV_ABS)
    Event code 0 (ABS_X)
      Value   1023
      Min        0
      Max     2047
      Fuzz       7
      Flat     127
    Event code 1 (ABS_Y)
      Value   1023
      Min        0
      Max     2047
      Fuzz       7
      Flat     127
    Event code 2 (ABS_Z)
      Value      0
      Min        0
      Max     1023
      Fuzz       3
      Flat      63
    Event code 3 (ABS_RX)
      Value    511
      Min        0
      Max     1023
      Fuzz       3
      Flat      63
    Event code 4 (ABS_RY)
      Value   1023
      Min        0
      Max     2047
      Fuzz       7
      Flat     127
    Event code 5 (ABS_RZ)
      Value      0
      Min        0
      Max     1023
      Fuzz       3
      Flat      63
    Event code 6 (ABS_THROTTLE)
      Value      0
      Min        0
      Max     1023
      Fuzz       3
      Flat      63
    Event code 16 (ABS_HAT0X)
      Value      0
      Min        0
      Max      239
      Flat      14
  Event type 4 (EV_MSC)
    Event code 4 (MSC_SCAN)
Properties:
Testing ... (interrupt to exit)
Event: time 1711217347.373181, type 3 (EV_ABS), code 16 (ABS_HAT0X), value 120
Event: time 1711217347.373181, -------------- SYN_REPORT ------------
Event: time 1711217350.458174, type 3 (EV_ABS), code 16 (ABS_HAT0X), value 60
Event: time 1711217350.458174, -------------- SYN_REPORT ------------
Event: time 1711217351.853175, type 3 (EV_ABS), code 16 (ABS_HAT0X), value 0
Event: time 1711217351.853175, -------------- SYN_REPORT ------------
Event: time 1711217354.579153, type 3 (EV_ABS), code 16 (ABS_HAT0X), value 180
Event: time 1711217354.579153, -------------- SYN_REPORT ------------
Event: time 1711217356.979148, type 3 (EV_ABS), code 16 (ABS_HAT0X), value 150
Event: time 1711217356.979148, -------------- SYN_REPORT ------------
Event: time 1711217357.387140, type 3 (EV_ABS), code 16 (ABS_HAT0X), value 180
Event: time 1711217357.387140, -------------- SYN_REPORT ------------
Event: time 1711217358.568135, type 3 (EV_ABS), code 16 (ABS_HAT0X), value 120
Event: time 1711217358.568135, -------------- SYN_REPORT ------------
Event: time 1711217358.765153, type 3 (EV_ABS), code 16 (ABS_HAT0X), value 90
Event: time 1711217358.765153, -------------- SYN_REPORT ------------
Event: time 1711217361.000127, type 3 (EV_ABS), code 16 (ABS_HAT0X), value 30
Event: time 1711217361.000127, -------------- SYN_REPORT ------------
Event: time 1711217362.796119, type 3 (EV_ABS), code 16 (ABS_HAT0X), value 210
Event: time 1711217362.796119, -------------- SYN_REPORT ------------

jstest --event /dev/input/js0
Driver version is 2.1.0.
Joystick (Sanmos Group FR-TEC Raptor MACH 2) has 8 axes (X, Y, Z, Rx, Ry, Rz, Throttle, Hat0X)
and 29 buttons (Trigger, ThumbBtn, ThumbBtn2, TopBtn, TopBtn2, PinkieBtn, BaseBtn, BaseBtn2, BaseBtn3, BaseBtn4, BaseBtn5, BaseBtn6, ?, ?, ?, BtnDead, (null), (null), (null), (null), (null), (null), (null), (null), (null), (null), (null), (null), (null)).
Testing ... (interrupt to exit)
Event: type 129, time 1440314639, number 0, value 0
Event: type 129, time 1440314639, number 1, value 0
Event: type 129, time 1440314639, number 2, value 0
Event: type 129, time 1440314639, number 3, value 0
Event: type 129, time 1440314639, number 4, value 0
Event: type 129, time 1440314639, number 5, value 0
Event: type 129, time 1440314639, number 6, value 0
Event: type 129, time 1440314639, number 7, value 0
Event: type 129, time 1440314639, number 8, value 0
Event: type 129, time 1440314639, number 9, value 0
Event: type 129, time 1440314639, number 10, value 0
Event: type 129, time 1440314639, number 11, value 0
Event: type 129, time 1440314639, number 12, value 0
Event: type 129, time 1440314639, number 13, value 0
Event: type 129, time 1440314639, number 14, value 0
Event: type 129, time 1440314639, number 15, value 0
Event: type 129, time 1440314639, number 16, value 0
Event: type 129, time 1440314639, number 17, value 0
Event: type 129, time 1440314639, number 18, value 0
Event: type 129, time 1440314639, number 19, value 0
Event: type 129, time 1440314639, number 20, value 0
Event: type 129, time 1440314639, number 21, value 0
Event: type 129, time 1440314639, number 22, value 0
Event: type 129, time 1440314639, number 23, value 0
Event: type 129, time 1440314639, number 24, value 0
Event: type 129, time 1440314639, number 25, value 0
Event: type 129, time 1440314639, number 26, value 0
Event: type 129, time 1440314639, number 27, value 0
Event: type 129, time 1440314639, number 28, value 0
Event: type 130, time 1440314639, number 0, value 0
Event: type 130, time 1440314639, number 1, value 0
Event: type 130, time 1440314639, number 2, value -32767
Event: type 130, time 1440314639, number 3, value 0
Event: type 130, time 1440314639, number 4, value 0
Event: type 130, time 1440314639, number 5, value -32767
Event: type 130, time 1440314639, number 6, value -32767
Event: type 130, time 1440314639, number 7, value -32767
Event: type 2, time 1440322859, number 7, value 0
Event: type 2, time 1440325259, number 7, value -16204
Event: type 2, time 1440326512, number 7, value -27007
Event: type 2, time 1440326792, number 7, value -32767
Event: type 2, time 1440327712, number 7, value 27726
Event: type 2, time 1440327902, number 7, value 16924
Event: type 2, time 1440328172, number 7, value 6121
Event: type 2, time 1440328189, number 7, value 0
Event: type 2, time 1440328329, number 7, value -16204
Event: type 2, time 1440328536, number 7, value -27007
Event: type 2, time 1440328552, number 7, value -32767

libinput record
devices:
- node: /dev/input/event2
  evdev:
    # Name: Sanmos Group FR-TEC Raptor MACH 2
    # ID: bus 0x0003 (usb) vendor 0x11c0 product 0x5606 version 0x0100
    # Size in mm: unknown, missing resolution
    # 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 ((null))
    #   Event code 301 ((null))
    #   Event code 302 ((null))
    #   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 type 3 (EV_ABS)
    #   Event code 0 (ABS_X)
    #       Value        1023
    #       Min             0
    #       Max          2047
    #       Fuzz            7
    #       Flat          127
    #       Resolution      0
    #   Event code 1 (ABS_Y)
    #       Value        1023
    #       Min             0
    #       Max          2047
    #       Fuzz            7
    #       Flat          127
    #       Resolution      0
    #   Event code 2 (ABS_Z)
    #       Value           0
    #       Min             0
    #       Max          1023
    #       Fuzz            3
    #       Flat           63
    #       Resolution      0
    #   Event code 3 (ABS_RX)
    #       Value         511
    #       Min             0
    #       Max          1023
    #       Fuzz            3
    #       Flat           63
    #       Resolution      0
    #   Event code 4 (ABS_RY)
    #       Value        1023
    #       Min             0
    #       Max          2047
    #       Fuzz            7
    #       Flat          127
    #       Resolution      0
    #   Event code 5 (ABS_RZ)
    #       Value           0
    #       Min             0
    #       Max          1023
    #       Fuzz            3
    #       Flat           63
    #       Resolution      0
    #   Event code 6 (ABS_THROTTLE)
    #       Value           0
    #       Min             0
    #       Max          1023
    #       Fuzz            3
    #       Flat           63
    #       Resolution      0
    #   Event code 16 (ABS_HAT0X)
    #       Value           0
    #       Min             0
    #       Max           239
    #       Fuzz            0
    #       Flat           14
    #       Resolution      0
    # Event type 4 (EV_MSC)
    #   Event code 4 (MSC_SCAN)
    # Properties:
    name: "Sanmos Group FR-TEC Raptor MACH 2"
    id: [3, 4544, 22022, 256]
    codes:
      0: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15] # EV_SYN
      1: [288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716] # EV_KEY
      3: [0, 1, 2, 3, 4, 5, 6, 16] # EV_ABS
      4: [4] # EV_MSC
    absinfo:
      0: [0, 2047, 7, 127, 0]
      1: [0, 2047, 7, 127, 0]
      2: [0, 1023, 3, 63, 0]
      3: [0, 1023, 3, 63, 0]
      4: [0, 2047, 7, 127, 0]
      5: [0, 1023, 3, 63, 0]
      6: [0, 1023, 3, 63, 0]
      16: [0, 239, 0, 14, 0]
    properties: []
  hid: [
    0x05, 0x01, 0x09, 0x04, 0xa1, 0x01, 0x05, 0x01, 0x85, 0x01, 0x05, 0x01, 0x09, 0x30, 0x75, 0x10, 
    0x95, 0x01, 0x15, 0x00, 0x26, 0xff, 0x07, 0x46, 0xff, 0x07, 0x81, 0x02, 0x05, 0x01, 0x09, 0x31, 
    0x75, 0x10, 0x95, 0x01, 0x15, 0x00, 0x26, 0xff, 0x07, 0x46, 0xff, 0x07, 0x81, 0x02, 0x05, 0x01, 
    0x09, 0x33, 0x75, 0x10, 0x95, 0x01, 0x15, 0x00, 0x26, 0xff, 0x03, 0x46, 0xff, 0x03, 0x81, 0x02, 
    0x05, 0x00, 0x09, 0x00, 0x75, 0x10, 0x95, 0x01, 0x15, 0x00, 0x26, 0xff, 0x03, 0x46, 0xff, 0x03, 
    0x81, 0x02, 0x05, 0x01, 0x09, 0x32, 0x75, 0x10, 0x95, 0x01, 0x15, 0x00, 0x26, 0xff, 0x03, 0x46, 
    0xff, 0x03, 0x81, 0x02, 0x05, 0x01, 0x09, 0x35, 0x75, 0x10, 0x95, 0x01, 0x15, 0x00, 0x26, 0xff, 
    0x03, 0x46, 0xff, 0x03, 0x81, 0x02, 0x05, 0x01, 0x09, 0x34, 0x75, 0x10, 0x95, 0x01, 0x15, 0x00, 
    0x26, 0xff, 0x07, 0x46, 0xff, 0x07, 0x81, 0x02, 0x05, 0x01, 0x09, 0x36, 0x75, 0x10, 0x95, 0x01, 
    0x15, 0x00, 0x26, 0xff, 0x03, 0x46, 0xff, 0x03, 0x81, 0x02, 0x05, 0x09, 0x19, 0x01, 0x2a, 0x1d, 
    0x00, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x96, 0x80, 0x00, 0x81, 0x02, 0x05, 0x01, 0x09, 0x39, 
    0x26, 0xef, 0x00, 0x46, 0x68, 0x01, 0x65, 0x14, 0x75, 0x10, 0x95, 0x01, 0x81, 0x42, 0x05, 0x01, 
    0x09, 0x00, 0x75, 0x08, 0x95, 0x1d, 0x81, 0x01, 0x15, 0x00, 0x26, 0xef, 0x00, 0x85, 0x58, 0x26, 
    0xff, 0x00, 0x46, 0xff, 0x00, 0x75, 0x08, 0x95, 0x3f, 0x09, 0x00, 0x91, 0x02, 0x85, 0x59, 0x75, 
    0x08, 0x95, 0x80, 0x09, 0x00, 0xb1, 0x02, 0xc0
  ]
  udev:
    properties:
    - ID_INPUT=1
    - ID_INPUT_JOYSTICK=1
    - LIBINPUT_DEVICE_GROUP=3/11c0/5606:usb-0000:0a:00.3-1
  quirks:
  events:
   - evdev:
      - [  4,  55012,   3,  16,     180] # EV_ABS / ABS_HAT0X               180 (+180)
      - [  4,  55012,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +1482ms
  - evdev:
      - [  5, 387010,   3,  16,     120] # EV_ABS / ABS_HAT0X               120 (-60)
      - [  5, 387010,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +1332ms
  - evdev:
      - [  6, 461008,   3,  16,      60] # EV_ABS / ABS_HAT0X                60 (-60)
      - [  6, 461008,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +1074ms
  - evdev:
      - [  6, 667008,   3,  16,       0] # EV_ABS / ABS_HAT0X                 0 (-60)
      - [  6, 667008,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +206ms
  - evdev:
      - [  6, 945994,   3,  16,     180] # EV_ABS / ABS_HAT0X               180 (+180)
      - [  6, 945994,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +278ms
  - evdev:
      - [  7,  11008,   3,  16,     150] # EV_ABS / ABS_HAT0X               150 (-30)
      - [  7,  11008,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +66ms
  - evdev:
      - [  7,  67007,   3,  16,     120] # EV_ABS / ABS_HAT0X               120 (-30)
      - [  7,  67007,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +56ms
  - evdev:
      - [  7, 198007,   3,  16,      60] # EV_ABS / ABS_HAT0X                60 (-60)
      - [  7, 198007,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +131ms