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

Support for Razer Huntsman V3 Pro #2229

Open
mrhoomanwastaken opened this issue Mar 31, 2024 · 4 comments
Open

Support for Razer Huntsman V3 Pro #2229

mrhoomanwastaken opened this issue Mar 31, 2024 · 4 comments
Labels
Device Support need pcap USB traffic packet captures are useful - see wiki "Reverse Engineering USB Protocol"

Comments

@mrhoomanwastaken
Copy link

mrhoomanwastaken commented Mar 31, 2024

Device Info

  • Name: razer huntsman v3 pro
  • Product Number: RZ03-04970200-R3U1
  • Model Number: RZ03-0497

Device Information

Bus 001 Device 006: ID 1532:02a6 Razer USA, Ltd Razer Huntsman V3 Pro
Couldn't open device, some information will be missing
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x1532 Razer USA, Ltd
  idProduct          0x02a6 
  bcdDevice            1.01
  iManufacturer           1 Razer
  iProduct                2 Razer Huntsman V3 Pro
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x00a6
    bNumInterfaces          6
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower              500mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      1 Boot Interface Subclass
      bInterfaceProtocol      1 Keyboard
      iInterface              0 
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.11
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      61
         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     0x0008  1x 8 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      0 
      bInterfaceProtocol      1 Keyboard
      iInterface              0 
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.00
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength     237
         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     0x0030  1x 48 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      1 Boot Interface Subclass
      bInterfaceProtocol      2 Mouse
      iInterface              0 
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.00
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      79
         Report Descriptors: 
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        3
      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      22
         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     0x0008  1x 8 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        4
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      0 
      bInterfaceProtocol      1 Keyboard
      iInterface              0 
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.00
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength     327
         Report Descriptors: 
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x84  EP 4 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0002  1x 2 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        5
      bAlternateSetting       0
      bNumEndpoints           2
      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      30
         Report Descriptors: 
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x85  EP 5 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               4
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x05  EP 5 OUT
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               4

Please post the output of
    ls -lah /dev/input/by-id/
total 0
drwxr-xr-x 2 root root 280 Mar 30 22:09 .
drwxr-xr-x 4 root root 680 Mar 30 22:09 ..
lrwxrwxrwx 1 root root  10 Mar 29 18:53 usb-Performance_Designed_Products_PDP_Afterglow_Wave_Wired_Controller_for_Xbox_Series_X_00005790F87B1AE4-event-joystick -> ../event25
lrwxrwxrwx 1 root root   6 Mar 29 18:53 usb-Performance_Designed_Products_PDP_Afterglow_Wave_Wired_Controller_for_Xbox_Series_X_00005790F87B1AE4-joystick -> ../js0
lrwxrwxrwx 1 root root   9 Mar 30 22:09 usb-Razer_Razer_DeathAdder_Elite-event-mouse -> ../event6
lrwxrwxrwx 1 root root   9 Mar 30 22:09 usb-Razer_Razer_DeathAdder_Elite-if01-event-kbd -> ../event5
lrwxrwxrwx 1 root root   9 Mar 30 22:09 usb-Razer_Razer_DeathAdder_Elite-if02-event-kbd -> ../event3
lrwxrwxrwx 1 root root   9 Mar 30 22:09 usb-Razer_Razer_DeathAdder_Elite-mouse -> ../mouse0
lrwxrwxrwx 1 root root  10 Mar 30 22:09 usb-Razer_Razer_Huntsman_V3_Pro-event-if01 -> ../event18
lrwxrwxrwx 1 root root  10 Mar 30 22:09 usb-Razer_Razer_Huntsman_V3_Pro-event-kbd -> ../event24
lrwxrwxrwx 1 root root  10 Mar 30 22:09 usb-Razer_Razer_Huntsman_V3_Pro-if01-event-kbd -> ../event14
lrwxrwxrwx 1 root root  10 Mar 30 22:09 usb-Razer_Razer_Huntsman_V3_Pro-if02-event-mouse -> ../event12
lrwxrwxrwx 1 root root   9 Mar 30 22:09 usb-Razer_Razer_Huntsman_V3_Pro-if02-mouse -> ../mouse1
lrwxrwxrwx 1 root root   9 Mar 30 22:09 usb-Razer_Razer_Kraken_V3_X_00000000-event-if03 -> ../event8

Please post the output of
    usbhid-dump -m 1532 -ed
