Skip to content

Logitech HID

hasu@tmk edited this page Mar 2, 2026 · 3 revisions

Resources

Public documentation for Logitech - See its google drive

https://github.com/Logitech/cpg-docs

HID++ 1.0

https://lekensteyn.nl/files/logitech/logitech_hidpp10_specification_for_Unifying_Receivers.pdf

HID++ 2.0

https://lekensteyn.nl/files/logitech/logitech_hidpp_2.0_specification_draft_2012-06-04.pdf

tool on Linux

Solaar

https://github.com/pwr-Solaar/Solaar

Documents

https://pwr-solaar.github.io/Solaar/

$ pipx install --system-site-packages solaar
  installed package solaar 1.1.19, installed using Python 3.12.3
  These apps are now globally available
    - solaar
done! ✨ 🌟 ✨

$ which solaar 
/home/noname/.local/bin/solaar

$ solaar --version
solaar 1.1.19


$ solaar show
solaar version 1.1.19


MX518 Gaming Mouse
     Device path  : /dev/hidraw1
     USB id       : 046d:C08E
     Codename     : MX518
     Kind         : mouse
     Protocol     : HID++ 4.2
     Report Rate : 1ms
     Serial number: 
     Model ID:      C08E00000000
     Unit ID:       31384706
                 0: U1  40.00.B0004
                 1: BOT 93.00.B0001
     Supports 16 HID++ 2.0 features:
         0: ROOT                   {0000} V0     
         1: FEATURE SET            {0001} V0     
         2: DEVICE FW VERSION      {0003} V2     
            Firmware: 0 U1  40.00.B0004 C08E
            Firmware: 1 BOT 93.00.B0001 AAF0
            Unit ID: 31384706  Model ID: C08E00000000  Transport IDs: {'usbid': 'C08E'}
         3: DEVICE NAME            {0005} V0     
            Name: MX518 Gaming Mouse
            Kind: mouse
         4: unknown:1E00           {001E} V0    hidden 
         5: unknown:1E22           {221E} V0    internal, hidden 
         6: unknown:1EB0           {B01E} V0    internal, hidden 
         7: ADJUSTABLE DPI         {2201} V1     
            Sensitivity (DPI) (saved): 1600
            Sensitivity (DPI)        : 1600
         8: REPORT RATE            {8060} V0     
            Report Rate: 1ms
            Report Rate (saved): 1ms
            Report Rate        : 1ms
         9: ONBOARD PROFILES       {8100} V0     
            Device Mode: On-Board
            Onboard Profiles (saved): Profile 2
            Onboard Profiles        : Profile 2
        10: MOUSE BUTTON SPY       {8110} V0     
        11: DFUCONTROL SIGNED      {00C2} V0     
        12: unknown:1801           {0118} V0    internal, hidden 
        13: DEVICE RESET           {1802} V0     
        14: CONFIG DEVICE PROPS    {1806} V0     
        15: unknown:18B1           {B118} V0    internal, hidden 
     Battery status unavailable.


