openrazer icon indicating copy to clipboard operation
openrazer copied to clipboard

Support for Razer Blackwidow V4 75%

Open vihu opened this issue 2 years ago • 5 comments

Product link

https://www.razer.com/gaming-keyboards/Razer-BlackWidow-V4-75/RZ03-05000200-R3U1

Device Info

  • Name: Razer Blackwidow V4 75%
  • Product Number: RZ03-05000200-R3U1
  • Model Number: RZ03-0500

Device Information

Bus 003 Device 007: ID 1532:02a5 Razer USA, Ltd Razer BlackWidow V4 75%
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x1532 Razer USA, Ltd
  idProduct          0x02a5 
  bcdDevice            1.01
  iManufacturer           1 Razer
  iProduct                2 Razer BlackWidow V4 75%
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0086
    bNumInterfaces          5
    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     177
         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     0x0016  1x 22 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      88
         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     0x84  EP 4 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        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     348
         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     0x0002  1x 2 bytes
        bInterval               1
Device Qualifier (for other device speed):
  bLength                10
  bDescriptorType         6
  bcdUSB               2.00
  bDeviceClass            0 
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  bNumConfigurations      0
Device Status:     0x0000
  (Bus Powered)

❯ ls -lah /dev/input/by-id/usb-Razer*
lrwxrwxrwx 1 root root 10 Sep  9 12:57 /dev/input/by-id/usb-Razer_Razer_BlackWidow_V4_75_-event-if01 -> ../event23
lrwxrwxrwx 1 root root 10 Sep  9 12:57 /dev/input/by-id/usb-Razer_Razer_BlackWidow_V4_75_-event-if04 -> ../event25
lrwxrwxrwx 1 root root 10 Sep  9 12:57 /dev/input/by-id/usb-Razer_Razer_BlackWidow_V4_75_-event-kbd -> ../event21
lrwxrwxrwx 1 root root 10 Sep  9 12:57 /dev/input/by-id/usb-Razer_Razer_BlackWidow_V4_75_-if01-event-kbd -> ../event22
lrwxrwxrwx 1 root root 10 Sep  9 12:57 /dev/input/by-id/usb-Razer_Razer_BlackWidow_V4_75_-if02-event-mouse -> ../event24
lrwxrwxrwx 1 root root  9 Sep  9 12:57 /dev/input/by-id/usb-Razer_Razer_BlackWidow_V4_75_-if02-mouse -> ../mouse2
003:007:004:DESCRIPTOR         1694287762.099695
 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 2C 09 2D 15
 00 26 FF 00 75 08 95 05 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 51 09 52 09 53 09 51 09 52 09 53
 09 51 09 52 09 53 09 51 09 52 09 53 09 51 09 52
 09 53 09 51 09 52 09 53 09 51 09 52 09 53 15 00
 26 FF 00 75 08 95 18 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 15 00 26 FF 00 75 08 95 03 B1 02 C0 85
 06 09 70 A1 02 09 71 15 00 25 01 75 08 95 01 B1
 02 C0 85 07 06 00 FF 15 00 26 FF 00 09 02 75 08
 95 3F B1 02 C0 05 0C 09 01 A1 01 85 08 19 D0 29
 D7 15 00 25 01 75 01 95 08 81 02 C0

003:007:003:DESCRIPTOR         1694287762.105428
 05 01 09 00 A1 01 06 00 FF 09 03 15 00 25 01 75
 08 95 5A B1 01 C0

003:007:002:DESCRIPTOR         1694287762.113735
 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 75 08 95 01 81 03 05 0C 0A 38 02 15 81
 25 7F 75 08 95 01 81 06 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

003:007:001:DESCRIPTOR         1694287762.123723
 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 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 13 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 14 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 15 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 15 81 00
 C0

003:007:000:DESCRIPTOR         1694287762.129439
 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 don't have packet capture setup yet.

Synapse Screenshots

Screenshot 2023-09-09 123809

Screenshot 2023-09-09 123737

vihu avatar Sep 09 '23 19:09 vihu

Hi Can someone guide me how to add pcap?

o-lenczyk avatar Jan 13 '24 13:01 o-lenczyk

Hi Can someone guide me how to add pcap?

https://github.com/openrazer/openrazer/wiki/Reverse-Engineering-USB-Protocol

JaxxArmstrong avatar Feb 05 '24 14:02 JaxxArmstrong

Checking in to see if there are any plans to support this device in the future.

4sa617 avatar Apr 09 '24 14:04 4sa617

@4sa617 Somebody will need to add support for the device. This doc should outline basically what needs to be done: https://github.com/openrazer/openrazer/blob/master/DEVELOPMENT.md

z3ntu avatar Apr 09 '24 17:04 z3ntu

@4sa617 I no longer have this keyboard unfortunately but the biggest blocker here are the packet capture files. Hopefully someone can post those here.

vihu avatar Apr 09 '24 17:04 vihu