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 Pro Type Ultra -- disabling implicit fnlock for the function keys #1776

Open
albert-kam opened this issue Mar 15, 2022 · 11 comments · May be fixed by #2136
Open

Support for Razer Pro Type Ultra -- disabling implicit fnlock for the function keys #1776

albert-kam opened this issue Mar 15, 2022 · 11 comments · May be fixed by #2136

Comments

@albert-kam
Copy link

Device Info

  • Name: Razer Pro Type Ultra
  • Product Number: RZ03-04110100
  • Model Number: RZ03-0411

Device Information


Bus 001 Device 007: ID 1532:0277 Razer USA, Ltd 
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x1532 Razer USA, Ltd
  idProduct          0x0277 
  bcdDevice            2.00
  iManufacturer           1 
  iProduct                2 
  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              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     0x0040  1x 64 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.11
          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     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      2 Mouse
      iInterface              0 
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.11
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      90
         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

Bus 001 Device 008: ID 1532:0098 Razer USA, Ltd 
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x1532 Razer USA, Ltd
  idProduct          0x0098 
  bcdDevice            2.00
  iManufacturer           1 
  iProduct                2 
  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              500mA
    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      94
         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.11
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength     159
         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     0x0010  1x 16 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      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.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     0x0008  1x 8 bytes
        bInterval               1
total 0
drwxr-xr-x 2 root root 260 Mar 14 14:14 .
drwxr-xr-x 4 root root 820 Mar 14 14:14 ..
lrwxrwxrwx 1 root root  10 Mar 10 15:04 usb-CN07YYTT72487466AT6SA00_Laptop_Integrated_Webcam_HD-event-if00 -> ../event31
lrwxrwxrwx 1 root root  10 Mar 14 09:10 usb-Razer_Pro_Type_Ultra-event-if01 -> ../event14
lrwxrwxrwx 1 root root  10 Mar 14 09:10 usb-Razer_Pro_Type_Ultra-event-kbd -> ../event12
lrwxrwxrwx 1 root root  10 Mar 14 09:10 usb-Razer_Pro_Type_Ultra-if01-event-kbd -> ../event13
lrwxrwxrwx 1 root root  10 Mar 14 09:10 usb-Razer_Pro_Type_Ultra-if02-event-mouse -> ../event17
lrwxrwxrwx 1 root root   9 Mar 14 09:10 usb-Razer_Pro_Type_Ultra-if02-mouse -> ../mouse1
lrwxrwxrwx 1 root root   9 Mar 14 14:14 usb-Razer_Razer_DeathAdder_Essential-event-if01 -> ../event8
lrwxrwxrwx 1 root root   9 Mar 14 14:14 usb-Razer_Razer_DeathAdder_Essential-event-mouse -> ../event6
lrwxrwxrwx 1 root root   9 Mar 14 14:14 usb-Razer_Razer_DeathAdder_Essential-if01-event-kbd -> ../event7
lrwxrwxrwx 1 root root  10 Mar 14 14:14 usb-Razer_Razer_DeathAdder_Essential-if02-event-kbd -> ../event11
lrwxrwxrwx 1 root root   9 Mar 14 14:14 usb-Razer_Razer_DeathAdder_Essential-mouse -> ../mouse0

Packet Captures

To be continued ...

Synapse Screenshots

<Screenshots of all available options as seen on Razer Synapse in a Windows Environment>
To be continued ...

Linux localdebian 4.19.0-18-amd64 #1 SMP Debian 4.19.208-1 (2021-09-29) x86_64 GNU/Linux
Debian 10 Buster

Problems:

  • Pressing function keys such as F1 triggered sound toggling instead of plain F1
  • Pressing fn+F1 triggers plain F1

Expectations:

  • Function keys should be the default, and the multimedia functions should be triggered with fn button

What I have tried:

Please guide me !
Bert

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

gnos28 commented Aug 30, 2022

Hello, anyone here have the skills to make this keyboard working properly ?
or maybe someone with the skills but without the hardware can guide me through the process of closing this issue ?

best regards

@sonovice
Copy link

One of the problems is that F11 and F12 (light keys) are not even propagated as key events to the computer, so at least those two will always be unremappable until someone finds a way to patch the actual keyboard firmware.

@sonovice
Copy link

sonovice commented Sep 9, 2022

On Windows, the Razer Drivers allow to switch the mode.

For Linux, I've come up with this solution: https://gist.github.com/sonovice/8d54608bcf8bc3a76213a21550de3dd8

@David-Taub
Copy link

David-Taub commented Sep 11, 2022

This solved it for me, on Ubuntu 20.04.
kudos!

--update--
Note that this does not work when the keyboard is connected via USB cable, Guessing it changes the dev name to a usb keyboard type...

@pakar
Copy link

pakar commented Jan 6, 2023

Just wanted to give notice that the latest firmware for the Razer Pro Type Ultra now supports to to toggle Fn-lock by "Fn + Esc".

This seems to be fully undocumented by Razer. Search for "Razer Pro Type Ultra firmware" and you should get a link to razer's support-pages with a windows-based firmware-updater.

It worked for me to update the fw from within a virtual Windows 10 machine (virt-manager/KVM) with USB forwarding of both the wireless-dongle + keyboard. Just remember you need to re-forward the device a few times during the update as the USB keyboard reboots, and DON'T disable the forward. Only the mouse is required during the update, but if something goes wrong a second keyboard is probably good to keep around.
For my keyboard it did two updates, ie after first update it reported that another firmware was available.

Got fed up with Razer after this debacle. Not even their support knew about this issue or could answer the Fn question.

Just wanted to drop this info as i know how frustrating the issue is, and undocumented functions are not fun.

Edit : Yea - i was typing frustrated :)

@drasill
Copy link

drasill commented Jan 9, 2023

This is great. Maybe worth closing the issue?

@pakar
Copy link

pakar commented Jan 9, 2023

@drasill Even if the Fn key issue has been resolved it would be nice with support for LED's/Battery level etc.
There are a few other issues that also discuss support for this keyboard. Maybe some admin should review the issues and combine them into a single one and close the rest?

@gnos28
Copy link

gnos28 commented Jan 10, 2023

I confirm firmware update solve the issue

@z3ntu
Copy link
Member

z3ntu commented Jan 11, 2023

Apart from fnlock functionality we can just keep this one open until full OpenRazer support is available for this device.

@z3ntu z3ntu linked a pull request Sep 24, 2023 that will close this issue
@z3ntu
Copy link
Member

z3ntu commented Oct 14, 2023

Pcaps are posted in #2136 (comment)

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

samaniel commented Mar 2, 2024

Another confirm that firmware update makes fn+esc work under linux(ubuntu 22.04) However it would be cool to have openrazer support for other stuff aswell!

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.

8 participants