[New Device] Logitech G915 TKL
<!-- When naming the support request please title the request as `[New Device] <Name of new device>` Please open one issue per device you would like to add --> ### Name of device: <!-- Please put the name of the product, including manufacturer, beneath this line --> Logitech G915 TKL ### Link to manufacturer's product page: <!-- Please add a link to the manufacturer's product page beneath this line --> https://www.logitechg.com/en-us/products/gaming-keyboards/g915-tkl-wireless.html ### Please select what type of device/interface the device uses: <!-- Please select from one of the following This determines how the device connects to the PC --> ~"DeviceType::USB" <!-- The device connects to an internal header or external usb port --> <!-- Please delete any lines that are not relevant --> ### ID information: <!-- For PCI (GPU) devices we will need the Vendor ID, Device ID, Sub-Vendor ID and Sub-Device IDs In Windows this can be found under the device manager and on Linux this can be found with lspci -vv For USB devices we will need the USB VID and PID --> ``` Bus 002 Device 011: ID 046d:c343 Logitech, Inc. G915 TKL LIGHTSPEED Wireless RGB Mechanical Gaming Keyboard Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 0 bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 idVendor 0x046d Logitech, Inc. idProduct 0xc343 bcdDevice 14.00 iManufacturer 1 Logitech iProduct 2 G915 TKL LIGHTSPEED Wireless RGB Mechanical Gaming Keyboard iSerial 3 4EB658E9 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 0x0054 bNumInterfaces 3 bConfigurationValue 1 iConfiguration 4 MPK14.00_B0017 bmAttributes 0xe0 Self 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 67 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 2 Mouse iInterface 0 HID Device Descriptor: bLength 9 bDescriptorType 33 bcdHID 1.11 bCountryCode 0 Not supported bNumDescriptors 1 bDescriptorType 34 Report wDescriptorLength 123 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 0 bInterfaceProtocol 0 iInterface 0 HID Device Descriptor: bLength 9 bDescriptorType 33 bcdHID 1.11 bCountryCode 0 Not supported bNumDescriptors 1 bDescriptorType 34 Report wDescriptorLength 54 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 can't get device qualifier: Resource temporarily unavailable can't get debug descriptor: Resource temporarily unavailable Device Status: 0x0001 Self Powered ``` ### Please attach screenshots of the device's official control application here: <!-- Screenshots of the official control software should show lists of supported modes, color selection, and zone/LED selection capabilities of the device's official software. --> ![image_2020-12-24_22-46-51](/uploads/bbdc52360c5c0e8edc28fd5ff2a6914d/image_2020-12-24_22-46-51.png) ![image_2020-12-24_22-47-16](/uploads/fa343015e473e258b5b0e6db232c0e6f/image_2020-12-24_22-47-16.png) ![image_2020-12-24_22-47-40](/uploads/cb13d0f1b63bb219c6aed30ee68b5ebb/image_2020-12-24_22-47-40.png) ![image_2020-12-24_22-47-54](/uploads/4efaadc060260aad6740489878bae41b/image_2020-12-24_22-47-54.png) ![image_2020-12-24_22-48-06](/uploads/1d2c10979588455bb9ab01a133878baf/image_2020-12-24_22-48-06.png) ![image_2020-12-24_22-48-18](/uploads/52cdd533e44a71de3e916aa425044d4e/image_2020-12-24_22-48-18.png) ![image_2020-12-24_22-48-31](/uploads/15fa0d76c824aecebe68eab7b97fd537/image_2020-12-24_22-48-31.png) ![image_2020-12-24_22-48-51](/uploads/3ed81a279bb1a8fb2d5a2a74cf06ae56/image_2020-12-24_22-48-51.png) ![image_2020-12-24_22-49-04](/uploads/c1b640a30f77511ad020112d0fc5a441/image_2020-12-24_22-49-04.png) ![image_2020-12-24_22-49-18](/uploads/cb9db12371657cc3c843229f6f5c0d2a/image_2020-12-24_22-49-18.png) ![image_2020-12-24_22-49-39](/uploads/13e2058815363cc9d40fe6a305d5ac98/image_2020-12-24_22-49-39.png) ![image_2020-12-24_22-49-52](/uploads/c225e0cfb5386a2060854fa2fd812802/image_2020-12-24_22-49-52.png) ![image_2020-12-24_22-50-05](/uploads/2b204b7a9ab5f2098549993cd6922268/image_2020-12-24_22-50-05.png) ![image_2020-12-24_22-50-30](/uploads/744a22311f4d5559bf3cb84180f78ebf/image_2020-12-24_22-50-30.png) ![image_2020-12-24_22-50-40](/uploads/529de15a6a08f50cfeeec8437c996bf3/image_2020-12-24_22-50-40.png) ![image_2020-12-24_22-50-55](/uploads/23e11f057b3c653dce895844f4b4cb0f/image_2020-12-24_22-50-55.png) ![image_2020-12-24_22-51-08](/uploads/7d607fc8899b697078bc8920bf67f9e2/image_2020-12-24_22-51-08.png) ![image_2020-12-24_22-51-22](/uploads/9ff7de2f65dab064f5c3181df9951363/image_2020-12-24_22-51-22.png) ![image_2020-12-24_22-51-45](/uploads/0660e998b030ecc3b8711cc731812db3/image_2020-12-24_22-51-45.png) ![image_2020-12-24_22-52-07](/uploads/7a2ab9acc59b3867abdc64b39dae8821/image_2020-12-24_22-52-07.png) ### Please attach device captures here: <!-- If you have code examples from other projects please link them here or alternatively for information on how to capture device packets please refer to the wiki article https://gitlab.com/Dr_No/OpenRGB/-/wikis/OpenRGB-doesn%27t-have-my-device --> Logitech has SDK available. However, I have no idea how useful it is to this project. I see other Logitech RGB keyboards are supported so maybe some implementation already exists. https://www.logitechg.com/en-us/innovation/developer-lab.html I used Lenovo X230 with docking station. USB Root Hub 2 was empty and I connected G915 TKL to this Root Hub and used Wireshark to capture only USBPcap2 interface. [g915_ghub_animation_ocean_wave_cycle_bounce_speed70ms.pcapng](/uploads/397c07beb59e61d85b06c867a8f256b9/g915_ghub_animation_ocean_wave_cycle_bounce_speed70ms.pcapng) [g915_ghub_animations.pcapng](/uploads/5897cb6313d3503ca2e6b9136d3f1d4d/g915_ghub_animations.pcapng) [g915_ghub_freestyle.pcapng](/uploads/821bb2de4c18f77e96540730f149cb2c/g915_ghub_freestyle.pcapng) [g915_ghub_preset_colorwave_rate3000ms_brightness_80percent.pcapng](/uploads/4ed846f7fda8ea35c42bce0abe3b7b5f/g915_ghub_preset_colorwave_rate3000ms_brightness_80percent.pcapng) [g915_ghub_preset_echo_press_0_0_255_101_102_103_speed2000ms.pcapng](/uploads/8c80f1f95ff0dfbdde533003da4783b2/g915_ghub_preset_echo_press_0_0_255_101_102_103_speed2000ms.pcapng) [g915_ghub_preset_ripple_rate50ms_press_qwerty.pcapng](/uploads/a83b4a816c8cd41afbfd8d2c92761ee6/g915_ghub_preset_ripple_rate50ms_press_qwerty.pcapng) [g915_ghub_presets.pcapng](/uploads/adebe02f4a9f8484690877489f88a7f7/g915_ghub_presets.pcapng) <!-- For admin purposes: Please leave this section as is --> # Checklist for Step2 - [X] Name of device - [X] A link to the vendors product page has been included - [X] The transport bus has been identified and the appropriate label added to the issue. - [X] The device ID's have been included for [USB](https://gitlab.com/Dr_No/OpenRGB/-/wikis/USB-Vendor-Identification-and-Product-Identification) or PCI - [X] Screenshots of the OEM Application are included - [X] There is either, appropriate code examples linked or suitable device captures attached <!-- For admin purposes: Please leave this section as is -->
issue