001:010:002:DESCRIPTOR         1711858185.092569
 05 01 09 06 A1 01 05 07 19 E0 29 E7 15 00 25 01
 75 01 95 08 81 02 81 01 19 00 2A FF 00 15 00 26
 FF 00 75 08 95 06 81 00 05 08 19 01 29 03 15 00
 25 01 75 01 95 03 91 02 95 05 91 01 C0

001:010:001:DESCRIPTOR         1711858185.093076
 05 01 09 06 A1 01 85 01 05 07 19 E0 29 E7 15 00
 25 01 75 01 95 08 81 02 19 00 2A FF 00 15 00 26
 FF 00 75 08 95 0E 81 00 C0 05 0C 09 01 A1 01 85
 02 19 00 2A 3C 02 15 00 26 3C 02 95 01 75 10 81
 00 75 08 95 0D 81 01 C0 05 01 09 80 A1 01 85 03
 19 81 29 83 15 00 25 01 75 01 95 03 81 02 95 05
 81 01 75 08 95 0E 81 01 C0 05 01 09 00 A1 01 85
 04 09 03 15 00 26 FF 00 35 00 46 FF 00 75 08 95
 0F 81 00 C0 05 01 09 00 A1 01 85 05 09 03 15 00
 26 FF 00 35 00 46 FF 00 75 08 95 0F 81 00 C0

001:010:000:DESCRIPTOR         1711858185.093437
 05 01 09 02 A1 01 09 01 A1 00 05 09 19 01 29 05
 15 00 25 01 75 01 95 05 81 02 75 01 95 03 81 03
 06 00 FF 09 40 75 08 95 02 15 81 25 7F 81 02 05
 01 09 38 15 81 25 7F 75 08 95 01 81 06 09 30 09
 31 16 00 80 26 FF 7F 75 10 95 02 81 06 C0 06 00
 FF 09 02 15 00 25 01 75 08 95 5A B1 01 C0

001:008:003:DESCRIPTOR         1711858185.224128
 05 0C 09 01 A1 01 85 01 15 00 25 01 75 01 09 E9
 09 EA 95 02 81 06 95 06 81 01 85 02 05 0C 09 00
 95 10 81 02 85 04 09 00 75 08 95 24 91 02 85 05
 09 00 95 20 81 02 85 06 09 00 95 24 91 02 85 30
 09 00 95 0F 81 02 85 31 09 00 95 10 91 02 85 32
 09 00 95 01 91 02 85 40 09 00 75 08 95 08 91 02
 85 41 09 00 75 08 95 08 81 02 85 50 09 00 75 08
 95 08 91 02 85 07 09 00 95 20 81 02 C0 05 0B 09
 05 A1 01 85 08 09 00 95 01 81 02 85 0A 15 00 25
 01 09 2F 75 01 95 01 81 06 09 20 09 21 75 01 95
 02 81 22 95 05 81 01 05 08 85 09 09 09 75 01 95
 01 91 22 95 07 91 01 85 17 09 17 75 01 95 01 91
 22 95 07 91 01 85 21 09 21 75 01 95 01 91 22 95
 07 91 01 85 1A 09 18 75 01 95 01 91 22 95 07 91
 01 C0 06 A0 FF 09 01 A1 01 85 23 09 AA 75 08 95
 28 B1 02 C0

001:006:005:DESCRIPTOR         1711858185.224376
 06 00 FF 09 00 A1 01 15 00 26 FF 00 19 00 2A FF
 00 75 08 95 40 09 00 81 02 09 00 91 02 C0

001:006:004:DESCRIPTOR         1711858185.224560
 05 59 09 01 A1 01 85 01 09 02 A1 02 09 03 15 00
 27 FF FF 00 00 75 10 95 01 B1 03 09 04 09 05 09
 06 09 07 09 08 15 00 27 FF FF FF 7F 75 20 95 05
 B1 03 C0 85 02 09 20 A1 02 09 21 15 00 27 FF FF
 00 00 75 10 95 01 B1 02 C0 85 03 09 22 A1 02 09
 21 15 00 27 FF FF 00 00 75 10 95 01 B1 02 09 23
 09 24 09 25 09 27 09 26 15 00 27 FF FF FF 7F 75
 20 95 05 B1 02 09 28 09 29 09 2A 09 2B 09 2C 09
 2D 15 00 26 FF 00 75 08 95 06 B1 02 C0 85 04 09
 50 A1 02 09 03 09 55 15 00 25 08 75 08 95 02 B1
 02 09 21 15 00 27 FF FF 00 00 75 10 95 08 B1 02
 09 51 09 52 09 53 09 54 09 51 09 52 09 53 09 54
 09 51 09 52 09 53 09 54 09 51 09 52 09 53 09 54
 09 51 09 52 09 53 09 54 09 51 09 52 09 53 09 54
 09 51 09 52 09 53 09 54 09 51 09 52 09 53 09 54
 15 00 26 FF 00 75 08 95 20 B1 02 C0 85 05 09 60
 A1 02 09 55 15 00 25 08 75 08 95 01 B1 02 09 61
 09 62 15 00 27 FF FF 00 00 75 10 95 02 B1 02 09
 51 09 52 09 53 09 54 15 00 26 FF 00 75 08 95 04
 B1 02 C0 85 06 09 70 A1 02 09 71 15 00 25 01 75
 08 95 01 B1 02 C0 C0

