Support for Razer Blackwidow V4 75%
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
Hi Can someone guide me how to add pcap?
Hi Can someone guide me how to add pcap?
https://github.com/openrazer/openrazer/wiki/Reverse-Engineering-USB-Protocol
Checking in to see if there are any plans to support this device in the future.
@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
@4sa617 I no longer have this keyboard unfortunately but the biggest blocker here are the packet capture files. Hopefully someone can post those here.