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

Razer Lachesis #466

Open
joychan469 opened this issue Dec 6, 2017 · 10 comments
Open

Razer Lachesis #466

joychan469 opened this issue Dec 6, 2017 · 10 comments
Labels
Device Support old lighting Devices that are pretty old and use some weird API over the usb bus.

Comments

@joychan469
Copy link

lsusb -d 1532: -v

Bus 009 Device 002: ID 1532:000c Razer USA, Ltd 
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0         8
  idVendor           0x1532 Razer USA, Ltd
  idProduct          0x000c 
  bcdDevice           21.00
  iManufacturer           1 Razer
  iProduct                2 Razer Lachesis
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           59
    bNumInterfaces          2
    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      0 No 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      73
         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     0x0010  1x 16 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.00
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      47
         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
Device Status:     0x0000
  (Bus Powered)

Bus 003 Device 002: ID 1532:021f Razer USA, Ltd 
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x1532 Razer USA, Ltd
  idProduct          0x021f 
  bcdDevice            2.00
  iManufacturer           1 Razer
  iProduct                2 Razer Ornata
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           84
    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     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 No 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     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 No 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     0x83  EP 3 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval               1
Device Status:     0x0000
  (Bus Powered)

ls -lah /dev/input/by-id/

total 0
drwxr-xr-x 2 root root 140 Dec  7 01:16 .
drwxr-xr-x 4 root root 460 Dec  7 01:16 ..
lrwxrwxrwx 1 root root   9 Dec  7 01:16 usb-Razer_Razer_Lachesis-event-mouse -> ../event5
lrwxrwxrwx 1 root root   9 Dec  7 01:16 usb-Razer_Razer_Lachesis-if01-event-kbd -> ../event6
lrwxrwxrwx 1 root root   9 Dec  7 01:16 usb-Razer_Razer_Lachesis-mouse -> ../mouse1
lrwxrwxrwx 1 root root   9 Dec  7 01:16 usb-Razer_Razer_Ornata-event-kbd -> ../event4
lrwxrwxrwx 1 root root   9 Dec  7 01:16 usb-Razer_Razer_Ornata-if01-event-kbd -> ../event7

Screenshots of all available options on Razer Synapse. (not applicable - Not available on Synapse. However, standalone razer software for the Lachesis is.) (Note: 1,2,4,6,5,7 have the exact same menu items. 8 and 9 has "Macro" select by default even though it doesn't exist in the dropdown list.)

2017-12-06 17_31_36-nvidia geforce overlay
2017-12-06 17_32_37-nvidia geforce overlay
2017-12-06 17_33_01-nvidia geforce overlay
2017-12-06 17_33_10-nvidia geforce overlay
2017-12-06 17_33_28-nvidia geforce overlay
2017-12-06 17_33_46-nvidia geforce overlay
2017-12-06 17_34_08-nvidia geforce overlay

Product: Razer Lachesis
Model Number: RZ01-0017
Product Number: RZ01-00170100-R3M1

@z3ntu
Copy link
Member

z3ntu commented Dec 6, 2017

Please make packet captures (see the wiki how to) of:

  • "Scroll Button" on->off->on
  • "Snake Logo" on->off->on
  • Polling rate 125Hz -> 500Hz -> 1000Hz
  • DPI 1000->2000->4000

@z3ntu z3ntu added Device Support need pcap USB traffic packet captures are useful - see wiki "Reverse Engineering USB Protocol" labels Dec 6, 2017
@joychan469
Copy link
Author

Razer-Lachesis-PCAP.zip

@z3ntu
Copy link
Member

z3ntu commented Dec 6, 2017

Thanks. Could you try to make a quick capture (doesn't matter what option) and explicitely save the file in the .pcapng format (instead of .pcap)? Also, what Wireshark version did you use?

@joychan469
Copy link
Author

joychan469 commented Dec 6, 2017

I had trouble with Wireshark (using Windows 10 [not VM]), probably due to my inexperience. So I captured directly from elevated CMD and running USBPcapCMD.exe directly, specifying the filter to monitor (after noting the number), then capturing the movements via this method. Adapted from: http://desowin.org/usbpcap/tour.html

Wireshark presents me with 9 USBPcap "channels" and only USBPcap1 has data. However, data shown from running USBPcapCMD.exe shows that my Lachesis is under USBPcap8. However, ending a capture on USBPcap8 on Wireshark shows a warning that says no packets are captured.

And to answer your question, I'm using Wireshark 2.4.3. Now returning to windows to make the quick capture you wanted in .pcapng

@joychan469
Copy link
Author

Quick-random-capture.zip

2017-12-06 19_43_08-usbpcap

Weird. Now USBPcap8 returns some packets. Maybe its because i've first loaded USBPcapCMD.exe. Let me redo all the captures.

@joychan469
Copy link
Author

PCAPNG.zip

@z3ntu its done.

@Astaoth
Copy link

Astaoth commented Apr 2, 2018

Hello,
I'm also interrested by the lachesis support. Can we have some news about it ? :)
Cheers

@dpalmigiano
Copy link

Yes, please do fill us in. How might we help?

@z3ntu z3ntu removed the need pcap USB traffic packet captures are useful - see wiki "Reverse Engineering USB Protocol" label May 22, 2018
@z3ntu z3ntu added this to the old lighting milestone May 22, 2018
@2ivanpa
Copy link

2ivanpa commented Feb 19, 2021

@z3ntu @dpalmigiano
Hi! As far as I guess issue hasn't been solved yet but was planned to a milestone 2.5 years ago.
So... are you so much behind the schedule or do you have updated planned delivery date?

@z3ntu z3ntu added the old lighting Devices that are pretty old and use some weird API over the usb bus. label Feb 19, 2021
@z3ntu z3ntu removed this from the old lighting milestone Feb 19, 2021
@z3ntu
Copy link
Member

z3ntu commented Feb 27, 2021

@2ivanpa The milestones have been misused as labels, I've fixed that now.

Someone with the device will have to add support to openrazer if this is ever going to be supported. It's a really old device so it uses an old protocol unlike most other devices supported. But we do have a few in the tree, like the Orochi 2011 or the DeathAdder 3.5G, where the Lachesis probably uses a similar structure.
This file https://github.com/mbuesch/razer/blob/master/librazer/hw_lachesis.c from a different project might also come in useful as reference.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Device Support old lighting Devices that are pretty old and use some weird API over the usb bus.
Development

No branches or pull requests

5 participants