001:006:002:DESCRIPTOR         1711858185.224799
 05 01 09 02 A1 01 09 01 A1 00 05 09 19 01 29 05
 15 00 25 01 75 01 95 05 81 02 75 01 95 03 81 03
 06 00 FF 09 40 75 08 95 02 15 81 25 7F 81 02 05
 01 09 38 15 81 25 7F 75 08 95 01 81 06 09 30 09
 31 16 00 80 26 FF 7F 75 10 95 02 81 06 C0 C0

001:006:001:DESCRIPTOR         1711858185.225085
 05 01 09 06 A1 01 85 01 05 07 19 E0 29 E7 15 00
 25 01 75 01 95 08 81 02 19 00 29 A0 15 00 25 01
 75 01 95 A0 81 02 75 08 95 1A 81 01 05 08 19 01
 29 03 15 00 25 01 75 01 95 03 91 02 95 05 91 01
 C0 05 0C 09 01 A1 01 85 02 19 00 2A 3C 02 15 00
 26 3C 02 95 01 75 10 81 00 75 08 95 2D 81 01 C0
 05 01 09 80 A1 01 85 03 19 81 29 83 15 00 25 01
 75 01 95 03 81 02 95 05 81 01 75 08 95 2E 81 01
 C0 05 01 09 00 A1 01 85 04 09 03 15 00 26 FF 00
 35 00 46 FF 00 75 08 95 2F 81 00 C0 05 01 09 00
 A1 01 85 05 09 03 15 00 26 FF 00 35 00 46 FF 00
 75 08 95 2F 81 00 C0 05 01 09 00 A1 01 85 07 09
 03 15 00 26 FF 00 35 00 46 FF 00 75 08 95 2F 81
 00 C0 05 01 09 00 A1 01 85 0B 09 03 15 00 26 FF
 00 35 00 46 FF 00 75 08 95 2F 81 00 C0

001:006:000:DESCRIPTOR         1711858185.225282
 05 01 09 06 A1 01 05 07 19 E0 29 E7 15 00 25 01
 75 01 95 08 81 02 81 01 19 00 2A FF 00 15 00 26
 FF 00 75 08 95 06 81 00 05 08 19 01 29 03 15 00
 25 01 75 01 95 03 91 02 95 05 91 01 C0


Packet Captures

i am ready to capture packets just tell me what info you need.

Synapse Screenshots

Screenshot from 2024-03-30 22-06-42
Screenshot from 2024-03-30 22-06-49
Screenshot from 2024-03-30 22-07-10

@z3ntu z3ntu added the need pcap USB traffic packet captures are useful - see wiki "Reverse Engineering USB Protocol" label Apr 4, 2024
@z3ntu
Copy link
Member

z3ntu commented Apr 4, 2024

Thanks for opening! If you want you can probably implement support for this device yourself, see https://github.com/openrazer/openrazer/blob/master/DEVELOPMENT.md . If you can provide some USB packet captures of Razer Synapse on Windows interacting with the device, I could give some hints what code paths you'd need to take in OpenRazer. https://github.com/openrazer/openrazer/wiki/Reverse-Engineering-USB-Protocol

@mrhoomanwastaken
Copy link
Author

@z3ntu hello,
i have everything ready to capture packets, i just need to know what info you want. ie. what do you want me to do in razer Synapse app, as i do not know what is the proper procedure for that part.

@z3ntu
Copy link
Member

z3ntu commented Apr 8, 2024

Start Wireshark capture. Open Synapse, click around a bit, changing effects, brightness and whatever you see in the UI that does something on the device. Stop capture. That should be enough :)

@z3ntu z3ntu changed the title Support for razer huntsman v3 pro Support for Razer Huntsman V3 Pro Apr 8, 2024
@halanm

This comment was marked as off-topic.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Device Support need pcap USB traffic packet captures are useful - see wiki "Reverse Engineering USB Protocol"
Development

No branches or pull requests

3 participants