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 Naga V2 Pro #1952

Open
Xavier-J-Ortiz opened this issue Nov 17, 2022 · 11 comments · May be fixed by #2113
Open

Support for Razer Naga V2 Pro #1952

Xavier-J-Ortiz opened this issue Nov 17, 2022 · 11 comments · May be fixed by #2113

Comments

@Xavier-J-Ortiz
Copy link

Xavier-J-Ortiz commented Nov 17, 2022

Device Info

  • Name: Razer Naga V2 Pro
  • Product Number: RZ01-0440100
  • Model Number: RZ01-0440

Device Information

Bus 001 Device 006: ID 1532:00a8 Razer USA, Ltd Razer Naga V2 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          0x00a8 
  bcdDevice            1.00
  iManufacturer           1 Razer
  iProduct                2 Razer Naga V2 Pro
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0054
    bNumInterfaces          3
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      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.11
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength     100
         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
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      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     314
         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     0x0040  1x 64 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      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     0x83  EP 3 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               1

total 0
drwxr-xr-x 2 root root 260 Nov 16 19:23 .
drwxr-xr-x 4 root root 700 Nov 16 19:23 ..
lrwxrwxrwx 1 root root   9 Nov 16 19:23 usb-GeneralPlus_USB_Audio_Device-event-if03 -> ../event3
lrwxrwxrwx 1 root root   9 Nov 16 19:23 usb-KBDfans_KBD75RGB-event-if02 -> ../event6
lrwxrwxrwx 1 root root   9 Nov 16 19:23 usb-KBDfans_KBD75RGB-event-kbd -> ../event4
lrwxrwxrwx 1 root root   9 Nov 16 19:23 usb-KBDfans_KBD75RGB-if02-event-kbd -> ../event7
lrwxrwxrwx 1 root root  10 Nov 16 19:23 usb-Razer_Razer_Naga_V2_Pro-event-if01 -> ../event11
lrwxrwxrwx 1 root root   9 Nov 16 19:23 usb-Razer_Razer_Naga_V2_Pro-event-mouse -> ../event8
lrwxrwxrwx 1 root root   9 Nov 16 19:23 usb-Razer_Razer_Naga_V2_Pro-if01-event-kbd -> ../event9
lrwxrwxrwx 1 root root  10 Nov 16 19:23 usb-Razer_Razer_Naga_V2_Pro-if01-event-mouse -> ../event10
lrwxrwxrwx 1 root root   9 Nov 16 19:23 usb-Razer_Razer_Naga_V2_Pro-if01-mouse -> ../mouse1
lrwxrwxrwx 1 root root  10 Nov 16 19:23 usb-Razer_Razer_Naga_V2_Pro-if02-event-kbd -> ../event12
lrwxrwxrwx 1 root root   9 Nov 16 19:23 usb-Razer_Razer_Naga_V2_Pro-mouse -> ../mouse0

001:006:002:DESCRIPTOR         1668650887.140778
 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:006:001:DESCRIPTOR         1668650887.141873
 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 05 08 19 01 29 03 15 00
 25 01 75 01 95 03 91 02 95 05 91 01 C0 05 01 09
 02 A1 01 85 0A 09 01 A1 00 05 09 19 01 29 06 15
 00 25 01 75 01 95 06 81 02 75 01 95 02 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 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 05 01 09 00 A1 01 85 08 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 09 09 03 15 00 26 FF 00 35 00
 46 FF 00 75 08 95 0F 81 00 C0

001:006:000:DESCRIPTOR         1668650887.143008
 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
 75 01 95 08 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 06 00 FF 09 02 15 00 25 01 75 08 95
 5A B1 01 C0

Packet Captures

Synapse Screenshots

<Screenshots of all available options as seen on Razer Synapse in a Windows Environment>
image

image

image

image

image

image

@z3ntu z3ntu added the need pcap USB traffic packet captures are useful - see wiki "Reverse Engineering USB Protocol" label Nov 20, 2022
@stlhrt
Copy link

stlhrt commented Jan 12, 2023

nagav2pro_UNpairs_deathstalkerv2_again.pcapng.gz
nagav2pro_wired.pcapng.gz

@stlhrt
Copy link

stlhrt commented Jan 12, 2023

nagav2pro_wired_thumb_panels_and_chroma_on_grid.pcapng.gz

@z3ntu z3ntu removed the need pcap USB traffic packet captures are useful - see wiki "Reverse Engineering USB Protocol" label Jan 15, 2023
@leysont
Copy link