$ solaar profiles 1
#Dumping profiles from MX518 Gaming Mouse
!OnboardProfiles
buttons: 8
count: 5
gbuttons: 8
name: MX518 Gaming Mouse
profiles:
  1: !OnboardProfile
    angle_snap: 255
    blue: 255
    buttons:
    - !Button {behavior: 8, type: 1, value: 1}
    - !Button {behavior: 8, type: 1, value: 2}
    - !Button {behavior: 8, type: 1, value: 4}
    - !Button {behavior: 8, type: 1, value: 8}
    - !Button {behavior: 8, type: 1, value: 16}
    - !Button {behavior: 9, data: 255, value: 4}
    - !Button {behavior: 9, data: 255, value: 3}
    - !Button {behavior: 9, data: 255, value: 6}
    enabled: 1
    gbuttons:
    - !Button {behavior: 15, bytes: !!binary "/////w==\n"}
    - !Button {behavior: 15, bytes: !!binary "/////w==\n"}
    - !Button {behavior: 15, bytes: !!binary "/////w==\n"}
    - !Button {behavior: 15, bytes: !!binary "/////w==\n"}
    - !Button {behavior: 15, bytes: !!binary "/////w==\n"}
    - !Button {behavior: 15, bytes: !!binary "/////w==\n"}
    - !Button {behavior: 15, bytes: !!binary "/////w==\n"}
    - !Button {behavior: 15, bytes: !!binary "/////w==\n"}
    green: 255
    lighting:
    - !LEDEffectSetting {ID: null, bytes: !!binary "//////////////8=\n"}
    - !LEDEffectSetting {ID: null, bytes: !!binary "//////////////8=\n"}
    - !LEDEffectSetting {ID: null, bytes: !!binary "//////////////8=\n"}
    - !LEDEffectSetting {ID: null, bytes: !!binary "//////////////8=\n"}
    name: ''
    po_timeout: 65535
    power_mode: 255
    ps_timeout: 65535
    red: 255
    report_rate: 1
    reserved: !!binary |
      //////////8=
    resolution_default_index: 1
    resolution_shift_index: 0
    resolutions:
    - 400
    - 800
    - 1600
    - 3200
    - 6400
    sector: 1
    write_count: 65535
  2: !OnboardProfile
    angle_snap: 255
    blue: 255
    buttons:
    - !Button {behavior: 8, type: 1, value: 1}
    - !Button {behavior: 8, type: 1, value: 2}
    - !Button {behavior: 8, type: 1, value: 64}
    - !Button {behavior: 8, type: 1, value: 8}
    - !Button {behavior: 8, type: 1, value: 16}
    - !Button {behavior: 8, type: 1, value: 4}
    - !Button {behavior: 8, modifiers: 1, type: 2, value: 26}
    - !Button {behavior: 8, modifiers: 3, type: 2, value: 23}
    enabled: 1
    gbuttons:
    - !Button {behavior: 15, bytes: !!binary "/////w==\n"}
    - !Button {behavior: 15, bytes: !!binary "/////w==\n"}
    - !Button {behavior: 15, bytes: !!binary "/////w==\n"}
    - !Button {behavior: 15, bytes: !!binary "/////w==\n"}
    - !Button {behavior: 15, bytes: !!binary "/////w==\n"}
    - !Button {behavior: 15, bytes: !!binary "/////w==\n"}
    - !Button {behavior: 15, bytes: !!binary "/////w==\n"}
    - !Button {behavior: 15, bytes: !!binary "/////w==\n"}
    green: 255
    lighting:
    - !LEDEffectSetting {ID: null, bytes: !!binary "//////////////8=\n"}
    - !LEDEffectSetting {ID: null, bytes: !!binary "//////////////8=\n"}
    - !LEDEffectSetting {ID: null, bytes: !!binary "//////////////8=\n"}
    - !LEDEffectSetting {ID: null, bytes: !!binary "//////////////8=\n"}
    name: PROFILE_NAME_DEFAULT
    po_timeout: 65535
    power_mode: 255
    ps_timeout: 65535
    red: 255
    report_rate: 1
    reserved: !!binary |
      //////////8=
    resolution_default_index: 1
    resolution_shift_index: 0
    resolutions:
    - 800
    - 1600
    - 2400
    - 3200
    - 4800
    sector: 2
    write_count: 65535
  3: !OnboardProfile
    angle_snap: 255
    blue: 255
    buttons:
    - !Button {behavior: 8, type: 1, value: 1}
    - !Button {behavior: 8, type: 1, value: 2}
    - !Button {behavior: 8, type: 1, value: 4}
    - !Button {behavior: 8, type: 1, value: 8}
    - !Button {behavior: 8, type: 1, value: 16}
    - !Button {behavior: 8, modifiers: 1, type: 2, value: 6}
    - !Button {behavior: 8, type: 1, value: 4}
    - !Button {behavior: 9, data: 16, value: 5}
    enabled: 1
    gbuttons:
    - !Button {behavior: 15, bytes: !!binary "/////w==\n"}
    - !Button {behavior: 15, bytes: !!binary "/////w==\n"}
    - !Button {behavior: 15, bytes: !!binary "/////w==\n"}
    - !Button {behavior: 15, bytes: !!binary "/////w==\n"}
    - !Button {behavior: 15, bytes: !!binary "/////w==\n"}
    - !Button {behavior: 15, bytes: !!binary "/////w==\n"}
    - !Button {behavior: 15, bytes: !!binary "/////w==\n"}
    - !Button {behavior: 15, bytes: !!binary "/////w==\n"}
    green: 255
    lighting:
    - !LEDEffectSetting {ID: null, bytes: !!binary "//////////////8=\n"}
    - !LEDEffectSetting {ID: null, bytes: !!binary "//////////////8=\n"}
    - !LEDEffectSetting {ID: null, bytes: !!binary "//////////////8=\n"}
    - !LEDEffectSetting {ID: null, bytes: !!binary "//////////////8=\n"}
    name: PROFILE_NAME_DEFAULT
    po_timeout: 65535
    power_mode: 255
    ps_timeout: 65535
    red: 255
    report_rate: 1
    reserved: !!binary |
      //////////8=
    resolution_default_index: 2
    resolution_shift_index: 1
    resolutions:
    - 400
    - 800
    - 1000
    - 1200
    - 1600
    sector: 3
    write_count: 65535
  4: !OnboardProfile
    angle_snap: 255
    blue: 255
    buttons:
    - !Button {behavior: 8, type: 1, value: 1}
    - !Button {behavior: 8, type: 1, value: 2}
    - !Button {behavior: 8, type: 1, value: 4}
    - !Button {behavior: 8, type: 1, value: 8}
    - !Button {behavior: 8, type: 1, value: 16}
    - !Button {behavior: 9, data: 255, value: 4}
    - !Button {behavior: 9, data: 255, value: 3}
    - !Button {behavior: 9, data: 255, value: 6}
    enabled: 0
    gbuttons:
    - !Button {behavior: 15, bytes: !!binary "/////w==\n"}
    - !Button {behavior: 15, bytes: !!binary "/////w==\n"}
    - !Button {behavior: 15, bytes: !!binary "/////w==\n"}
    - !Button {behavior: 15, bytes: !!binary "/////w==\n"}
    - !Button {behavior: 15, bytes: !!binary "/////w==\n"}
    - !Button {behavior: 15, bytes: !!binary "/////w==\n"}
    - !Button {behavior: 15, bytes: !!binary "/////w==\n"}
    - !Button {behavior: 15, bytes: !!binary "/////w==\n"}
    green: 255
    lighting:
    - !LEDEffectSetting {ID: null, bytes: !!binary "//////////////8=\n"}
    - !LEDEffectSetting {ID: null, bytes: !!binary "//////////////8=\n"}
    - !LEDEffectSetting {ID: null, bytes: !!binary "//////////////8=\n"}
    - !LEDEffectSetting {ID: null, bytes: !!binary "//////////////8=\n"}
    name: "\u914D\u7F6E\u6587\u4EF6 4"
    po_timeout: 65535
    power_mode: 255
    ps_timeout: 65535
    red: 255
    report_rate: 1
    reserved: !!binary |
      //////////8=
    resolution_default_index: 1
    resolution_shift_index: 0
    resolutions:
    - 400
    - 800
    - 1600
    - 3200
    - 6400
    sector: 4
    write_count: 65535
  5: !OnboardProfile
    angle_snap: 0
    blue: 255
    buttons:
    - !Button {behavior: 8, type: 1, value: 1}
    - !Button {behavior: 8, type: 1, value: 2}
    - !Button {behavior: 8, type: 1, value: 4}
    - !Button {behavior: 8, type: 1, value: 8}
    - !Button {behavior: 8, type: 1, value: 16}
    - !Button {behavior: 9, data: 255, value: 4}
    - !Button {behavior: 9, data: 255, value: 3}
    - !Button {behavior: 9, data: 255, value: 6}
    enabled: 0
    gbuttons:
    - !Button {behavior: 8, type: 1, value: 1}
    - !Button {behavior: 8, type: 1, value: 2}
    - !Button {behavior: 8, type: 1, value: 4}
    - !Button {behavior: 8, type: 1, value: 8}
    - !Button {behavior: 8, type: 1, value: 16}
    - !Button {behavior: 9, data: 255, value: 4}
    - !Button {behavior: 9, data: 255, value: 3}
    - !Button {behavior: 9, data: 255, value: 6}
    green: 255
    lighting:
    - !LEDEffectSetting {ID: null, bytes: !!binary "//////////////8=\n"}
    - !LEDEffectSetting {ID: null, bytes: !!binary "//////////////8=\n"}
    - !LEDEffectSetting {ID: null, bytes: !!binary "//////////////8=\n"}
    - !LEDEffectSetting {ID: null, bytes: !!binary "//////////////8=\n"}
    name: "\u914D\u7F6E\u6587\u4EF6 5"
    po_timeout: 65535
    power_mode: 255
    ps_timeout: 65535
    red: 255
    report_rate: 1
    reserved: !!binary |
      //////////8=
    resolution_default_index: 1
    resolution_shift_index: 0
    resolutions:
    - 400
    - 800
    - 1600
    - 3200
    - 6400
    sector: 5
    write_count: 2
sectors: 16
size: 256
version: 3

Clone this wiki locally