leysont commented Feb 10, 2023

I also have this mouse and want this to work. I don't have any experience with drivers but since AFAIK the Naga V2 Pro should be very similar to the Naga Pro, I cloned this project and added this mouse's name where ever the old one is mentioned and added the IDs. I would test it but I can't get EndeavourOS or Manjaro to work in a VM and DEVELOPMENT.MD mentions that it's not safe to test on the main machine because it could cause kernel panic. Should I make a pull request for someone to test it or is it safe enough to test on my main machine?

@AliceGrey, excuse me for mentioning you but since you added support for the Naga Pro, maybe you can help?

@z3ntu
Copy link
Member

z3ntu commented Feb 11, 2023

@leysont I've always developed this on my main machine, not in a VM so in my opinion unless you do very stupid things it shouldn't be a problem ;) And if you could insmod the module and don't copy it to /lib/modules it's also gone again after a reboot.

@Tech-Aesthetic

This comment was marked as off-topic.

@crusty
Copy link

crusty commented Mar 8, 2023

I also have this mouse and want this to work. I don't have any experience with drivers but since AFAIK the Naga V2 Pro should be very similar to the Naga Pro, I cloned this project and added this mouse's name where ever the old one is mentioned and added the IDs. I would test it but I can't get EndeavourOS or Manjaro to work in a VM and DEVELOPMENT.MD mentions that it's not safe to test on the main machine because it could cause kernel panic. Should I make a pull request for someone to test it or is it safe enough to test on my main machine?

@AliceGrey, excuse me for mentioning you but since you added support for the Naga Pro, maybe you can help?

Unfortunately, there are some significant changes between v1 and v2:

  • v2 doesn't seem to have a separate thumbgrid light effects support (except for the light on/off?)
  • the scroll wheel is fantastic, but its functionality support had not been implemented yet from what I can see

The latter point seems to be the more difficult part (at least for the UI,) since you can set up custom curves...
I've managed to make some of the other functions work though, so not everything has to be adjusted.

@paravane
Copy link

I also have this mouse and want this to work. I don't have any experience with drivers but since AFAIK the Naga V2 Pro should be very similar to the Naga Pro, I cloned this project and added this mouse's name where ever the old one is mentioned and added the IDs. I would test it but I can't get EndeavourOS or Manjaro to work in a VM and DEVELOPMENT.MD mentions that it's not safe to test on the main machine because it could cause kernel panic. Should I make a pull request for someone to test it or is it safe enough to test on my main machine?
@AliceGrey, excuse me for mentioning you but since you added support for the Naga Pro, maybe you can help?

Unfortunately, there are some significant changes between v1 and v2:

* v2 doesn't seem to have a separate thumbgrid light effects support (except for the light on/off?)

* the scroll wheel is fantastic, but its functionality support had not been implemented yet from what I can see

The latter point seems to be the more difficult part (at least for the UI,) since you can set up custom curves... I've managed to make some of the other functions work though, so not everything has to be adjusted.

Realistically I don't care about the fancy scroll wheel curve. I haven't unlocked mine past the "stock".

I'd just want to be able to map the buttons. How'd you go about getting that working?

Also +1 for this mouse being supported please.

@fiercebrake

This comment was marked as off-topic.

@Caedis Caedis linked a pull request Aug 14, 2023 that will close this issue
13 tasks
@ElementSingularity
Copy link

I have this mouse. I want this to work. If there is any way for me to contribute to this project, I will likely need some guidance for any information I can provide. However, I'm willing to do things to make this work.

@crusty
Copy link

crusty commented Jan 22, 2024

I have this mouse. I want this to work. If there is any way for me to contribute to this project, I will likely need some guidance for any information I can provide. However, I'm willing to do things to make this work.

Well, you'd need to figure out a bunch of stuff, which is best if done step at a time:

  1. Make some pcaps of the mouse under Windows and observe what they do in the Razer app under Windows.
  2. On your Linux distribution, figure out how to use udev, udevadm, write udev rules and make your own version of openrazer.
  3. Implement the default functionalities.
  4. If you want, try to figure out how to make new functionalities like supporting the scroll wheel toggles / etc.

You can start with my PR from ages ago:
crusty#1

@z3ntu
Copy link
Member

z3ntu commented Feb 9, 2024

Also https://github.com/openrazer/openrazer/blob/master/DEVELOPMENT.md has some useful information.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

Successfully merging a pull request may close this issue.

9 participants