pwr-Solaar / Solaar

Linux device manager for Logitech devices
https://pwr-solaar.github.io/Solaar
GNU General Public License v2.0
5.54k stars 410 forks source link

Logitech G Pro Wireless Headset sidetone, equalizer, and battery support #1615

Closed tarneaux closed 2 years ago

tarneaux commented 2 years ago

USB and Bluetooth Devices

1: Logitech PRO X Wireless Gaming Headset Device path : /dev/hidraw0 USB id : 046d:0ABA Codename : PRO Headset Kind : headset Protocol : HID++ 4.2 Serial number: Model ID: 000000000ABA Unit ID: FFFFFFFF Firmware: U1 12.01.B0203 Supports 7 HID++ 2.0 features: 0: ROOT {0000}
1: FEATURE SET {0001}
2: DEVICE FW VERSION {0003}
Firmware: Firmware U1 12.01.B0203 0ABA Unit ID: FFFFFFFF Model ID: 000000000ABA Transport IDs: {'btid': '0000', 'btleid': '0000'} 3: DEVICE NAME {0005}
Name: PRO X Wireless Gaming Headset Kind: None 4: EQUALIZER {8310}
5: SIDETONE {8300}
6: ADC MEASUREMENT {1F20}
Battery status unavailable.


**Is your feature request related to a problem? Please describe.**
I just want to be able to change the sidetone and see the battery status without rebooting and going into windows (that's actually the only reason why it's still on my machine)

**Describe the solution you'd like**
I'd like to be able to see the battery status and change the sidetone value in the GUI or with `solaar config logitech` (which shows:

solaar: error: Traceback (most recent call last): File "/usr/lib/python3.10/site-packages/solaar/cli/init.py", line 205, in run m.run(c, args, _find_receiver, _find_device) File "/usr/lib/python3.10/site-packages/solaar/cli/config.py", line 164, in run raise Exception('no settings for %s' % dev.name) Exception: no settings for Logitech PRO X Wireless Gaming Headset


)

**Describe alternatives you've considered**
switching to windows just for that and then coming back

**Additional context**
I think the value is currently 50% or so, if that can help.
JonasunderscoreJones commented 2 years ago

But I hear no difference with the equalizer settings

pfps commented 2 years ago

Yes, but there is progress. Solaar is writing values to the deivce but the device is complaining that they are somehow invalid. The first thing to try is to set the values to something smaller. You may have to go into the config file and change the values there first. Try values like 8 and -8 instead of 12 and -12. Then run Solaar (again as bin/solaar -ddd and try to change one of the zero values to 4. If that produces an error post the result. Otherwise try decrementing one value until an error is produced. If no error results, try incrementing a value.

pfps commented 2 years ago

Then remove the config file and try bin/solaar -ddd again. Post this result.

JonasunderscoreJones commented 2 years ago

When doing some testing I once got the following error which had never happened before (may be important):

19:12:43,451     INFO [MainThread] root: language en_US (UTF-8), translations path None
Gtk-Message: 19:12:43.941: Failed to load module "appmenu-gtk-module"
19:12:43,954  WARNING [MainThread] solaar.gtk: Solaar udev file not found in expected location
19:12:43,955  WARNING [MainThread] solaar.gtk: See https://pwr-solaar.github.io/Solaar/installation for more information
19:12:44,496     INFO [MainThread] logitech_receiver.diversion: GDK Keymap set up
19:12:44,532    DEBUG [MainThread] solaar.ui.tray: using StatusIcon
19:12:44,576     INFO [MainThread] solaar.upower: connected to system dbus, watching for suspend/resume events
19:12:44,595    DEBUG [MainThread] solaar.ui: startup registered=True, remote=False
19:12:44,598    DEBUG [AsyncUI] solaar.tasks: started
19:12:44,600     INFO [MainThread] solaar.ui.notify: starting desktop notifications

(solaar:14851): Gdk-WARNING **: 19:12:44.827: The program 'solaar' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadWindow (invalid Window parameter)'.
  (Details: serial 257 error_code 3 request_code 18 (core protocol) minor_code 0)
  (Note to programmers: normally, X errors are reported asynchronously;
   that is, you will receive the error a while after causing it.
   To debug your program, run it with the GDK_SYNCHRONIZE environment
   variable to change this behavior. You can then get a meaningful
   backtrace from your debugger if you break on the gdk_x_error() function.)

but when i put all values back to 0 manually in the config file or remove the config file, this error occurs:

19:35:41,945     INFO [MainThread] root: language en_US (UTF-8), translations path None
Gtk-Message: 19:35:42.107: Failed to load module "appmenu-gtk-module"
19:35:42,109  WARNING [MainThread] solaar.gtk: Solaar udev file not found in expected location
19:35:42,109  WARNING [MainThread] solaar.gtk: See https://pwr-solaar.github.io/Solaar/installation for more information
19:35:42,241     INFO [MainThread] logitech_receiver.diversion: GDK Keymap set up
19:35:42,248    DEBUG [MainThread] solaar.ui.tray: using StatusIcon
19:35:42,258     INFO [MainThread] solaar.upower: connected to system dbus, watching for suspend/resume events
19:35:42,261    DEBUG [MainThread] solaar.ui: startup registered=True, remote=False
19:35:42,262    DEBUG [AsyncUI] solaar.tasks: started
19:35:42,264     INFO [MainThread] solaar.ui.notify: starting desktop notifications
19:35:42,357    DEBUG [MainThread] solaar.ui.icons: sys.path[0] = /home/jonas_jones/Downloads/Solaar/lib
19:35:42,358    DEBUG [MainThread] solaar.ui.icons: looking for icons in /home/jonas_jones/Downloads/Solaar/icons
19:35:42,358    DEBUG [MainThread] solaar.ui.icons: looking for icons in /home/jonas_jones/Downloads/Solaar/share/solaar/icons
19:35:42,359    DEBUG [MainThread] solaar.ui.icons: icon theme paths: ['/home/jonas_jones/Downloads/Solaar/share/solaar/icons', '/home/jonas_jones/.local/share/icons', '/home/jonas_jones/.icons', '/home/jonas_jones/.local/share/flatpak/exports/share/icons', '/var/lib/flatpak/exports/share/icons', '/usr/local/share/icons', '/usr/share/icons', '/home/jonas_jones/.local/share/flatpak/exports/share/pixmaps', '/var/lib/flatpak/exports/share/pixmaps', '/usr/local/share/pixmaps', '/usr/share/pixmaps']
19:35:42,509     INFO [MainThread] solaar.listener: starting receiver listening threads
19:35:42,538    DEBUG [MainThread] hidapi.udev: Found device BID 0003 VID 0000046D PID 0000C08B INTERFACE 0 FILTER 1
19:35:42,539    DEBUG [MainThread] hidapi.udev: Found device BID 0003 VID 0000046D PID 0000C08B INTERFACE 1 FILTER 1
19:35:42,539     INFO [MainThread] solaar.listener: receiver event add DeviceInfo(path='/dev/hidraw8', vendor_id='046D', product_id='C08B', serial='0D7E39603034', release=None, manufacturer=None, product=None, interface=1, driver='hid-generic', bus_id=3, isDevice=True)
19:35:42,540    DEBUG [MainThread] logitech_receiver.base: (13) pinging device 255
19:35:42,540     INFO [MainThread] logitech_receiver.base: New lock 13
19:35:42,540    DEBUG [MainThread] logitech_receiver.base: (13) <= w[10 FF 0018 0000C2]
19:35:42,543    DEBUG [MainThread] logitech_receiver.base: (13) => r[11 FF 0018 0402C200000000000000000000000000]
19:35:42,543    DEBUG [MainThread] logitech_receiver.base: (13) <= w[11 FF 000C 00010000000000000000000000000000]
19:35:42,547    DEBUG [MainThread] logitech_receiver.base: (13) => r[11 FF 000C 01000100000000000000000000000000]
19:35:42,547    DEBUG [MainThread] logitech_receiver.base: (13) <= w[11 FF 010D 00000000000000000000000000000000]
19:35:42,551    DEBUG [MainThread] logitech_receiver.base: (13) => r[11 FF 010D 12000000000000000000000000000000]
19:35:42,551    DEBUG [MainThread] logitech_receiver.base: (13) <= w[11 FF 000E 10000000000000000000000000000000]
19:35:42,555    DEBUG [MainThread] logitech_receiver.base: (13) => r[11 FF 000E 00000000000000000000000000000000]
19:35:42,555    DEBUG [MainThread] logitech_receiver.base: (13) <= w[11 FF 0008 10040000000000000000000000000000]
19:35:42,557    DEBUG [MainThread] logitech_receiver.base: (13) => r[11 FF 0008 00000000000000000000000000000000]
19:35:42,557    DEBUG [MainThread] logitech_receiver.base: (13) <= w[11 FF 000C 10010000000000000000000000000000]
19:35:42,559    DEBUG [MainThread] logitech_receiver.base: (13) => r[11 FF 000C 00000000000000000000000000000000]
19:35:42,559    DEBUG [MainThread] logitech_receiver.base: (13) <= w[11 FF 000B 43010000000000000000000000000000]
19:35:42,561    DEBUG [MainThread] logitech_receiver.base: (13) => r[11 FF 000B 00000000000000000000000000000000]
19:35:42,586    DEBUG [MainThread] solaar.configuration: load => ['1.1.3', {'_NAME': 'G502 SE Hero Gaming Mouse', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'pointer_speed', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'fn-swap', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_modelId': 'C08B00000000', '_unitId': '3539470D', 'dpi': 2400, 'onboard_profiles': 1, 'report_rate': 2}, {'_NAME': 'Logitech PRO X Wireless Gaming Headset', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'fn-swap', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params'], '_modelId': '000000000ABA', '_sensitive': {'equalizer': True}, '_unitId': 'FFFFFFFF', 'equalizer': {0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0}, 'sidetone': 18}]
19:35:42,587    DEBUG [MainThread] logitech_receiver.base: (13) <= w[11 FF 000C 00030000000000000000000000000000]
19:35:42,591    DEBUG [MainThread] logitech_receiver.base: (13) => r[11 FF 000C 03000200000000000000000000000000]
19:35:42,592    DEBUG [MainThread] logitech_receiver.base: (13) <= w[11 FF 0308 00000000000000000000000000000000]
19:35:42,595    DEBUG [MainThread] logitech_receiver.base: (13) => r[11 FF 0308 023539470D0008C08B00000000000000]
19:35:42,596    DEBUG [MainThread] logitech_receiver.base: (13) <= w[11 FF 000D 81000000000000000000000000000000]
19:35:42,599    DEBUG [MainThread] logitech_receiver.base: (13) => r[11 FF 000D 0C000000000000000000000000000000]
19:35:42,599    DEBUG [MainThread] logitech_receiver.settings_templates: check_feature onboard_profiles [ONBOARD PROFILES] detected <Setting([feature:choice] G502 Hero:onboard_profiles=None)>
19:35:42,599    DEBUG [MainThread] logitech_receiver.base: (13) <= w[11 FF 000E 80600000000000000000000000000000]
19:35:42,603    DEBUG [MainThread] logitech_receiver.base: (13) => r[11 FF 000E 0B000000000000000000000000000000]
19:35:42,604    DEBUG [MainThread] logitech_receiver.base: (13) <= w[11 FF 0B0B 00000000000000000000000000000000]
19:35:42,607    DEBUG [MainThread] logitech_receiver.base: (13) => r[11 FF 0B0B 8B000000000000000000000000000000]
19:35:42,608    DEBUG [MainThread] logitech_receiver.settings_templates: check_feature report_rate [REPORT RATE] detected <Setting([feature:choice] G502 Hero:report_rate=None)>
19:35:42,609    DEBUG [MainThread] logitech_receiver.base: (13) <= w[11 FF 0008 22010000000000000000000000000000]
19:35:42,611    DEBUG [MainThread] logitech_receiver.base: (13) => r[11 FF 0008 0A000100000000000000000000000000]
19:35:42,611    DEBUG [MainThread] logitech_receiver.base: (13) <= w[11 FF 0A18 00000000000000000000000000000000]
19:35:42,615    DEBUG [MainThread] logitech_receiver.base: (13) => r[11 FF 0A18 000064E0326400000000000000000000]
19:35:42,618    DEBUG [MainThread] logitech_receiver.settings_templates: check_feature dpi [ADJUSTABLE DPI] detected <Setting([feature:choice] G502 Hero:dpi=None)>
19:35:42,619     INFO [MainThread] logitech_receiver.status: <Device(255,C08B,G502 SE Hero Gaming Mouse,)> pushing device settings [<Setting([feature:choice] G502 Hero:onboard_profiles=None)>, <Setting([feature:choice] G502 Hero:report_rate=None)>, <Setting([feature:choice] G502 Hero:dpi=None)>]
19:35:42,619    DEBUG [MainThread] logitech_receiver.settings: onboard_profiles: apply None (<Device(255,C08B,G502 SE Hero Gaming Mouse,)>)
19:35:42,619    DEBUG [MainThread] logitech_receiver.settings: onboard_profiles: settings read None from <Device(255,C08B,G502 SE Hero Gaming Mouse,)>
19:35:42,620    DEBUG [MainThread] logitech_receiver.settings: onboard_profiles: setting write 1 to <Device(255,C08B,G502 SE Hero Gaming Mouse,)>
19:35:42,620    DEBUG [MainThread] logitech_receiver.settings: onboard_profiles: settings prepare write(1) => b'\x01'
19:35:42,620    DEBUG [MainThread] logitech_receiver.base: (13) <= w[11 FF 0C1F 01000000000000000000000000000000]
19:35:42,623    DEBUG [MainThread] logitech_receiver.base: (13) => r[11 FF 0C1F 00000000000000000000000000000000]
19:35:42,623    DEBUG [MainThread] logitech_receiver.settings: report_rate: apply None (<Device(255,C08B,G502 SE Hero Gaming Mouse,)>)
19:35:42,624    DEBUG [MainThread] logitech_receiver.settings: report_rate: settings read None from <Device(255,C08B,G502 SE Hero Gaming Mouse,)>
19:35:42,624    DEBUG [MainThread] logitech_receiver.settings: report_rate: setting write 2 to <Device(255,C08B,G502 SE Hero Gaming Mouse,)>
19:35:42,624    DEBUG [MainThread] logitech_receiver.settings: report_rate: settings prepare write(2) => b'\x02'
19:35:42,625    DEBUG [MainThread] logitech_receiver.base: (13) <= w[11 FF 0B2A 02000000000000000000000000000000]
19:35:42,629    DEBUG [MainThread] logitech_receiver.base: (13) => r[11 FF FF0B 2A020000000000000000000000000000]
19:35:42,629    ERROR [MainThread] logitech_receiver.base: (13) device 255 error on feature request {0B2A}: 2 = invalid argument
19:35:42,629  WARNING [MainThread] logitech_receiver.settings: report_rate: error applying value 2 so ignore it (<Device(255,C08B,G502 SE Hero Gaming Mouse,)>)
19:35:42,630    DEBUG [MainThread] logitech_receiver.settings: dpi: apply None (<Device(255,C08B,G502 SE Hero Gaming Mouse,)>)
19:35:42,630    DEBUG [MainThread] logitech_receiver.settings: dpi: settings read None from <Device(255,C08B,G502 SE Hero Gaming Mouse,)>
19:35:42,630    DEBUG [MainThread] logitech_receiver.settings: dpi: setting write 2400 to <Device(255,C08B,G502 SE Hero Gaming Mouse,)>
19:35:42,630    DEBUG [MainThread] logitech_receiver.settings: dpi: settings prepare write(2400) => b'\x00\t`'
19:35:42,630    DEBUG [MainThread] logitech_receiver.base: (13) <= w[11 FF 0A3C 00096000000000000000000000000000]
19:35:42,633    DEBUG [MainThread] logitech_receiver.base: (13) => r[11 FF 0A3C 00000000000000000000000000000000]
19:35:42,633     INFO [MainThread] solaar.listener: status_changed <Device(255,C08B,G502 SE Hero Gaming Mouse,)>: paired online, {} (0) initialization
19:35:42,635     INFO [ReceiverListener:hidraw8] logitech_receiver.listener: started with <Device(255,C08B,G502 SE Hero Gaming Mouse,)> (13)
19:35:42,635     INFO [ReceiverListener:hidraw8] solaar.listener: <Device(255,C08B,G502 SE Hero Gaming Mouse,)>: notifications listener has started (13)
19:35:42,636     INFO [ReceiverListener:hidraw8] solaar.listener: status_changed <Device(255,C08B,G502 SE Hero Gaming Mouse,)>: paired online, {'NOTIFICATION FLAGS': False} (0) 
19:35:42,642    DEBUG [MainThread] hidapi.udev: Found device BID 0003 VID 0000046D PID 00000ABA INTERFACE 3 FILTER 3
19:35:42,643     INFO [MainThread] solaar.listener: receiver event add DeviceInfo(path='/dev/hidraw5', vendor_id='046D', product_id='0ABA', serial='', release=None, manufacturer=None, product=None, interface=3, driver='hid-generic', bus_id=3, isDevice=True)
19:35:42,643    DEBUG [MainThread] logitech_receiver.base: (14) pinging device 255
19:35:42,643     INFO [MainThread] logitech_receiver.base: New lock 14
19:35:42,644    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 001A 00002300000000000000000000000000]
19:35:42,649    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 001A 04022300000000000000000000000000]
19:35:42,652    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 000E 00010000000000000000000000000000]
19:35:42,659    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 000E 01000000000000000000000000000000]
19:35:42,659    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 010D 00000000000000000000000000000000]
19:35:42,664    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 010D 06000000000000000000000000000000]
19:35:42,665    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 000E 10000000000000000000000000000000]
19:35:42,669    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 000E 00000000000000000000000000000000]
19:35:42,670    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 000B 10040000000000000000000000000000]
19:35:42,674    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 000B 00000000000000000000000000000000]
19:35:42,674    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 000F 10010000000000000000000000000000]
19:35:42,679    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 000F 00000000000000000000000000000000]
19:35:42,680    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 000F 43010000000000000000000000000000]
19:35:42,684    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 000F 00000000000000000000000000000000]
19:35:42,686    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 000C 00030000000000000000000000000000]
19:35:42,689    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 000C 02000200000000000000000000000000]
19:35:42,690    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 0209 00000000000000000000000000000000]
19:35:42,694    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 0209 01FFFFFFFF0003000000000ABA000000]
19:35:42,696    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 0008 83000000000000000000000000000000]
19:35:42,699    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 0008 05000000000000000000000000000000]
19:35:42,700    DEBUG [MainThread] logitech_receiver.settings_templates: check_feature sidetone [SIDETONE] detected <Setting([feature:range] PRO Headset:sidetone=None)>
19:35:42,702    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 000A 83100000000000000000000000000000]
19:35:42,709    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 000A 04000100000000000000000000000000]
19:35:42,712    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 040E 00000000000000000000000000000000]
19:35:42,758    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 040E 0A0C0100000000000000000000000000]
19:35:42,760    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 041C 00000000000000000000000000000000]
19:35:42,804    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 041C 0000200040007D00FA01F403E807D000]
19:35:42,808    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 041E 07000000000000000000000000000000]
19:35:42,853    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 041E 070FA01F403E80000000000000000000]
19:35:42,856    DEBUG [MainThread] logitech_receiver.settings_templates: check_feature equalizer [EQUALIZER] detected <Setting([feature:packed range] PRO Headset:equalizer=None)>
19:35:42,857     INFO [MainThread] logitech_receiver.status: <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)> pushing device settings [<Setting([feature:range] PRO Headset:sidetone=None)>, <Setting([feature:packed range] PRO Headset:equalizer=None)>]
19:35:42,858    DEBUG [MainThread] logitech_receiver.settings: sidetone: apply None (<Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>)
19:35:42,858    DEBUG [MainThread] logitech_receiver.settings: sidetone: settings read None from <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>
19:35:42,858    DEBUG [MainThread] logitech_receiver.settings: sidetone: setting write 18 to <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>
19:35:42,859    DEBUG [MainThread] logitech_receiver.settings: sidetone: settings prepare write(18) => b'\x12'
19:35:42,860    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 051D 12000000000000000000000000000000]
19:35:42,903    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 051D 12000000000000000000000000000000]
19:35:42,904    DEBUG [MainThread] logitech_receiver.settings: equalizer: apply None (<Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>)
19:35:42,904    DEBUG [MainThread] logitech_receiver.settings: equalizer: settings read None from <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>
19:35:42,904    DEBUG [MainThread] logitech_receiver.settings: equalizer: range field setting write {0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0} to <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>
19:35:42,905    DEBUG [MainThread] logitech_receiver.settings: equalizer: range field setting prepare map write({0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0}) => b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
19:35:42,906    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 043C 00000000000000000000000000000000]
19:35:42,948    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF FF04 3C020000000000000000000000000000]
19:35:42,948    ERROR [MainThread] logitech_receiver.base: (14) device 255 error on feature request {043C}: 2 = invalid argument
19:35:42,948  WARNING [MainThread] logitech_receiver.settings: equalizer: error applying value {0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0} so ignore it (<Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>)
19:35:42,948     INFO [MainThread] solaar.listener: status_changed <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>: paired online, {} (0) initialization
19:35:42,949     INFO [ReceiverListener:hidraw5] logitech_receiver.listener: started with <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)> (14)
19:35:42,950    DEBUG [MainThread] solaar.ui: activate
19:35:42,951     INFO [ReceiverListener:hidraw5] solaar.listener: <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>: notifications listener has started (14)
19:35:42,953     INFO [ReceiverListener:hidraw5] solaar.listener: status_changed <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>: paired online, {'NOTIFICATION FLAGS': False} (0) 
19:35:42,995    DEBUG [MainThread] solaar.ui: status changed: <Device(255,C08B,G502 SE Hero Gaming Mouse,)> (NONE) initialization
19:35:42,996    DEBUG [MainThread] solaar.ui.icons: battery icon for None:None = battery-missing
19:35:42,996    DEBUG [MainThread] solaar.ui.tray: picked device with lowest battery: None
19:35:43,006    DEBUG [MainThread] solaar.ui.window: new device row ('/dev/hidraw8', 255, True, 'G502 Hero', 'input-mouse', None, None, <Device(255,C08B,G502 SE Hero Gaming Mouse,)>) at index 0
19:35:43,008    DEBUG [MainThread] solaar.ui.icons: battery icon for None:False = battery-missing
19:35:43,021    DEBUG [AsyncUI] logitech_receiver.settings: onboard_profiles: settings read 1 from <Device(255,C08B,G502 SE Hero Gaming Mouse,)>
19:35:43,025    DEBUG [AsyncUI] logitech_receiver.settings: report_rate: settings read 2 from <Device(255,C08B,G502 SE Hero Gaming Mouse,)>
19:35:43,049    DEBUG [AsyncUI] logitech_receiver.settings: dpi: settings read 2400 from <Device(255,C08B,G502 SE Hero Gaming Mouse,)>
19:35:43,051    DEBUG [MainThread] solaar.ui: status changed: <Device(255,C08B,G502 SE Hero Gaming Mouse,)> (NONE) None
19:35:43,051    DEBUG [MainThread] solaar.ui.icons: battery icon for None:None = battery-missing
19:35:43,051    DEBUG [MainThread] solaar.ui.tray: picked device with lowest battery: None
19:35:43,052    DEBUG [MainThread] solaar.ui.icons: battery icon for None:False = battery-missing
19:35:43,052    DEBUG [MainThread] solaar.ui: status changed: <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)> (NONE) initialization
19:35:43,052    DEBUG [MainThread] solaar.ui.icons: battery icon for None:None = battery-missing
19:35:43,053    DEBUG [MainThread] solaar.ui.tray: picked device with lowest battery: None
19:35:43,053    DEBUG [MainThread] solaar.ui.window: new device row ('/dev/hidraw5', 255, True, 'PRO Headset', 'audio-headset', None, None, <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>) at index 0
19:35:43,053    DEBUG [MainThread] solaar.ui: status changed: <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)> (NONE) None
19:35:43,053    DEBUG [MainThread] solaar.ui.icons: battery icon for None:None = battery-missing
19:35:43,054    DEBUG [MainThread] solaar.ui.tray: picked device with lowest battery: None
19:35:44,361    DEBUG [MainThread] solaar.ui.icons: battery icon for None:False = battery-missing
19:35:44,397    DEBUG [AsyncUI] logitech_receiver.settings: sidetone: settings read 18 from <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>
19:35:44,433    DEBUG [AsyncUI] logitech_receiver.settings: equalizer: settings read {0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0} from <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>
19:35:47,784    DEBUG [AsyncUI] logitech_receiver.settings: equalizer: range field setting write key 0 value 1 to <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>
19:35:47,785    DEBUG [AsyncUI] logitech_receiver.settings: equalizer: range field setting write {0: 1, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0} to <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>
19:35:47,812     INFO [AsyncUI] solaar.configuration: saved ['1.1.3', {'_NAME': 'G502 SE Hero Gaming Mouse', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'pointer_speed', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'fn-swap', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_modelId': 'C08B00000000', '_unitId': '3539470D', 'dpi': 2400, 'onboard_profiles': 1, 'report_rate': 2}, {'_NAME': 'Logitech PRO X Wireless Gaming Headset', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'fn-swap', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params'], '_modelId': '000000000ABA', '_sensitive': {'equalizer': True}, '_unitId': 'FFFFFFFF', 'equalizer': {0: 1, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0}, 'sidetone': 18}] to /home/jonas_jones/.config/solaar/config.yaml
19:35:47,813    DEBUG [AsyncUI] logitech_receiver.settings: equalizer: range field setting prepare map write({0: 1, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0}) => b'\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00'
19:35:47,814     INFO [AsyncUI] logitech_receiver.base: New lock <_ThreadedHandle(/dev/hidraw5)>
19:35:47,815    DEBUG [AsyncUI] logitech_receiver.base: (22) <= w[11 FF 0439 00010000000000000000000000000000]
19:35:47,861    DEBUG [AsyncUI] logitech_receiver.base: (22) => r[11 FF FF04 39020000000000000000000000000000]
19:35:47,862    DEBUG [ReceiverListener:hidraw5] logitech_receiver.base: (14) => r[11 FF FF04 39020000000000000000000000000000]
19:35:47,863    ERROR [AsyncUI] logitech_receiver.base: (22) device 255 error on feature request {0439}: 2 = invalid argument
Traceback (most recent call last):
  File "/home/jonas_jones/Downloads/Solaar/lib/solaar/ui/config_panel.py", line 53, in _do_write
    v = setting.write_key_value(key, v)
  File "/home/jonas_jones/Downloads/Solaar/lib/logitech_receiver/settings.py", line 722, in write_key_value
    self.write(map)
  File "/home/jonas_jones/Downloads/Solaar/lib/logitech_receiver/settings.py", line 705, in write
    reply = self._rw.write(self._device, data_bytes)
  File "/home/jonas_jones/Downloads/Solaar/lib/logitech_receiver/settings.py", line 768, in write
    reply = device.feature_request(
  File "/home/jonas_jones/Downloads/Solaar/lib/logitech_receiver/device.py", line 412, in feature_request
    return _hidpp20.feature_request(self, feature, function, *params, no_reply=no_reply)
  File "/home/jonas_jones/Downloads/Solaar/lib/logitech_receiver/hidpp20.py", line 1106, in feature_request
    return device.request((feature_index << 8) + (function & 0xFF), *params, no_reply=no_reply)
  File "/home/jonas_jones/Downloads/Solaar/lib/logitech_receiver/device.py", line 400, in request
    return _base.request(
  File "/home/jonas_jones/Downloads/Solaar/lib/logitech_receiver/base.py", line 456, in request
    raise _hidpp20.FeatureCallError(number=devnumber, request=request_id, error=error, params=params)
logitech_receiver.hidpp20.FeatureCallError: {'number': 255, 'request': 1081, 'error': 2, 'params': b'\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00'}
pfps commented 2 years ago

I don't think the X error is a problem.

However, there appears to be a divergence between the documentation of the equalizer feature and its implementation on your headset. As far as I can tell from the documentation there should not be an error when sending the command below.

19:35:42,906    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 043C 00000000000000000000000000000000]
19:35:42,948    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF FF04 3C020000000000000000000000000000]
19:35:42,948    ERROR [MainThread] logitech_receiver.base: (14) device 255 error on feature request {043C}: 2 = invalid argument

There are two possible next steps. One is to try to get more information from Logitech, but that could take quite a while. The other is to try sending commands using ./tools/hidconsole in the Solaar repository. You will have to find out the hidraw node for your mouse from Solaar by opening the details pane (using the light bulb icon on the Solaar main window). The run ./tools/hidconsole /dev/hidrawN replacing N with the appropriate digit.

You can then send commands to your mouse (and you will also see the messages the mouse sends back). Your mouse is connected via Bluetooth so the messages are 20 bytes long. Try sending the message that caused problems

11 FF 043C 00000000000000000000000000000000

an error response (starting with 11 FF FF) should result.

Try changing the first byte of the command argument.

The first byte of the command says what kind of command - it is always 11 here. The second byte is the address of the device - always FF here. The third byte is the index of the feature - 04 for equalizer, from solaar show. The fourth byte is split in half with the first half being the command - 3 to set gains, 2 to retrieve gains, 0 for some information about the equalizer, 1 for the equalizer bands with the next byte being the index of the first of up to seven bands to return - and the second half being a communication token - always using C is fine.. The next fifteen bytes are the command arguments - the first byte for the set gains command is whether to set in RAM, both, or EEPROM and the next M bytes are the gains for each band - 10 for your headset.

So change the first 00 in the message above to 01 or 02 and see whether that causes an error.

Post your results.

WARNING: This can permanently change the behaviour of your headset. Once an acceptable command has been found it should be easy to set the gains to anything you want, so it should be easy to change the behaviour back. Perhaps the first thing you should do is to send

11 FF 042C 00000000000000000000000000000000

which will show the current equalizer gains in EEPROM. The gain values will be the sixth through fifteenth bytes of the response. (The first five bytes should just echo the first five bytes of the command.)

JonasunderscoreJones commented 2 years ago

The following is what the hidconsole returns for the mouse:

?? Input: 11 FF 043C 00000000000000000000000000000000
<< (   1.930) [11 FF 043C 00000000000000000000000000000000] b'\x11\xff\x04<\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
>> (   1.933) [11 FF FF04 3C070000000000000000000000000000] b'\x11\xff\xff\x04<\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'

Also: my mouse is not connected over bluetooth but via a cable, it isn't capable of wireless.

When sending 11 FF 042C 00000000000000000000000000000000 to my headset, I get the following output:

?? Input: 11 FF 042C 00000000000000000000000000000000
<< (   4.759) [11 FF 042C 00000000000000000000000000000000] b'\x11\xff\x04,\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
>> (   4.820) [11 FF 042C 00000000000000000000000000000000] b'\x11\xff\x04,\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'

When sending 11 FF 042C 01000000000000000000000000000000 to the headset:

?? Input: 11 FF 042C 01000000000000000000000000000000
<< ( 160.273) [11 FF 042C 01000000000000000000000000000000] b'\x11\xff\x04,\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
>> ( 160.316) [11 FF FF04 2C020000000000000000000000000000] b'\x11\xff\xff\x04,\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'

When sending 11 FF 042C 02000000000000000000000000000000 to the headset:

?? Input: 11 FF 042C 02000000000000000000000000000000
<< ( 214.364) [11 FF 042C 02000000000000000000000000000000] b'\x11\xff\x04,\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
>> ( 214.407) [11 FF FF04 2C020000000000000000000000000000] b'\x11\xff\xff\x04,\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
pfps commented 2 years ago

Sorry, my mistake. I got mouse and headset confused, as I'm also working on settings for a mouse. Everything should be for your headset. Also, bluetooth and wired devices work pretty much the same. (Devices connected through a wireless receiver work differently.)

So reading gains for the headset works for the EEPROM (command first byte 00) but not for other read commands.

Can you try sending write gain commands to the headset? These would be

11 FF 043C NN000000000000000000000000000000

for NN 00, 01, and 02 (RAM, both, and EEPROM respectively).

If any of these work, try setting gains by modifying the first 00 byte above (try 01 through 12 and then FF through F4).

JonasunderscoreJones commented 2 years ago

The outputs of my previous message, excluding the first output, show all the outputs of the 11 FF 043C NN000000000000000000000000000000 with NN being 00, 01 and 02. As for the other commands: 11 FF 043C 00010000000000000000000000000000:

?? Input: 11 FF 043C 00010000000000000000000000000000
<< (   4.655) [11 FF 043C 00010000000000000000000000000000] b'\x11\xff\x04<\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
>> (   4.697) [11 FF FF04 3C020000000000000000000000000000] b'\x11\xff\xff\x04<\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'

11 FF 043C 00020000000000000000000000000000:

?? Input: 11 FF 043C 00020000000000000000000000000000
<< (  15.183) [11 FF 043C 00020000000000000000000000000000] b'\x11\xff\x04<\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
>> (  15.224) [11 FF FF04 3C020000000000000000000000000000] b'\x11\xff\xff\x04<\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'

11 FF 043C 01010000000000000000000000000000:

?? Input: 11 FF 043C 01010000000000000000000000000000
<< (  19.174) [11 FF 043C 01010000000000000000000000000000] b'\x11\xff\x04<\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
>> (  19.215) [11 FF FF04 3C020000000000000000000000000000] b'\x11\xff\xff\x04<\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'

11 FF 043C 01020000000000000000000000000000:

?? Input: 11 FF 043C 01020000000000000000000000000000
<< (  27.913) [11 FF 043C 01020000000000000000000000000000] b'\x11\xff\x04<\x01\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
>> (  27.957) [11 FF FF04 3C020000000000000000000000000000] b'\x11\xff\xff\x04<\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'

11 FF 043C 02010000000000000000000000000000:

?? Input: 11 FF 043C 02010000000000000000000000000000
<< (  77.354) [11 FF 043C 02010000000000000000000000000000] b'\x11\xff\x04<\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
>> (  77.410) [11 FF 043C 02010000000000000000000000000000] b'\x11\xff\x04<\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'

11 FF 043C 02020000000000000000000000000000:

?? Input: 11 FF 043C 02020000000000000000000000000000
<< (  86.713) [11 FF 043C 02020000000000000000000000000000] b'\x11\xff\x04<\x02\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
>> (  86.771) [11 FF 043C 02020000000000000000000000000000] b'\x11\xff\x04<\x02\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'

When replacing FF with F4: 11 F4 042C 00000000000000000000000000000000:

?? Input: 11 F4 042C 00000000000000000000000000000000<< ( 343.272) [11 F4 042C 00000000000000000000000000000000] b'\x11\xf4\x04,\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
>> ( 343.278) [11 FF FF04 2C0A0000000000000000000000000000] b'\x11\xff\xff\x04,\n\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00':

11 F4 042C 01000000000000000000000000000000:

?? Input: 11 F4 042C 01000000000000000000000000000000<< ( 403.023) [11 F4 042C 01000000000000000000000000000000] b'\x11\xf4\x04,\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
>> ( 403.026) [11 FF FF04 2C0A0000000000000000000000000000] b'\x11\xff\xff\x04,\n\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00':

11 F4 042C 02000000000000000000000000000000:

?? Input: 11 F4 042C 02000000000000000000000000000000
<< ( 411.040) [11 F4 042C 02000000000000000000000000000000] b'\x11\xf4\x04,\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
>> ( 411.042) [11 FF FF04 2C0A0000000000000000000000000000] b'\x11\xff\xff\x04,\n\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00':

11 F4 042C 00010000000000000000000000000000:

?? Input: 11 F4 042C 00010000000000000000000000000000
<< ( 422.729) [11 F4 042C 00010000000000000000000000000000] b'\x11\xf4\x04,\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
>> ( 422.735) [11 FF FF04 2C0A0000000000000000000000000000] b'\x11\xff\xff\x04,\n\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00':

11 F4 042C 00020000000000000000000000000000:

?? Input: 11 F4 042C 00020000000000000000000000000000
<< ( 428.474) [11 F4 042C 00020000000000000000000000000000] b'\x11\xf4\x04,\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
>> ( 428.481) [11 FF FF04 2C0A0000000000000000000000000000] b'\x11\xff\xff\x04,\n\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00':

11 F4 042C 01010000000000000000000000000000:

?? Input: 11 F4 042C 01010000000000000000000000000000
<< ( 459.585) [11 F4 042C 01010000000000000000000000000000] b'\x11\xf4\x04,\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
>> ( 459.590) [11 FF FF04 2C0A0000000000000000000000000000] b'\x11\xff\xff\x04,\n\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00':

11 F4 042C 01020000000000000000000000000000:

?? Input: 11 F4 042C 01020000000000000000000000000000
<< ( 475.742) [11 F4 042C 01020000000000000000000000000000] b'\x11\xf4\x04,\x01\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
>> ( 475.746) [11 FF FF04 2C0A0000000000000000000000000000] b'\x11\xff\xff\x04,\n\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00':

11 F4 042C 02010000000000000000000000000000:

?? Input: 11 F4 042C 02010000000000000000000000000000
<< ( 485.699) [11 F4 042C 02010000000000000000000000000000] b'\x11\xf4\x04,\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
>> ( 485.703) [11 FF FF04 2C0A0000000000000000000000000000] b'\x11\xff\xff\x04,\n\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00':

11 F4 042C 02020000000000000000000000000000:

?? Input: 11 F4 042C 02020000000000000000000000000000
<< ( 491.123) [11 F4 042C 02020000000000000000000000000000] b'\x11\xf4\x04,\x02\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
>> ( 491.126) [11 FF FF04 2C0A0000000000000000000000000000] b'\x11\xff\xff\x04,\n\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00':
pfps commented 2 years ago

Your previous message had command 2, I think.

But there were a couple of commands that succeeded.

11 FF 043C 02010000000000000000000000000000:

?? Input: 11 FF 043C 02010000000000000000000000000000
<< (  77.354) [11 FF 043C 02010000000000000000000000000000] b'\x11\xff\x04<\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
>> (  77.410) [11 FF 043C 02010000000000000000000000000000] b'\x11\xff\x04<\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'

11 FF 043C 02020000000000000000000000000000:

?? Input: 11 FF 043C 02020000000000000000000000000000
<< (  86.713) [11 FF 043C 02020000000000000000000000000000] b'\x11\xff\x04<\x02\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
>> (  86.771) [11 FF 043C 02020000000000000000000000000000] b'\x11\xff\x04<\x02\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'

This should be enough to correctly implement the setting.

pfps commented 2 years ago

OK, new PR. Try this out with bin/solaar -ddd.

Hopefully no error messages on startup. Try changing some equalizer gains slightly. Then try setting a gain to 12 and then -12. Report any errors.

JonasunderscoreJones commented 2 years ago

No errors this time!

00:35:13,389     INFO [MainThread] root: language en_US (UTF-8), translations path None
Gtk-Message: 00:35:13.571: Failed to load module "appmenu-gtk-module"
00:35:13,574  WARNING [MainThread] solaar.gtk: Solaar udev file not found in expected location
00:35:13,574  WARNING [MainThread] solaar.gtk: See https://pwr-solaar.github.io/Solaar/installation for more information
00:35:13,783     INFO [MainThread] logitech_receiver.diversion: GDK Keymap set up
00:35:13,798    DEBUG [MainThread] solaar.ui.tray: using StatusIcon
00:35:13,824     INFO [MainThread] solaar.upower: connected to system dbus, watching for suspend/resume events
00:35:13,831    DEBUG [MainThread] solaar.ui: startup registered=True, remote=False
00:35:13,832    DEBUG [AsyncUI] solaar.tasks: started
00:35:13,833     INFO [MainThread] solaar.ui.notify: starting desktop notifications
00:35:13,905    DEBUG [MainThread] solaar.ui.icons: sys.path[0] = /home/jonas_jones/Downloads/Solaar/lib
00:35:13,906    DEBUG [MainThread] solaar.ui.icons: looking for icons in /home/jonas_jones/Downloads/Solaar/icons
00:35:13,906    DEBUG [MainThread] solaar.ui.icons: looking for icons in /home/jonas_jones/Downloads/Solaar/share/solaar/icons
00:35:13,906    DEBUG [MainThread] solaar.ui.icons: icon theme paths: ['/home/jonas_jones/Downloads/Solaar/share/solaar/icons', '/home/jonas_jones/.local/share/icons', '/home/jonas_jones/.icons', '/home/jonas_jones/.local/share/flatpak/exports/share/icons', '/var/lib/flatpak/exports/share/icons', '/usr/local/share/icons', '/usr/share/icons', '/home/jonas_jones/.local/share/flatpak/exports/share/pixmaps', '/var/lib/flatpak/exports/share/pixmaps', '/usr/local/share/pixmaps', '/usr/share/pixmaps']
00:35:14,015     INFO [MainThread] solaar.listener: starting receiver listening threads
00:35:14,051    DEBUG [MainThread] hidapi.udev: Found device BID 0003 VID 0000046D PID 0000C08B INTERFACE 0 FILTER 1
00:35:14,051    DEBUG [MainThread] hidapi.udev: Found device BID 0003 VID 0000046D PID 0000C08B INTERFACE 1 FILTER 1
00:35:14,052     INFO [MainThread] solaar.listener: receiver event add DeviceInfo(path='/dev/hidraw8', vendor_id='046D', product_id='C08B', serial='0D7E39603034', release=None, manufacturer=None, product=None, interface=1, driver='hid-generic', bus_id=3, isDevice=True)
00:35:14,052    DEBUG [MainThread] logitech_receiver.base: (13) pinging device 255
00:35:14,053     INFO [MainThread] logitech_receiver.base: New lock 13
00:35:14,053    DEBUG [MainThread] logitech_receiver.base: (13) <= w[10 FF 001C 00005D]
00:35:14,056    DEBUG [MainThread] logitech_receiver.base: (13) => r[11 FF 001C 04025D00000000000000000000000000]
00:35:14,056    DEBUG [MainThread] logitech_receiver.base: (13) <= w[11 FF 000E 00010000000000000000000000000000]
00:35:14,057    DEBUG [MainThread] logitech_receiver.base: (13) => r[11 FF 000E 01000100000000000000000000000000]
00:35:14,058    DEBUG [MainThread] logitech_receiver.base: (13) <= w[11 FF 010F 00000000000000000000000000000000]
00:35:14,060    DEBUG [MainThread] logitech_receiver.base: (13) => r[11 FF 010F 12000000000000000000000000000000]
00:35:14,060    DEBUG [MainThread] logitech_receiver.base: (13) <= w[11 FF 0009 10000000000000000000000000000000]
00:35:14,064    DEBUG [MainThread] logitech_receiver.base: (13) => r[11 FF 0009 00000000000000000000000000000000]
00:35:14,064    DEBUG [MainThread] logitech_receiver.base: (13) <= w[11 FF 000C 10040000000000000000000000000000]
00:35:14,066    DEBUG [MainThread] logitech_receiver.base: (13) => r[11 FF 000C 00000000000000000000000000000000]
00:35:14,066    DEBUG [MainThread] logitech_receiver.base: (13) <= w[11 FF 000C 10010000000000000000000000000000]
00:35:14,070    DEBUG [MainThread] logitech_receiver.base: (13) => r[11 FF 000C 00000000000000000000000000000000]
00:35:14,070    DEBUG [MainThread] logitech_receiver.base: (13) <= w[11 FF 000C 43010000000000000000000000000000]
00:35:14,071    DEBUG [MainThread] logitech_receiver.base: (13) => r[11 FF 000C 00000000000000000000000000000000]
00:35:14,087    DEBUG [MainThread] solaar.configuration: load => ['1.1.3', {'_NAME': 'G502 SE Hero Gaming Mouse', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'pointer_speed', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'fn-swap', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_modelId': 'C08B00000000', '_unitId': '3539470D', 'dpi': 2400, 'onboard_profiles': 1, 'report_rate': 2}, {'_NAME': 'Logitech PRO X Wireless Gaming Headset', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'fn-swap', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params'], '_modelId': '000000000ABA', '_unitId': 'FFFFFFFF', 'equalizer': {0: 2, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0}, 'sidetone': 18}]
00:35:14,088    DEBUG [MainThread] logitech_receiver.base: (13) <= w[11 FF 000D 00030000000000000000000000000000]
00:35:14,090    DEBUG [MainThread] logitech_receiver.base: (13) => r[11 FF 000D 03000200000000000000000000000000]
00:35:14,090    DEBUG [MainThread] logitech_receiver.base: (13) <= w[11 FF 030D 00000000000000000000000000000000]
00:35:14,092    DEBUG [MainThread] logitech_receiver.base: (13) => r[11 FF 030D 023539470D0008C08B00000000000000]
00:35:14,092    DEBUG [MainThread] logitech_receiver.base: (13) <= w[11 FF 000A 81000000000000000000000000000000]
00:35:14,094    DEBUG [MainThread] logitech_receiver.base: (13) => r[11 FF 000A 0C000000000000000000000000000000]
00:35:14,094    DEBUG [MainThread] logitech_receiver.settings_templates: check_feature onboard_profiles [ONBOARD PROFILES] detected <Setting([feature:choice] G502 Hero:onboard_profiles=None)>
00:35:14,095    DEBUG [MainThread] logitech_receiver.base: (13) <= w[11 FF 0009 80600000000000000000000000000000]
00:35:14,098    DEBUG [MainThread] logitech_receiver.base: (13) => r[11 FF 0009 0B000000000000000000000000000000]
00:35:14,098    DEBUG [MainThread] logitech_receiver.base: (13) <= w[11 FF 0B0E 00000000000000000000000000000000]
00:35:14,100    DEBUG [MainThread] logitech_receiver.base: (13) => r[11 FF 0B0E 8B000000000000000000000000000000]
00:35:14,100    DEBUG [MainThread] logitech_receiver.settings_templates: check_feature report_rate [REPORT RATE] detected <Setting([feature:choice] G502 Hero:report_rate=None)>
00:35:14,101    DEBUG [MainThread] logitech_receiver.base: (13) <= w[11 FF 000A 22010000000000000000000000000000]
00:35:14,103    DEBUG [MainThread] logitech_receiver.base: (13) => r[11 FF 000A 0A000100000000000000000000000000]
00:35:14,104    DEBUG [MainThread] logitech_receiver.base: (13) <= w[11 FF 0A19 00000000000000000000000000000000]
00:35:14,106    DEBUG [MainThread] logitech_receiver.base: (13) => r[11 FF 0A19 000064E0326400000000000000000000]
00:35:14,107    DEBUG [MainThread] logitech_receiver.settings_templates: check_feature dpi [ADJUSTABLE DPI] detected <Setting([feature:choice] G502 Hero:dpi=None)>
00:35:14,108     INFO [MainThread] logitech_receiver.status: <Device(255,C08B,G502 SE Hero Gaming Mouse,)> pushing device settings [<Setting([feature:choice] G502 Hero:onboard_profiles=None)>, <Setting([feature:choice] G502 Hero:report_rate=None)>, <Setting([feature:choice] G502 Hero:dpi=None)>]
00:35:14,108    DEBUG [MainThread] logitech_receiver.settings: onboard_profiles: apply None (<Device(255,C08B,G502 SE Hero Gaming Mouse,)>)
00:35:14,108    DEBUG [MainThread] logitech_receiver.settings: onboard_profiles: settings read None from <Device(255,C08B,G502 SE Hero Gaming Mouse,)>
00:35:14,108    DEBUG [MainThread] logitech_receiver.settings: onboard_profiles: setting write 1 to <Device(255,C08B,G502 SE Hero Gaming Mouse,)>
00:35:14,108    DEBUG [MainThread] logitech_receiver.settings: onboard_profiles: settings prepare write(1) => b'\x01'
00:35:14,108    DEBUG [MainThread] logitech_receiver.base: (13) <= w[11 FF 0C1B 01000000000000000000000000000000]
00:35:14,112    DEBUG [MainThread] logitech_receiver.base: (13) => r[11 FF 0C1B 00000000000000000000000000000000]
00:35:14,113    DEBUG [MainThread] logitech_receiver.settings: report_rate: apply None (<Device(255,C08B,G502 SE Hero Gaming Mouse,)>)
00:35:14,113    DEBUG [MainThread] logitech_receiver.settings: report_rate: settings read None from <Device(255,C08B,G502 SE Hero Gaming Mouse,)>
00:35:14,113    DEBUG [MainThread] logitech_receiver.settings: report_rate: setting write 2 to <Device(255,C08B,G502 SE Hero Gaming Mouse,)>
00:35:14,113    DEBUG [MainThread] logitech_receiver.settings: report_rate: settings prepare write(2) => b'\x02'
00:35:14,113    DEBUG [MainThread] logitech_receiver.base: (13) <= w[11 FF 0B2E 02000000000000000000000000000000]
00:35:14,116    DEBUG [MainThread] logitech_receiver.base: (13) => r[11 FF FF0B 2E020000000000000000000000000000]
00:35:14,116    ERROR [MainThread] logitech_receiver.base: (13) device 255 error on feature request {0B2E}: 2 = invalid argument
00:35:14,116  WARNING [MainThread] logitech_receiver.settings: report_rate: error applying value 2 so ignore it (<Device(255,C08B,G502 SE Hero Gaming Mouse,)>)
00:35:14,116    DEBUG [MainThread] logitech_receiver.settings: dpi: apply None (<Device(255,C08B,G502 SE Hero Gaming Mouse,)>)
00:35:14,116    DEBUG [MainThread] logitech_receiver.settings: dpi: settings read None from <Device(255,C08B,G502 SE Hero Gaming Mouse,)>
00:35:14,116    DEBUG [MainThread] logitech_receiver.settings: dpi: setting write 2400 to <Device(255,C08B,G502 SE Hero Gaming Mouse,)>
00:35:14,116    DEBUG [MainThread] logitech_receiver.settings: dpi: settings prepare write(2400) => b'\x00\t`'
00:35:14,117    DEBUG [MainThread] logitech_receiver.base: (13) <= w[11 FF 0A3A 00096000000000000000000000000000]
00:35:14,120    DEBUG [MainThread] logitech_receiver.base: (13) => r[11 FF 0A3A 00000000000000000000000000000000]
00:35:14,120     INFO [MainThread] solaar.listener: status_changed <Device(255,C08B,G502 SE Hero Gaming Mouse,)>: paired online, {} (0) initialization
00:35:14,120     INFO [ReceiverListener:hidraw8] logitech_receiver.listener: started with <Device(255,C08B,G502 SE Hero Gaming Mouse,)> (13)
00:35:14,120     INFO [ReceiverListener:hidraw8] solaar.listener: <Device(255,C08B,G502 SE Hero Gaming Mouse,)>: notifications listener has started (13)
00:35:14,120     INFO [ReceiverListener:hidraw8] solaar.listener: status_changed <Device(255,C08B,G502 SE Hero Gaming Mouse,)>: paired online, {'NOTIFICATION FLAGS': False} (0) 
00:35:14,121    DEBUG [MainThread] hidapi.udev: Found device BID 0003 VID 0000046D PID 00000ABA INTERFACE 3 FILTER 3
00:35:14,121     INFO [MainThread] solaar.listener: receiver event add DeviceInfo(path='/dev/hidraw5', vendor_id='046D', product_id='0ABA', serial='', release=None, manufacturer=None, product=None, interface=3, driver='hid-generic', bus_id=3, isDevice=True)
00:35:14,122    DEBUG [MainThread] logitech_receiver.base: (14) pinging device 255
00:35:14,122     INFO [MainThread] logitech_receiver.base: New lock 14
00:35:14,122    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 001B 0000D500000000000000000000000000]
00:35:14,125    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 001B 0402D500000000000000000000000000]
00:35:14,126    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 000D 00010000000000000000000000000000]
00:35:14,130    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 000D 01000000000000000000000000000000]
00:35:14,130    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 010E 00000000000000000000000000000000]
00:35:14,135    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 010E 06000000000000000000000000000000]
00:35:14,135    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 000D 10000000000000000000000000000000]
00:35:14,140    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 000D 00000000000000000000000000000000]
00:35:14,140    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 000A 10040000000000000000000000000000]
00:35:14,145    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 000A 00000000000000000000000000000000]
00:35:14,146    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 0008 10010000000000000000000000000000]
00:35:14,150    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 0008 00000000000000000000000000000000]
00:35:14,151    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 000E 43010000000000000000000000000000]
00:35:14,155    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 000E 00000000000000000000000000000000]
00:35:14,155    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 000E 00030000000000000000000000000000]
00:35:14,160    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 000E 02000200000000000000000000000000]
00:35:14,161    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 020C 00000000000000000000000000000000]
00:35:14,165    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 020C 01FFFFFFFF0003000000000ABA000000]
00:35:14,166    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 000D 83000000000000000000000000000000]
00:35:14,170    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 000D 05000000000000000000000000000000]
00:35:14,170    DEBUG [MainThread] logitech_receiver.settings_templates: check_feature sidetone [SIDETONE] detected <Setting([feature:range] PRO Headset:sidetone=None)>
00:35:14,170    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 000F 83100000000000000000000000000000]
00:35:14,175    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 000F 04000100000000000000000000000000]
00:35:14,175    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 0408 00000000000000000000000000000000]
00:35:14,221    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 0408 0A0C0100000000000000000000000000]
00:35:14,221    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 0418 00000000000000000000000000000000]
00:35:14,266    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 0418 0000200040007D00FA01F403E807D000]
00:35:14,267    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 041A 07000000000000000000000000000000]
00:35:14,311    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 041A 070FA01F403E80000000000000000000]
00:35:14,312    DEBUG [MainThread] logitech_receiver.settings_templates: check_feature equalizer [EQUALIZER] detected <Setting([feature:packed range] PRO Headset:equalizer=None)>
00:35:14,313     INFO [MainThread] logitech_receiver.status: <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)> pushing device settings [<Setting([feature:range] PRO Headset:sidetone=None)>, <Setting([feature:packed range] PRO Headset:equalizer=None)>]
00:35:14,314    DEBUG [MainThread] logitech_receiver.settings: sidetone: apply None (<Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>)
00:35:14,314    DEBUG [MainThread] logitech_receiver.settings: sidetone: settings read None from <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>
00:35:14,314    DEBUG [MainThread] logitech_receiver.settings: sidetone: setting write 18 to <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>
00:35:14,314    DEBUG [MainThread] logitech_receiver.settings: sidetone: settings prepare write(18) => b'\x12'
00:35:14,314    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 051D 12000000000000000000000000000000]
00:35:14,361    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 051D 12000000000000000000000000000000]
00:35:14,362    DEBUG [MainThread] logitech_receiver.settings: equalizer: apply None (<Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>)
00:35:14,362    DEBUG [MainThread] logitech_receiver.settings: equalizer: settings read None from <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>
00:35:14,362    DEBUG [MainThread] logitech_receiver.settings: equalizer: range field setting write {0: 2, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0} to <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>
00:35:14,362    DEBUG [MainThread] logitech_receiver.settings: equalizer: range field setting prepare map write({0: 2, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0}) => b'\x02\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00'
00:35:14,362    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 043E 02020000000000000000000000000000]
00:35:14,420    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 043E 02020000000000000000000000000000]
00:35:14,420     INFO [MainThread] solaar.listener: status_changed <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>: paired online, {} (0) initialization
00:35:14,420     INFO [ReceiverListener:hidraw5] logitech_receiver.listener: started with <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)> (14)
00:35:14,420     INFO [ReceiverListener:hidraw5] solaar.listener: <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>: notifications listener has started (14)
00:35:14,421     INFO [ReceiverListener:hidraw5] solaar.listener: status_changed <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>: paired online, {'NOTIFICATION FLAGS': False} (0) 
00:35:14,421    DEBUG [MainThread] solaar.ui: activate
00:35:14,440    DEBUG [MainThread] solaar.ui: status changed: <Device(255,C08B,G502 SE Hero Gaming Mouse,)> (NONE) initialization
00:35:14,441    DEBUG [MainThread] solaar.ui.icons: battery icon for None:None = battery-missing
00:35:14,441    DEBUG [MainThread] solaar.ui.tray: picked device with lowest battery: None
00:35:14,447    DEBUG [MainThread] solaar.ui.window: new device row ('/dev/hidraw8', 255, True, 'G502 Hero', 'input-mouse', None, None, <Device(255,C08B,G502 SE Hero Gaming Mouse,)>) at index 0
00:35:14,448    DEBUG [MainThread] solaar.ui.icons: battery icon for None:False = battery-missing
00:35:14,451    DEBUG [AsyncUI] logitech_receiver.settings: onboard_profiles: settings read 1 from <Device(255,C08B,G502 SE Hero Gaming Mouse,)>
00:35:14,452    DEBUG [AsyncUI] logitech_receiver.settings: report_rate: settings read 2 from <Device(255,C08B,G502 SE Hero Gaming Mouse,)>
00:35:14,490    DEBUG [AsyncUI] logitech_receiver.settings: dpi: settings read 2400 from <Device(255,C08B,G502 SE Hero Gaming Mouse,)>
00:35:14,492    DEBUG [MainThread] solaar.ui: status changed: <Device(255,C08B,G502 SE Hero Gaming Mouse,)> (NONE) None
00:35:14,492    DEBUG [MainThread] solaar.ui.icons: battery icon for None:None = battery-missing
00:35:14,492    DEBUG [MainThread] solaar.ui.tray: picked device with lowest battery: None
00:35:14,493    DEBUG [MainThread] solaar.ui.icons: battery icon for None:False = battery-missing
00:35:14,494    DEBUG [MainThread] solaar.ui: status changed: <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)> (NONE) initialization
00:35:14,494    DEBUG [MainThread] solaar.ui.icons: battery icon for None:None = battery-missing
00:35:14,494    DEBUG [MainThread] solaar.ui.tray: picked device with lowest battery: None
00:35:14,495    DEBUG [MainThread] solaar.ui.window: new device row ('/dev/hidraw5', 255, True, 'PRO Headset', 'audio-headset', None, None, <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>) at index 0
00:35:14,495    DEBUG [MainThread] solaar.ui: status changed: <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)> (NONE) None
00:35:14,496    DEBUG [MainThread] solaar.ui.icons: battery icon for None:None = battery-missing
00:35:14,496    DEBUG [MainThread] solaar.ui.tray: picked device with lowest battery: None
00:35:16,929    DEBUG [MainThread] solaar.ui.icons: battery icon for None:False = battery-missing
00:35:16,931    DEBUG [AsyncUI] logitech_receiver.settings: sidetone: settings read 18 from <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>
00:35:16,937    DEBUG [AsyncUI] logitech_receiver.settings: equalizer: settings read {0: 2, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0} from <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>
00:35:20,932     INFO [MainThread] solaar.configuration: saved ['1.1.3', {'_NAME': 'G502 SE Hero Gaming Mouse', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'pointer_speed', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'fn-swap', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_modelId': 'C08B00000000', '_unitId': '3539470D', 'dpi': 2400, 'onboard_profiles': 1, 'report_rate': 2}, {'_NAME': 'Logitech PRO X Wireless Gaming Headset', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'fn-swap', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params'], '_modelId': '000000000ABA', '_unitId': 'FFFFFFFF', 'equalizer': {0: 2, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0}, 'sidetone': 18, '_sensitive': {'equalizer': 'ignore'}}] to /home/jonas_jones/.config/solaar/config.yaml
00:35:21,528     INFO [MainThread] solaar.configuration: saved ['1.1.3', {'_NAME': 'G502 SE Hero Gaming Mouse', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'pointer_speed', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'fn-swap', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_modelId': 'C08B00000000', '_unitId': '3539470D', 'dpi': 2400, 'onboard_profiles': 1, 'report_rate': 2}, {'_NAME': 'Logitech PRO X Wireless Gaming Headset', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'fn-swap', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params'], '_modelId': '000000000ABA', '_unitId': 'FFFFFFFF', 'equalizer': {0: 2, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0}, 'sidetone': 18, '_sensitive': {'equalizer': True}}] to /home/jonas_jones/.config/solaar/config.yaml
00:35:21,529    DEBUG [AsyncUI] logitech_receiver.settings: equalizer: range field setting write {0: 2, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0} to <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>
00:35:21,536     INFO [AsyncUI] solaar.configuration: saved ['1.1.3', {'_NAME': 'G502 SE Hero Gaming Mouse', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'pointer_speed', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'fn-swap', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_modelId': 'C08B00000000', '_unitId': '3539470D', 'dpi': 2400, 'onboard_profiles': 1, 'report_rate': 2}, {'_NAME': 'Logitech PRO X Wireless Gaming Headset', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'fn-swap', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params'], '_modelId': '000000000ABA', '_unitId': 'FFFFFFFF', 'equalizer': {0: 2, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0}, 'sidetone': 18, '_sensitive': {'equalizer': True}}] to /home/jonas_jones/.config/solaar/config.yaml
00:35:21,536    DEBUG [AsyncUI] logitech_receiver.settings: equalizer: range field setting prepare map write({0: 2, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0}) => b'\x02\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00'
00:35:21,536     INFO [AsyncUI] logitech_receiver.base: New lock <_ThreadedHandle(/dev/hidraw5)>
00:35:21,537    DEBUG [AsyncUI] logitech_receiver.base: (22) <= w[11 FF 0439 02020000000000000000000000000000]
00:35:21,598    DEBUG [ReceiverListener:hidraw5] logitech_receiver.base: (14) => r[11 FF 0439 02020000000000000000000000000000]
00:35:21,598    DEBUG [AsyncUI] logitech_receiver.base: (22) => r[11 FF 0439 02020000000000000000000000000000]
00:35:25,326    DEBUG [AsyncUI] logitech_receiver.settings: equalizer: range field setting write key 0 value 0 to <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>
00:35:25,326    DEBUG [AsyncUI] logitech_receiver.settings: equalizer: range field setting write {0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0} to <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>
00:35:25,333     INFO [AsyncUI] solaar.configuration: saved ['1.1.3', {'_NAME': 'G502 SE Hero Gaming Mouse', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'pointer_speed', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'fn-swap', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_modelId': 'C08B00000000', '_unitId': '3539470D', 'dpi': 2400, 'onboard_profiles': 1, 'report_rate': 2}, {'_NAME': 'Logitech PRO X Wireless Gaming Headset', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'fn-swap', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params'], '_modelId': '000000000ABA', '_unitId': 'FFFFFFFF', 'equalizer': {0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0}, 'sidetone': 18, '_sensitive': {'equalizer': True}}] to /home/jonas_jones/.config/solaar/config.yaml
00:35:25,333    DEBUG [AsyncUI] logitech_receiver.settings: equalizer: range field setting prepare map write({0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0}) => b'\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
00:35:25,333    DEBUG [AsyncUI] logitech_receiver.base: (22) <= w[11 FF 043D 02000000000000000000000000000000]
00:35:25,389    DEBUG [ReceiverListener:hidraw5] logitech_receiver.base: (14) => r[11 FF 043D 02000000000000000000000000000000]
00:35:25,389    DEBUG [AsyncUI] logitech_receiver.base: (22) => r[11 FF 043D 02000000000000000000000000000000]
00:35:26,606    DEBUG [AsyncUI] logitech_receiver.settings: equalizer: range field setting write key 0 value 4 to <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>
00:35:26,606    DEBUG [AsyncUI] logitech_receiver.settings: equalizer: range field setting write {0: 4, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0} to <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>
00:35:26,613     INFO [AsyncUI] solaar.configuration: saved ['1.1.3', {'_NAME': 'G502 SE Hero Gaming Mouse', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'pointer_speed', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'fn-swap', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_modelId': 'C08B00000000', '_unitId': '3539470D', 'dpi': 2400, 'onboard_profiles': 1, 'report_rate': 2}, {'_NAME': 'Logitech PRO X Wireless Gaming Headset', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'fn-swap', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params'], '_modelId': '000000000ABA', '_unitId': 'FFFFFFFF', 'equalizer': {0: 4, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0}, 'sidetone': 18, '_sensitive': {'equalizer': True}}] to /home/jonas_jones/.config/solaar/config.yaml
00:35:26,613    DEBUG [AsyncUI] logitech_receiver.settings: equalizer: range field setting prepare map write({0: 4, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0}) => b'\x02\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00'
00:35:26,613    DEBUG [AsyncUI] logitech_receiver.base: (22) <= w[11 FF 043A 02040000000000000000000000000000]
00:35:26,673    DEBUG [ReceiverListener:hidraw5] logitech_receiver.base: (14) => r[11 FF 043A 02040000000000000000000000000000]
00:35:26,674    DEBUG [AsyncUI] logitech_receiver.base: (22) => r[11 FF 043A 02040000000000000000000000000000]
00:35:27,951    DEBUG [AsyncUI] logitech_receiver.settings: equalizer: range field setting write key 0 value 12 to <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>
00:35:27,951    DEBUG [AsyncUI] logitech_receiver.settings: equalizer: range field setting write {0: 12, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0} to <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>
00:35:27,955     INFO [AsyncUI] solaar.configuration: saved ['1.1.3', {'_NAME': 'G502 SE Hero Gaming Mouse', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'pointer_speed', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'fn-swap', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_modelId': 'C08B00000000', '_unitId': '3539470D', 'dpi': 2400, 'onboard_profiles': 1, 'report_rate': 2}, {'_NAME': 'Logitech PRO X Wireless Gaming Headset', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'fn-swap', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params'], '_modelId': '000000000ABA', '_unitId': 'FFFFFFFF', 'equalizer': {0: 12, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0}, 'sidetone': 18, '_sensitive': {'equalizer': True}}] to /home/jonas_jones/.config/solaar/config.yaml
00:35:27,955    DEBUG [AsyncUI] logitech_receiver.settings: equalizer: range field setting prepare map write({0: 12, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0}) => b'\x02\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00'
00:35:27,955    DEBUG [AsyncUI] logitech_receiver.base: (22) <= w[11 FF 043F 020C0000000000000000000000000000]
00:35:28,011    DEBUG [AsyncUI] logitech_receiver.base: (22) => r[11 FF 043F 020C0000000000000000000000000000]
00:35:28,011    DEBUG [ReceiverListener:hidraw5] logitech_receiver.base: (14) => r[11 FF 043F 020C0000000000000000000000000000]
00:35:29,257    DEBUG [AsyncUI] logitech_receiver.settings: equalizer: range field setting write key 0 value -12 to <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>
00:35:29,257    DEBUG [AsyncUI] logitech_receiver.settings: equalizer: range field setting write {0: -12, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0} to <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>
00:35:29,260     INFO [AsyncUI] solaar.configuration: saved ['1.1.3', {'_NAME': 'G502 SE Hero Gaming Mouse', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'pointer_speed', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'fn-swap', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_modelId': 'C08B00000000', '_unitId': '3539470D', 'dpi': 2400, 'onboard_profiles': 1, 'report_rate': 2}, {'_NAME': 'Logitech PRO X Wireless Gaming Headset', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'fn-swap', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params'], '_modelId': '000000000ABA', '_unitId': 'FFFFFFFF', 'equalizer': {0: -12, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0}, 'sidetone': 18, '_sensitive': {'equalizer': True}}] to /home/jonas_jones/.config/solaar/config.yaml
00:35:29,261    DEBUG [AsyncUI] logitech_receiver.settings: equalizer: range field setting prepare map write({0: -12, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0}) => b'\x02\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00'
00:35:29,261    DEBUG [AsyncUI] logitech_receiver.base: (22) <= w[11 FF 043B 02F40000000000000000000000000000]
00:35:29,318    DEBUG [ReceiverListener:hidraw5] logitech_receiver.base: (14) => r[11 FF 043B 02F40000000000000000000000000000]
00:35:29,318    DEBUG [AsyncUI] logitech_receiver.base: (22) => r[11 FF 043B 02F40000000000000000000000000000]
00:35:31,227    DEBUG [AsyncUI] logitech_receiver.settings: equalizer: range field setting write key 0 value 0 to <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>
00:35:31,227    DEBUG [AsyncUI] logitech_receiver.settings: equalizer: range field setting write {0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0} to <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>
00:35:31,234     INFO [AsyncUI] solaar.configuration: saved ['1.1.3', {'_NAME': 'G502 SE Hero Gaming Mouse', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'pointer_speed', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'fn-swap', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_modelId': 'C08B00000000', '_unitId': '3539470D', 'dpi': 2400, 'onboard_profiles': 1, 'report_rate': 2}, {'_NAME': 'Logitech PRO X Wireless Gaming Headset', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'fn-swap', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params'], '_modelId': '000000000ABA', '_unitId': 'FFFFFFFF', 'equalizer': {0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0}, 'sidetone': 18, '_sensitive': {'equalizer': True}}] to /home/jonas_jones/.config/solaar/config.yaml
00:35:31,234    DEBUG [AsyncUI] logitech_receiver.settings: equalizer: range field setting prepare map write({0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0}) => b'\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
00:35:31,234    DEBUG [AsyncUI] logitech_receiver.base: (22) <= w[11 FF 043F 02000000000000000000000000000000]
00:35:31,293    DEBUG [AsyncUI] logitech_receiver.base: (22) => r[11 FF 043F 02000000000000000000000000000000]
00:35:31,293    DEBUG [ReceiverListener:hidraw5] logitech_receiver.base: (14) => r[11 FF 043F 02000000000000000000000000000000]

I set the first equalizer setting to 12 and -12 and a bunch of numbers in between, no errors whatsoever.

pfps commented 2 years ago

OK. I'll merge this PR in.

But still no information on the battery feature.

pfps commented 2 years ago

@tarneaux I have information on the battery feature but I need the values for particular levels. Can you clone Solaar and run ./tools/hidconsole to find out some information for me?

The information gathering would go as follows. Open Solaar and find out the device node for your headset by opening the detail pane (click on the light bulb icon) and get the value for Path. Then from the Solaar clone directory run ./tools/hidconsole /dev/hidrawN where N is taken from the Path value. Then get the current value for the battery level by entering 11 FF 060C 00000000000000000000000000000000. Post the output, the last bit should look something like 11 FF 060C XXXX0Y00000000000000000000000000. The XXXX is the battery level and the Y has some status information. Try this before charging the battery and also when the battery is fully charged.

Thanks.

pfps commented 2 years ago

PR #1643 adds partial support for the ADC MEASUREMENT feature. If your device has this feature PR #1643 should show the raw adc value in the Solaar main window and also in bin/solaar show. Please try them both out.

To clone and use Solar from its GitHub repository

git clone https://github.com/pwr-Solaar/Solaar.git
cd Solaar

Run Solaar as bin/solaar from this directory.

To run PR #1643, first clone Solaar if you have not already done so and cd to the clone directory. The first time you download the pull request, fetch it into a new branch and checkout that branch, as in:

git fetch origin pull/1643/head:pull_1643
git checkout pull_1643

To download a new version of the pull request, fetch it and then set your pull branch to the new fetch, as in:

git checkout pull_1643
git fetch origin pull/1643/head
git reset --hard FETCH_HEAD
Victor-MichelDansac commented 2 years ago

@pfps Since I've been monitoring this thread for a little while, let me jump in. I've gathered the information as requested.

The output of bin/solaar show is as follows. The battery indicator seems to work, relaunching bin/solaar show after a little while shows a decrease in the mV value.

Logitech PRO X Wireless Gaming Headset
     Device path  : /dev/hidraw2
     USB id       : 046d:0ABA
     Codename     : PRO Headset
     Kind         : headset
     Protocol     : HID++ 4.2
     Serial number: 
     Model ID:      000000000ABA
     Unit ID:       FFFFFFFF
          Firmware: U1  12.02.B0211
     Supports 6 HID++ 2.0 features:
         0: ROOT                   {0000}   
         1: FEATURE SET            {0001}   
         2: DEVICE FW VERSION      {0003}   
            Firmware: Firmware U1  12.02.B0211 0ABA
            Unit ID: FFFFFFFF  Model ID: 000000000ABA  Transport IDs: {'btid': '0000', 'btleid': '0000'}
         3: DEVICE NAME            {0005}   
            Name: PRO X Wireless Gaming Headset
            Kind: None
         4: EQUALIZER              {8310}   
            Equalizer (saved): {0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0}
            Equalizer        : {0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0}
         5: SIDETONE               {8300}   
            Sidetone (saved): 0
            Sidetone        : 0
     Battery: N/A 4088mV , discharging.

However, /bin/solaar -ddd seems to throw an error. The sound in the headset cuts for about 1 second when launching the GUI. Also, the sidetone and equalizer are shown but I cannot interact with them. (but that already was the case before)

10:52:09,660     INFO [MainThread] root: language en_GB (UTF-8), translations path None
10:52:09,803     INFO [MainThread] logitech_receiver.diversion: GDK Keymap set up
10:52:09,808    DEBUG [MainThread] solaar.ui.tray: using Ayatana AppIndicator3
10:52:09,813     INFO [MainThread] solaar.upower: connected to system dbus, watching for suspend/resume events
10:52:09,833    DEBUG [MainThread] solaar.ui: startup registered=True, remote=False
10:52:09,833    DEBUG [AsyncUI] solaar.tasks: started
10:52:09,834     INFO [MainThread] solaar.ui.notify: starting desktop notifications
10:52:09,836    DEBUG [MainThread] solaar.ui.icons: sys.path[0] = /home/victor/temp/Solaar/lib
10:52:09,836    DEBUG [MainThread] solaar.ui.icons: looking for icons in /home/victor/temp/Solaar/icons
10:52:09,836    DEBUG [MainThread] solaar.ui.icons: looking for icons in /home/victor/temp/Solaar/share/solaar/icons
10:52:09,836    DEBUG [MainThread] solaar.ui.icons: icon theme paths: ['/home/victor/temp/Solaar/share/solaar/icons', '/home/victor/.local/share/icons', '/home/victor/.icons', '/usr/share/gnome/icons', '/usr/local/share/icons', '/usr/share/icons', '/var/lib/snapd/desktop/icons', '/usr/share/gnome/pixmaps', '/usr/local/share/pixmaps', '/usr/share/pixmaps', '/var/lib/snapd/desktop/pixmaps']
10:52:09,936     INFO [MainThread] solaar.listener: starting receiver listening threads
10:52:09,942    DEBUG [MainThread] hidapi.udev: Found device BID 0003 VID 0000046D PID 00000ABA INTERFACE 3 FILTER 3
10:52:09,942     INFO [MainThread] solaar.listener: receiver event add DeviceInfo(path='/dev/hidraw2', vendor_id='046D', product_id='0ABA', serial='', release=None, manufacturer=None, product=None, interface=3, driver='hid-generic', bus_id=3, isDevice=True)
10:52:09,942    DEBUG [MainThread] logitech_receiver.base: (13) pinging device 255
10:52:09,942     INFO [MainThread] logitech_receiver.base: New lock 13
10:52:09,942    DEBUG [MainThread] logitech_receiver.base: (13) <= w[11 FF 001C 00000A00000000000000000000000000]
10:52:09,944    DEBUG [MainThread] logitech_receiver.base: (13) => r[11 FF 001C 04020A00000000000000000000000000]
10:52:09,955    DEBUG [MainThread] solaar.configuration: load => ['1.1.4rc1', {'_NAME': 'Logitech PRO X Wireless Gaming Headset', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'fn-swap', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params'], '_battery': 7968, '_modelId': '000000000ABA', '_sensitive': {'equalizer': True}, '_unitId': 'FFFFFFFF', 'equalizer': {0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0}, 'sidetone': 0}, {'_NAME': 'Wireless Mouse MX Master', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'speed-change', 'backlight', 'backlight-timed', 'fn-swap', 'persistent-remappable-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': 'B01740600000', '_unitId': 'D615A538', 'change-host': None, 'divert-keys': {82: 0, 83: 0, 86: 0, 195: 0, 196: 0}, 'dpi': 1000, 'dpi-sliding': 0, 'gesture2-divert': {46: False}, 'gesture2-gestures': {45: True, 46: True}, 'hires-scroll-mode': False, 'hires-smooth-invert': False, 'hires-smooth-resolution': False, 'mouse-gestures': 0, 'reprogrammable-keys': {80: 80, 81: 81, 82: 82, 83: 83, 86: 86, 195: 195, 196: 196}, 'smart-shift': 30}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}]
10:52:09,955    DEBUG [MainThread] logitech_receiver.base: (13) <= w[11 FF 0009 00010000000000000000000000000000]
10:52:09,959    DEBUG [MainThread] logitech_receiver.base: (13) => r[11 FF 0009 01000000000000000000000000000000]
10:52:09,959    DEBUG [MainThread] logitech_receiver.base: (13) <= w[11 FF 010A 00000000000000000000000000000000]
10:52:09,964    DEBUG [MainThread] logitech_receiver.base: (13) => r[11 FF 010A 06000000000000000000000000000000]
10:52:09,964    DEBUG [MainThread] logitech_receiver.base: (13) <= w[11 FF 000A 00030000000000000000000000000000]
10:52:09,969    DEBUG [MainThread] logitech_receiver.base: (13) => r[11 FF 000A 02000200000000000000000000000000]
10:52:09,969    DEBUG [MainThread] logitech_receiver.base: (13) <= w[11 FF 020B 00000000000000000000000000000000]
10:52:09,975    DEBUG [MainThread] logitech_receiver.base: (13) => r[11 FF 020B 01FFFFFFFF0003000000000ABA010000]
10:52:09,975    DEBUG [MainThread] logitech_receiver.base: (13) <= w[11 FF 000B 1F200000000000000000000000000000]
10:52:09,980    DEBUG [MainThread] logitech_receiver.base: (13) => r[11 FF 000B 06000400000000000000000000000000]
10:52:09,980    DEBUG [MainThread] logitech_receiver.base: (13) <= w[11 FF 060A 00000000000000000000000000000000]
10:52:10,025    DEBUG [MainThread] logitech_receiver.base: (13) => r[11 FF 060A 0FF40100000000000000000000000000]
10:52:10,025    DEBUG [MainThread] logitech_receiver.status: <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>: battery None, discharging
10:52:10,025     INFO [MainThread] solaar.listener: status_changed <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>: paired online, {'BATTERY LEVEL': None, 'BATTERY STATUS': NamedInt(0, 'discharging'), 'BATTERY NEXT LEVEL': None, 'BATTERY VOLTAGE': 4084, 'BATTERY CHARGING': False, 'ERROR': None} (0) 
10:52:10,026    DEBUG [MainThread] logitech_receiver.base: (13) <= w[11 FF 000F 83000000000000000000000000000000]
10:52:10,030    DEBUG [MainThread] logitech_receiver.base: (13) => r[11 FF 000F 05000000000000000000000000000000]
10:52:10,030    DEBUG [MainThread] logitech_receiver.settings_templates: check_feature sidetone [SIDETONE] detected <Setting([feature:range] PRO Headset:sidetone=None)>
10:52:10,030    DEBUG [MainThread] logitech_receiver.base: (13) <= w[11 FF 000B 83100000000000000000000000000000]
10:52:10,034    DEBUG [MainThread] logitech_receiver.base: (13) => r[11 FF 000B 04000100000000000000000000000000]
10:52:10,034    DEBUG [MainThread] logitech_receiver.base: (13) <= w[11 FF 040A 00000000000000000000000000000000]
10:52:10,079    DEBUG [MainThread] logitech_receiver.base: (13) => r[11 FF 040A 0A0C0100000000000000000000000000]
10:52:10,079    DEBUG [MainThread] logitech_receiver.base: (13) <= w[11 FF 0419 00000000000000000000000000000000]
10:52:10,125    DEBUG [MainThread] logitech_receiver.base: (13) => r[11 FF 0419 0000200040007D00FA01F403E807D000]
10:52:10,127    DEBUG [MainThread] logitech_receiver.base: (13) <= w[11 FF 0418 07000000000000000000000000000000]
10:52:10,170    DEBUG [MainThread] logitech_receiver.base: (13) => r[11 FF 0418 070FA01F403E80000000000000000000]
10:52:10,172    DEBUG [MainThread] logitech_receiver.settings_templates: check_feature equalizer [EQUALIZER] detected <Setting([feature:packed range] PRO Headset:equalizer=None)>
10:52:10,172     INFO [MainThread] logitech_receiver.status: <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)> pushing device settings [<Setting([feature:range] PRO Headset:sidetone=None)>, <Setting([feature:packed range] PRO Headset:equalizer=None)>]
10:52:10,172    DEBUG [MainThread] logitech_receiver.settings: sidetone: apply None (<Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>)
10:52:10,172    DEBUG [MainThread] logitech_receiver.settings: sidetone: settings read None from <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>
10:52:10,172    DEBUG [MainThread] logitech_receiver.settings: sidetone: setting write 0 to <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>
10:52:10,172    DEBUG [MainThread] logitech_receiver.settings: sidetone: settings prepare write(0) => b'\x00'
10:52:10,173    DEBUG [MainThread] logitech_receiver.base: (13) <= w[11 FF 051F 00000000000000000000000000000000]
10:52:10,215    DEBUG [MainThread] logitech_receiver.base: (13) => r[11 FF 051F 00000000000000000000000000000000]
10:52:10,215    DEBUG [MainThread] logitech_receiver.settings: equalizer: apply None (<Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>)
10:52:10,216    DEBUG [MainThread] logitech_receiver.settings: equalizer: settings read None from <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>
10:52:10,216    DEBUG [MainThread] logitech_receiver.settings: equalizer: range field setting write {0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0} to <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>
10:52:10,216    DEBUG [MainThread] logitech_receiver.settings: equalizer: range field setting prepare map write({0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0}) => b'\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
10:52:10,216    DEBUG [MainThread] logitech_receiver.base: (13) <= w[11 FF 043D 02000000000000000000000000000000]
10:52:11,134  WARNING [MainThread] logitech_receiver.base: timeout (0.92/0.90) on device 255 request {043D} params [0200000000000000000000]
10:52:11,134     INFO [MainThread] solaar.listener: status_changed <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>: paired online, {'BATTERY LEVEL': None, 'BATTERY STATUS': NamedInt(0, 'discharging'), 'BATTERY NEXT LEVEL': None, 'BATTERY VOLTAGE': 4084, 'BATTERY CHARGING': False, 'ERROR': None} (0) initialization
10:52:11,135     INFO [ReceiverListener:hidraw2] logitech_receiver.listener: started with <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)> (13)
10:52:11,135     INFO [ReceiverListener:hidraw2] solaar.listener: <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>: notifications listener has started (13)
10:52:11,135     INFO [ReceiverListener:hidraw2] solaar.listener: status_changed <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>: paired online, {'BATTERY LEVEL': None, 'BATTERY STATUS': NamedInt(0, 'discharging'), 'BATTERY NEXT LEVEL': None, 'BATTERY VOLTAGE': 4084, 'BATTERY CHARGING': False, 'ERROR': None, 'NOTIFICATION FLAGS': False} (0) 
10:52:11,139    DEBUG [MainThread] hidapi.udev: Found device BID 0005 VID 0000046D PID 0000B017 INTERFACE None FILTER None
10:52:11,139     INFO [MainThread] solaar.listener: receiver event add DeviceInfo(path='/dev/hidraw6', vendor_id='046D', product_id='B017', serial='f1:4e:1f:56:21:a1', release=None, manufacturer=None, product=None, interface=None, driver='hid-generic', bus_id=5, isDevice=True)
10:52:11,139    DEBUG [MainThread] logitech_receiver.base: (14) pinging device 255
10:52:11,140     INFO [MainThread] logitech_receiver.base: New lock 14
10:52:11,140    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 0018 0000E500000000000000000000000000]
10:52:11,170    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 0018 0405E500000000000000000000000000]
10:52:11,170    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 000C 00010000000000000000000000000000]
10:52:11,185    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 000C 01000100000000000000000000000000]
10:52:11,186    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 010B 00000000000000000000000000000000]
10:52:11,200    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 010B 1B000000000000000000000000000000]
10:52:11,201    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 000F 00030000000000000000000000000000]
10:52:11,222    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 000F 02000200000000000000000000000000]
10:52:11,222    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 020C 00000000000000000000000000000000]
10:52:11,238    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 020C 04D615A5380006B01740600000000000]
10:52:11,238    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 000C 00050000000000000000000000000000]
10:52:11,253    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 000C 03000000000000000000000000000000]
10:52:11,253    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 030B 00000000000000000000000000000000]
10:52:11,274    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 030B 18000000000000000000000000000000]
10:52:11,274    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 031E 00000000000000000000000000000000]
10:52:11,290    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 031E 576972656C657373204D6F757365204D]
10:52:11,290    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 0318 10000000000000000000000000000000]
10:52:11,305    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 0318 58204D61737465720000000000000000]
10:52:11,305    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 000C 21210000000000000000000000000000]
10:52:11,327    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 000C 0D000000000000000000000000000000]
10:52:11,327    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 0008 00070000000000000000000000000000]
10:52:11,343    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 0008 00000000000000000000000000000000]
10:52:11,327    DEBUG [MainThread] logitech_receiver.settings_templates: check_feature hires-smooth-invert [HIRES WHEEL] detected <Setting([feature:toggle] Wireless:hires-smooth-invert=None)>
10:52:11,343    DEBUG [MainThread] logitech_receiver.settings_templates: check_feature hires-smooth-resolution [HIRES WHEEL] detected <Setting([feature:toggle] Wireless:hires-smooth-resolution=None)>
10:52:11,343    DEBUG [MainThread] logitech_receiver.settings_templates: check_feature hires-scroll-mode [HIRES WHEEL] detected <Setting([feature:toggle] Wireless:hires-scroll-mode=None)>
10:52:11,343    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 000A 21100000000000000000000000000000]
10:52:11,357    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 000A 0C000000000000000000000000000000]
10:52:11,357    DEBUG [MainThread] logitech_receiver.settings_templates: check_feature smart-shift [SMART SHIFT] detected <Setting([feature:range] Wireless:smart-shift=None)>
10:52:11,358    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 000E 22010000000000000000000000000000]
10:52:11,379    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 000E 0A000100000000000000000000000000]
10:52:11,380    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 0A1B 00000000000000000000000000000000]
10:52:11,402    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 0A1B 000190E0C80640000000000000000000]
10:52:11,402    DEBUG [MainThread] logitech_receiver.settings_templates: check_feature dpi [ADJUSTABLE DPI] detected <Setting([feature:choice] Wireless:dpi=None)>
10:52:11,403    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 000B 1B040000000000000000000000000000]
10:52:11,417    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 000B 09000300000000000000000000000000]
10:52:11,417    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 000F 1B010000000000000000000000000000]
10:52:11,439    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 000F 00000000000000000000000000000000]
10:52:11,440    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 090C 00000000000000000000000000000000]
10:52:11,455    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 090C 08000000000000000000000000000000]
10:52:11,456    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 0918 00000000000000000000000000000000]
10:52:11,470    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 0918 00500038010001010000000000000000]
10:52:11,470    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 091E 01000000000000000000000000000000]
10:52:11,492    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 091E 00510039010001010000000000000000]
10:52:11,492    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 091F 02000000000000000000000000000000]
10:52:11,507    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 091F 0052003A310003070100000000000000]
10:52:11,508    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 091F 03000000000000000000000000000000]
10:52:11,522    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 091F 0053003C310002030100000000000000]
10:52:11,523    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 0918 04000000000000000000000000000000]
10:52:11,544    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 0918 0056003E310002030100000000000000]
10:52:11,545    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 091E 05000000000000000000000000000000]
10:52:11,560    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 091E 00C300A9310003070100000000000000]
10:52:11,560    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 091D 06000000000000000000000000000000]
10:52:11,575    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 091D 00C4009D310003070100000000000000]
10:52:11,575    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 091E 07000000000000000000000000000000]
10:52:11,597    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 091E 00D700B4A00004000300000000000000]
10:52:11,597    DEBUG [MainThread] logitech_receiver.settings_templates: check_feature dpi-sliding [REPROG CONTROLS V4] detected <Setting([feature:choice] Wireless:dpi-sliding=None)>
10:52:11,597    DEBUG [MainThread] logitech_receiver.settings_templates: check_feature mouse-gestures [REPROG CONTROLS V4] detected <Setting([feature:choice] Wireless:mouse-gestures=None)>
10:52:11,597    DEBUG [MainThread] logitech_receiver.settings_templates: check_feature reprogrammable-keys [REPROG CONTROLS V4] detected <Setting([feature:map choice] Wireless:reprogrammable-keys=None)>
10:52:11,598    DEBUG [MainThread] logitech_receiver.settings_templates: check_feature divert-keys [REPROG CONTROLS V4] detected <Setting([feature:map choice] Wireless:divert-keys=None)>
10:52:11,598    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 000C 18140000000000000000000000000000]
10:52:11,612    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 000C 08000100000000000000000000000000]
10:52:11,612    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 080E 00000000000000000000000000000000]
10:52:11,627    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 080E 03000100000000000000000000000000]
10:52:11,629    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 0009 18150000000000000000000000000000]
10:52:11,642    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 0009 00000000000000000000000000000000]
10:52:11,642    DEBUG [MainThread] logitech_receiver.settings_templates: check_feature change-host [CHANGE HOST] detected <Setting([feature:choice] Wireless:change-host=None)>
10:52:11,642    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 000F 65010000000000000000000000000000]
10:52:11,664    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 000F 0E000000000000000000000000000000]
10:52:11,665    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 0E0C 00000000000000000000000000000000]
10:52:11,680    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 0E0C 4203410142024204040041024204AF2E]
10:52:11,680    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 0E0C 00080000000000000000000000000000]
10:52:11,695    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 0E0C AD2D0100000000000000000000000000]
10:52:11,695    DEBUG [MainThread] logitech_receiver.settings_templates: check_feature gesture2-gestures [GESTURE 2] detected <Setting([feature:multiple toggle] Wireless:gesture2-gestures=None)>
10:52:11,695    DEBUG [MainThread] logitech_receiver.settings_templates: check_feature gesture2-divert [GESTURE 2] detected <Setting([feature:multiple toggle] Wireless:gesture2-divert=None)>
10:52:11,696     INFO [MainThread] logitech_receiver.status: <Device(255,B017,Wireless Mouse MX Master,)> pushing device settings [<Setting([feature:toggle] Wireless:hires-smooth-invert=None)>, <Setting([feature:toggle] Wireless:hires-smooth-resolution=None)>, <Setting([feature:toggle] Wireless:hires-scroll-mode=None)>, <Setting([feature:range] Wireless:smart-shift=None)>, <Setting([feature:choice] Wireless:dpi=None)>, <Setting([feature:choice] Wireless:dpi-sliding=None)>, <Setting([feature:choice] Wireless:mouse-gestures=None)>, <Setting([feature:map choice] Wireless:reprogrammable-keys=None)>, <Setting([feature:map choice] Wireless:divert-keys=None)>, <Setting([feature:choice] Wireless:change-host=None)>, <Setting([feature:multiple toggle] Wireless:gesture2-gestures=None)>, <Setting([feature:multiple toggle] Wireless:gesture2-divert=None)>]
10:52:11,696    DEBUG [MainThread] logitech_receiver.settings: hires-smooth-invert: apply None (<Device(255,B017,Wireless Mouse MX Master,)>)
10:52:11,696    DEBUG [MainThread] logitech_receiver.settings: hires-smooth-invert: settings read None from <Device(255,B017,Wireless Mouse MX Master,)>
10:52:11,696    DEBUG [MainThread] logitech_receiver.settings: hires-smooth-invert: setting write False to <Device(255,B017,Wireless Mouse MX Master,)>
10:52:11,696    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 0D1F 00000000000000000000000000000000]
10:52:11,716    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 0D1F 00000000000000000000000000000000]
10:52:11,716    DEBUG [MainThread] logitech_receiver.settings: hires-smooth-resolution: apply None (<Device(255,B017,Wireless Mouse MX Master,)>)
10:52:11,717    DEBUG [MainThread] logitech_receiver.settings: hires-smooth-resolution: settings read None from <Device(255,B017,Wireless Mouse MX Master,)>
10:52:11,717    DEBUG [MainThread] logitech_receiver.settings: hires-smooth-resolution: setting write False to <Device(255,B017,Wireless Mouse MX Master,)>
10:52:11,717    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 0D1C 00000000000000000000000000000000]
10:52:11,732    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 0D1C 00000000000000000000000000000000]
10:52:11,732    DEBUG [MainThread] logitech_receiver.settings: hires-scroll-mode: apply None (<Device(255,B017,Wireless Mouse MX Master,)>)
10:52:11,732    DEBUG [MainThread] logitech_receiver.settings: hires-scroll-mode: settings read None from <Device(255,B017,Wireless Mouse MX Master,)>
10:52:11,732    DEBUG [MainThread] logitech_receiver.settings: hires-scroll-mode: setting write False to <Device(255,B017,Wireless Mouse MX Master,)>
10:52:11,732    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 0D1D 00000000000000000000000000000000]
10:52:11,747    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 0D1D 00000000000000000000000000000000]
10:52:11,747    DEBUG [MainThread] logitech_receiver.settings: smart-shift: apply None (<Device(255,B017,Wireless Mouse MX Master,)>)
10:52:11,747    DEBUG [MainThread] logitech_receiver.settings: smart-shift: settings read None from <Device(255,B017,Wireless Mouse MX Master,)>
10:52:11,747    DEBUG [MainThread] logitech_receiver.settings: smart-shift: setting write 30 to <Device(255,B017,Wireless Mouse MX Master,)>
10:52:11,747    DEBUG [MainThread] logitech_receiver.settings: smart-shift: settings prepare write(30) => b'\x1e'
10:52:11,747    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 0C1A 021E0000000000000000000000000000]
10:52:11,769    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 0C1A 021E0000000000000000000000000000]
10:52:11,769    DEBUG [MainThread] logitech_receiver.settings: dpi: apply None (<Device(255,B017,Wireless Mouse MX Master,)>)
10:52:11,769    DEBUG [MainThread] logitech_receiver.settings: dpi: settings read None from <Device(255,B017,Wireless Mouse MX Master,)>
10:52:11,769    DEBUG [MainThread] logitech_receiver.settings: dpi: setting write 1000 to <Device(255,B017,Wireless Mouse MX Master,)>
10:52:11,769    DEBUG [MainThread] logitech_receiver.settings: dpi: settings prepare write(1000) => b'\x00\x03\xe8'
10:52:11,769    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 0A3A 0003E800000000000000000000000000]
10:52:11,785    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 0A3A 0003E800000000000000000000000000]
10:52:11,785    DEBUG [MainThread] logitech_receiver.settings: dpi-sliding: apply None (<Device(255,B017,Wireless Mouse MX Master,)>)
10:52:11,785    DEBUG [MainThread] logitech_receiver.settings: dpi-sliding: settings read None from <Device(255,B017,Wireless Mouse MX Master,)>
10:52:11,785    DEBUG [MainThread] logitech_receiver.settings: dpi-sliding: setting write 0 to <Device(255,B017,Wireless Mouse MX Master,)>
10:52:11,785    DEBUG [MainThread] logitech_receiver.settings: dpi-sliding: settings prepare write(0) => b'\x00\x00'
10:52:11,785    DEBUG [MainThread] logitech_receiver.settings: mouse-gestures: apply None (<Device(255,B017,Wireless Mouse MX Master,)>)
10:52:11,785    DEBUG [MainThread] logitech_receiver.settings: mouse-gestures: settings read None from <Device(255,B017,Wireless Mouse MX Master,)>
10:52:11,785    DEBUG [MainThread] logitech_receiver.settings: mouse-gestures: setting write 0 to <Device(255,B017,Wireless Mouse MX Master,)>
10:52:11,785    DEBUG [MainThread] logitech_receiver.settings: mouse-gestures: settings prepare write(0) => b'\x00\x00'
10:52:11,785    DEBUG [MainThread] logitech_receiver.settings: reprogrammable-keys: apply None (<Device(255,B017,Wireless Mouse MX Master,)>)
10:52:11,785    DEBUG [MainThread] logitech_receiver.settings: reprogrammable-keys: settings read None from <Device(255,B017,Wireless Mouse MX Master,)>
10:52:11,785    DEBUG [MainThread] logitech_receiver.settings: reprogrammable-keys: settings write {80: 80, 81: 81, 82: 82, 83: 83, 86: 86, 195: 195, 196: 196} to <Device(255,B017,Wireless Mouse MX Master,)>
10:52:11,785    DEBUG [MainThread] logitech_receiver.settings: reprogrammable-keys: settings prepare map write(80,80) => b'\x00P'
10:52:11,785    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 0938 00500000500000000000000000000000]
10:52:11,800    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 0938 00000000000000000000000000000000]
10:52:11,800    DEBUG [MainThread] logitech_receiver.hidpp20: REPROG_CONTROLS_v4 setCidReporting on device <Device(255,B017,Wireless Mouse MX Master,)> didn't echo request packet.
10:52:11,800    DEBUG [MainThread] logitech_receiver.settings: reprogrammable-keys: settings prepare map write(81,81) => b'\x00Q'
10:52:11,800    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 093E 00510000510000000000000000000000]
10:52:11,822    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 093E 00000000000000000000000000000000]
10:52:11,822    DEBUG [MainThread] logitech_receiver.hidpp20: REPROG_CONTROLS_v4 setCidReporting on device <Device(255,B017,Wireless Mouse MX Master,)> didn't echo request packet.
10:52:11,822    DEBUG [MainThread] logitech_receiver.settings: reprogrammable-keys: settings prepare map write(82,82) => b'\x00R'
10:52:11,822    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 0939 00520000520000000000000000000000]
10:52:11,837    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 0939 00000000000000000000000000000000]
10:52:11,837    DEBUG [MainThread] logitech_receiver.hidpp20: REPROG_CONTROLS_v4 setCidReporting on device <Device(255,B017,Wireless Mouse MX Master,)> didn't echo request packet.
10:52:11,837    DEBUG [MainThread] logitech_receiver.settings: reprogrammable-keys: settings prepare map write(83,83) => b'\x00S'
10:52:11,837    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 093B 00530000530000000000000000000000]
10:52:11,852    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 093B 00000000000000000000000000000000]
10:52:11,852    DEBUG [MainThread] logitech_receiver.hidpp20: REPROG_CONTROLS_v4 setCidReporting on device <Device(255,B017,Wireless Mouse MX Master,)> didn't echo request packet.
10:52:11,853    DEBUG [MainThread] logitech_receiver.settings: reprogrammable-keys: settings prepare map write(86,86) => b'\x00V'
10:52:11,853    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 0939 00560000560000000000000000000000]
10:52:11,874    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 0939 00000000000000000000000000000000]
10:52:11,875    DEBUG [MainThread] logitech_receiver.hidpp20: REPROG_CONTROLS_v4 setCidReporting on device <Device(255,B017,Wireless Mouse MX Master,)> didn't echo request packet.
10:52:11,875    DEBUG [MainThread] logitech_receiver.settings: reprogrammable-keys: settings prepare map write(195,195) => b'\x00\xc3'
10:52:11,875    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 093F 00C30000C30000000000000000000000]
10:52:11,890    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 093F 00000000000000000000000000000000]
10:52:11,890    DEBUG [MainThread] logitech_receiver.hidpp20: REPROG_CONTROLS_v4 setCidReporting on device <Device(255,B017,Wireless Mouse MX Master,)> didn't echo request packet.
10:52:11,890    DEBUG [MainThread] logitech_receiver.settings: reprogrammable-keys: settings prepare map write(196,196) => b'\x00\xc4'
10:52:11,891    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 093B 00C40000C40000000000000000000000]
10:52:11,905    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 093B 00000000000000000000000000000000]
10:52:11,905    DEBUG [MainThread] logitech_receiver.hidpp20: REPROG_CONTROLS_v4 setCidReporting on device <Device(255,B017,Wireless Mouse MX Master,)> didn't echo request packet.
10:52:11,905    DEBUG [MainThread] logitech_receiver.settings: divert-keys: apply None (<Device(255,B017,Wireless Mouse MX Master,)>)
10:52:11,905    DEBUG [MainThread] logitech_receiver.settings: divert-keys: settings read None from <Device(255,B017,Wireless Mouse MX Master,)>
10:52:11,905    DEBUG [MainThread] logitech_receiver.settings: divert-keys: settings write {82: 0, 83: 0, 86: 0, 195: 0, 196: 0} to <Device(255,B017,Wireless Mouse MX Master,)>
10:52:11,906    DEBUG [MainThread] logitech_receiver.settings: divert-keys: settings prepare map write(82,0) => b'\x00'
10:52:11,906    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 093C 00520200000000000000000000000000]
10:52:11,927    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 093C 00000000000000000000000000000000]
10:52:11,927    DEBUG [MainThread] logitech_receiver.hidpp20: REPROG_CONTROLS_v4 setCidReporting on device <Device(255,B017,Wireless Mouse MX Master,)> didn't echo request packet.
10:52:11,927    DEBUG [MainThread] logitech_receiver.settings: divert-keys: settings prepare map write(83,0) => b'\x00'
10:52:11,927    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 0939 00530200000000000000000000000000]
10:52:11,942    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 0939 00000000000000000000000000000000]
10:52:11,942    DEBUG [MainThread] logitech_receiver.hidpp20: REPROG_CONTROLS_v4 setCidReporting on device <Device(255,B017,Wireless Mouse MX Master,)> didn't echo request packet.
10:52:11,943    DEBUG [MainThread] logitech_receiver.settings: divert-keys: settings prepare map write(86,0) => b'\x00'
10:52:11,943    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 093F 00560200000000000000000000000000]
10:52:11,957    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 093F 00000000000000000000000000000000]
10:52:11,957    DEBUG [MainThread] logitech_receiver.hidpp20: REPROG_CONTROLS_v4 setCidReporting on device <Device(255,B017,Wireless Mouse MX Master,)> didn't echo request packet.
10:52:11,958    DEBUG [MainThread] logitech_receiver.settings: divert-keys: settings prepare map write(195,0) => b'\x00'
10:52:11,958    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 093A 00C30200000000000000000000000000]
10:52:11,979    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 093A 00000000000000000000000000000000]
10:52:11,979    DEBUG [MainThread] logitech_receiver.hidpp20: REPROG_CONTROLS_v4 setCidReporting on device <Device(255,B017,Wireless Mouse MX Master,)> didn't echo request packet.
10:52:11,980    DEBUG [MainThread] logitech_receiver.settings: divert-keys: settings prepare map write(196,0) => b'\x00'
10:52:11,980    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 093D 00C40200000000000000000000000000]
10:52:11,995    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 093D 00000000000000000000000000000000]
10:52:11,995    DEBUG [MainThread] logitech_receiver.hidpp20: REPROG_CONTROLS_v4 setCidReporting on device <Device(255,B017,Wireless Mouse MX Master,)> didn't echo request packet.
10:52:11,995    DEBUG [MainThread] logitech_receiver.settings: change-host: apply None (<Device(255,B017,Wireless Mouse MX Master,)>)
10:52:11,995    DEBUG [MainThread] logitech_receiver.settings: change-host: settings read None from <Device(255,B017,Wireless Mouse MX Master,)>
10:52:11,996    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 080A 00000000000000000000000000000000]
10:52:12,010    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 080A 03000100000000000000000000000000]
10:52:12,010    DEBUG [MainThread] logitech_receiver.settings: gesture2-gestures: apply None (<Device(255,B017,Wireless Mouse MX Master,)>)
10:52:12,010    DEBUG [MainThread] logitech_receiver.settings: gesture2-gestures: settings read None from <Device(255,B017,Wireless Mouse MX Master,)>
10:52:12,010    DEBUG [MainThread] logitech_receiver.settings: gesture2-gestures: bit field settings write {45: True, 46: True} to <Device(255,B017,Wireless Mouse MX Master,)>
10:52:12,011    DEBUG [MainThread] logitech_receiver.settings: gesture2-gestures: settings prepare map write({45: True, 46: True}) => [b'\x00\x01\x03\x03']
10:52:12,011    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 0E2B 00010303000000000000000000000000]
10:52:12,032    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 0E2B 00010303000000000000000000000000]
10:52:12,032    DEBUG [MainThread] logitech_receiver.settings: gesture2-divert: apply None (<Device(255,B017,Wireless Mouse MX Master,)>)
10:52:12,032    DEBUG [MainThread] logitech_receiver.settings: gesture2-divert: settings read None from <Device(255,B017,Wireless Mouse MX Master,)>
10:52:12,032    DEBUG [MainThread] logitech_receiver.settings: gesture2-divert: bit field settings write {46: False} to <Device(255,B017,Wireless Mouse MX Master,)>
10:52:12,032    DEBUG [MainThread] logitech_receiver.settings: gesture2-divert: settings prepare map write({46: False}) => [b'\x00\x01\x01\x00']
10:52:12,033    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 0E49 00010100000000000000000000000000]
10:52:12,047    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 0E49 00010100000000000000000000000000]
10:52:12,047    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 032C 00000000000000000000000000000000]
10:52:12,062    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 032C 03000000000000000000000000000000]
10:52:12,062     INFO [MainThread] solaar.listener: status_changed <Device(255,B017,Wireless Mouse MX Master,)>: paired online, {} (0) initialization
10:52:12,063     INFO [ReceiverListener:hidraw6] logitech_receiver.listener: started with <Device(255,B017,Wireless Mouse MX Master,)> (14)
10:52:12,063     INFO [ReceiverListener:hidraw6] solaar.listener: <Device(255,B017,Wireless Mouse MX Master,)>: notifications listener has started (14)
10:52:12,063     INFO [ReceiverListener:hidraw6] solaar.listener: status_changed <Device(255,B017,Wireless Mouse MX Master,)>: paired online, {'NOTIFICATION FLAGS': False} (0) 
10:52:12,063    DEBUG [MainThread] hidapi.udev: Found device BID 0005 VID 0000046D PID 0000B319 INTERFACE None FILTER None
10:52:12,064     INFO [MainThread] solaar.listener: receiver event add DeviceInfo(path='/dev/hidraw7', vendor_id='046D', product_id='B319', serial='34:88:5d:5d:f8:1e', release=None, manufacturer=None, product=None, interface=None, driver='hid-generic', bus_id=5, isDevice=True)
10:52:12,064    DEBUG [MainThread] logitech_receiver.base: (15) pinging device 255
10:52:12,064     INFO [MainThread] logitech_receiver.base: New lock 15
10:52:12,064    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 001D 00004800000000000000000000000000]
10:52:12,163    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 001D 02004800000000000000000000000000]
10:52:12,164    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 0008 00010000000000000000000000000000]
10:52:12,176    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 0008 01000000000000000000000000000000]
10:52:12,176    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 010D 00000000000000000000000000000000]
10:52:12,186    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 010D 0B000000000000000000000000000000]
10:52:12,186    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 0008 00030000000000000000000000000000]
10:52:12,198    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 0008 03000000000000000000000000000000]
10:52:12,199    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 0309 00000000000000000000000000000000]
10:52:12,208    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 0309 02000000000000000000000000000000]
10:52:12,209    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 0008 00050000000000000000000000000000]
10:52:12,221    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 0008 04000000000000000000000000000000]
10:52:12,221    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 040C 00000000000000000000000000000000]
10:52:12,233    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 040C 19000000000000000000000000000000]
10:52:12,233    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 041D 00000000000000000000000000000000]
10:52:12,243    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 041D 496C6C756D696E61746564204B657962]
10:52:12,244    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 0419 10000000000000000000000000000000]
10:52:12,254    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 0419 6F617264204B38313000000000000000]
10:52:12,254    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 0008 10000000000000000000000000000000]
10:52:12,266    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 0008 07000000000000000000000000000000]
10:52:12,266    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 0709 00000000000000000000000000000000]
10:52:12,276    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 0709 5A320000000000000000000000000000]
10:52:12,276    DEBUG [MainThread] logitech_receiver.hidpp20: battery status 90% charged, next 50%, status discharging
10:52:12,276    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 000D 10040000000000000000000000000000]
10:52:12,288    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 000D 00000000000000000000000000000000]
10:52:12,289    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 0008 10010000000000000000000000000000]
10:52:12,299    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 0008 00000000000000000000000000000000]
10:52:12,299    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 000F 1F200000000000000000000000000000]
10:52:12,311    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 000F 00000000000000000000000000000000]
10:52:12,335     INFO [MainThread] solaar.configuration: saved ['1.1.4rc1', {'_NAME': 'Logitech PRO X Wireless Gaming Headset', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'fn-swap', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params'], '_battery': 7968, '_modelId': '000000000ABA', '_sensitive': {'equalizer': True}, '_unitId': 'FFFFFFFF', 'equalizer': {0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0}, 'sidetone': 0}, {'_NAME': 'Wireless Mouse MX Master', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'speed-change', 'backlight', 'backlight-timed', 'fn-swap', 'persistent-remappable-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': 'B01740600000', '_unitId': 'D615A538', 'change-host': None, 'divert-keys': {82: 0, 83: 0, 86: 0, 195: 0, 196: 0}, 'dpi': 1000, 'dpi-sliding': 0, 'gesture2-divert': {46: False}, 'gesture2-gestures': {45: True, 46: True}, 'hires-scroll-mode': False, 'hires-smooth-invert': False, 'hires-smooth-resolution': False, 'mouse-gestures': 0, 'reprogrammable-keys': {80: 80, 81: 81, 82: 82, 83: 83, 86: 86, 195: 195, 196: 196}, 'smart-shift': 30}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_modelId': '000000000000', '_unitId': '00000000', '_battery': 0}] to /home/victor/.config/solaar/config.yaml
10:52:12,335    DEBUG [MainThread] logitech_receiver.status: <Device(255,B319,Illuminated Keyboard K810,)>: battery None, None
10:52:12,336    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 042A 00000000000000000000000000000000]
10:52:12,343    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 042A 00000000000000000000000000000000]
10:52:12,344    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 042E 00000000000000000000000000000000]
10:52:12,356    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 042E 00000000000000000000000000000000]
10:52:12,356     INFO [MainThread] solaar.listener: status_changed <Device(255,B319,Illuminated Keyboard K810,)>: paired online, {'BATTERY LEVEL': None, 'BATTERY STATUS': None, 'BATTERY NEXT LEVEL': None, 'BATTERY VOLTAGE': None, 'BATTERY CHARGING': False, 'ERROR': None} (0) 
10:52:12,357    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 042E 00000000000000000000000000000000]
10:52:12,366    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 042E 00000000000000000000000000000000]
10:52:12,366    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 000A 21200000000000000000000000000000]
10:52:12,378    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 000A 00000000000000000000000000000000]
10:52:12,379    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 000E 21300000000000000000000000000000]
10:52:12,388    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 000E 00000000000000000000000000000000]
10:52:12,388    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 000A 21210000000000000000000000000000]
10:52:12,401    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 000A 00000000000000000000000000000000]
10:52:12,401    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 000E 21100000000000000000000000000000]
10:52:12,411    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 000E 00000000000000000000000000000000]
10:52:12,411    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 000C 21110000000000000000000000000000]
10:52:12,423    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 000C 00000000000000000000000000000000]
10:52:12,424    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 000E 21500000000000000000000000000000]
10:52:12,433    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 000E 00000000000000000000000000000000]
10:52:12,434    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 0009 81000000000000000000000000000000]
10:52:12,446    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 0009 00000000000000000000000000000000]
10:52:12,446    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 0009 80600000000000000000000000000000]
10:52:12,456    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 0009 00000000000000000000000000000000]
10:52:12,456    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 000E 22050000000000000000000000000000]
10:52:12,468    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 000E 00000000000000000000000000000000]
10:52:12,468    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 000D 22010000000000000000000000000000]
10:52:12,478    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 000D 00000000000000000000000000000000]
10:52:12,478    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 000C 1B040000000000000000000000000000]
10:52:12,491    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 000C 00000000000000000000000000000000]
10:52:12,491    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 000D 19820000000000000000000000000000]
10:52:12,501    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 000D 00000000000000000000000000000000]
10:52:12,501    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 000F 19830000000000000000000000000000]
10:52:12,537    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 000F 00000000000000000000000000000000]
10:52:12,538    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 000D 40A00000000000000000000000000000]
10:52:12,546    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 000D 05000000000000000000000000000000]
10:52:12,547    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 0008 00070000000000000000000000000000]
10:52:12,558    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 0008 00000000000000000000000000000000]
10:52:12,546    DEBUG [MainThread] logitech_receiver.settings_templates: check_feature fn-swap [FN INVERSION] detected <Setting([feature:toggle] Illuminated:fn-swap=None)>
10:52:12,559    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 000E 1C000000000000000000000000000000]
10:52:12,568    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 000E 00000000000000000000000000000000]
10:52:12,568    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 000F 45210000000000000000000000000000]
10:52:12,581    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 000F 00000000000000000000000000000000]
10:52:12,581    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 000D 46000000000000000000000000000000]
10:52:12,591    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 000D 00000000000000000000000000000000]
10:52:12,591    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 000E 80100000000000000000000000000000]
10:52:12,603    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 000E 00000000000000000000000000000000]
10:52:12,604    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 000A 80200000000000000000000000000000]
10:52:12,613    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 000A 00000000000000000000000000000000]
10:52:12,614    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 000C 80300000000000000000000000000000]
10:52:12,627    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 000C 00000000000000000000000000000000]
10:52:12,630    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 000A 45310000000000000000000000000000]
10:52:12,637    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 000A 00000000000000000000000000000000]
10:52:12,637    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 000F 45300000000000000000000000000000]
10:52:12,648    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 000F 00000000000000000000000000000000]
10:52:12,648    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 000B 18140000000000000000000000000000]
10:52:12,658    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 000B 00000000000000000000000000000000]
10:52:12,658    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 000C 65010000000000000000000000000000]
10:52:12,671    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 000C 00000000000000000000000000000000]
10:52:12,671    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 000A 83000000000000000000000000000000]
10:52:12,681    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 000A 00000000000000000000000000000000]
10:52:12,681    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 0008 83100000000000000000000000000000]
10:52:12,693    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 0008 00000000000000000000000000000000]
10:52:12,721     INFO [MainThread] solaar.configuration: saved ['1.1.4rc1', {'_NAME': 'Logitech PRO X Wireless Gaming Headset', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'fn-swap', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params'], '_battery': 7968, '_modelId': '000000000ABA', '_sensitive': {'equalizer': True}, '_unitId': 'FFFFFFFF', 'equalizer': {0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0}, 'sidetone': 0}, {'_NAME': 'Wireless Mouse MX Master', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'speed-change', 'backlight', 'backlight-timed', 'fn-swap', 'persistent-remappable-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': 'B01740600000', '_unitId': 'D615A538', 'change-host': None, 'divert-keys': {82: 0, 83: 0, 86: 0, 195: 0, 196: 0}, 'dpi': 1000, 'dpi-sliding': 0, 'gesture2-divert': {46: False}, 'gesture2-gestures': {45: True, 46: True}, 'hires-scroll-mode': False, 'hires-smooth-invert': False, 'hires-smooth-resolution': False, 'mouse-gestures': 0, 'reprogrammable-keys': {80: 80, 81: 81, 82: 82, 83: 83, 86: 86, 195: 195, 196: 196}, 'smart-shift': 30}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_modelId': '000000000000', '_unitId': '00000000', '_battery': 0, '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer']}] to /home/victor/.config/solaar/config.yaml
10:52:12,722     INFO [MainThread] logitech_receiver.status: <Device(255,B319,Illuminated Keyboard K810,)> pushing device settings [<Setting([feature:toggle] Illuminated:fn-swap=None)>]
10:52:12,722    DEBUG [MainThread] logitech_receiver.settings: fn-swap: apply None (<Device(255,B319,Illuminated Keyboard K810,)>)
10:52:12,722    DEBUG [MainThread] logitech_receiver.settings: fn-swap: settings read None from <Device(255,B319,Illuminated Keyboard K810,)>
10:52:12,722    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 050A 00000000000000000000000000000000]
10:52:12,739    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 050A 01010000000000000000000000000000]
10:52:12,739    DEBUG [MainThread] logitech_receiver.settings: BooleanValidator: validate read b'\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' => 01
10:52:12,746     INFO [MainThread] solaar.configuration: saved ['1.1.4rc1', {'_NAME': 'Logitech PRO X Wireless Gaming Headset', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'fn-swap', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params'], '_battery': 7968, '_modelId': '000000000ABA', '_sensitive': {'equalizer': True}, '_unitId': 'FFFFFFFF', 'equalizer': {0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0}, 'sidetone': 0}, {'_NAME': 'Wireless Mouse MX Master', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'speed-change', 'backlight', 'backlight-timed', 'fn-swap', 'persistent-remappable-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': 'B01740600000', '_unitId': 'D615A538', 'change-host': None, 'divert-keys': {82: 0, 83: 0, 86: 0, 195: 0, 196: 0}, 'dpi': 1000, 'dpi-sliding': 0, 'gesture2-divert': {46: False}, 'gesture2-gestures': {45: True, 46: True}, 'hires-scroll-mode': False, 'hires-smooth-invert': False, 'hires-smooth-resolution': False, 'mouse-gestures': 0, 'reprogrammable-keys': {80: 80, 81: 81, 82: 82, 83: 83, 86: 86, 195: 195, 196: 196}, 'smart-shift': 30}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_modelId': '000000000000', '_unitId': '00000000', '_battery': 0, '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], 'fn-swap': True}] to /home/victor/.config/solaar/config.yaml
10:52:12,746    DEBUG [MainThread] logitech_receiver.settings: fn-swap: setting write True to <Device(255,B319,Illuminated Keyboard K810,)>
10:52:12,746    DEBUG [MainThread] logitech_receiver.settings: BooleanValidator: prepare_write(True, None) => b'\x01'
10:52:12,746    DEBUG [MainThread] logitech_receiver.settings: fn-swap: settings prepare write(True) => b'\x01'
10:52:12,747    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 051F 01000000000000000000000000000000]
10:52:12,761    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 051F 01010000000000000000000000000000]
10:52:12,761    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 042D 00000000000000000000000000000000]
10:52:12,771    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 042D 00000000000000000000000000000000]
10:52:12,771     INFO [MainThread] solaar.listener: status_changed <Device(255,B319,Illuminated Keyboard K810,)>: paired online, {'BATTERY LEVEL': None, 'BATTERY STATUS': None, 'BATTERY NEXT LEVEL': None, 'BATTERY VOLTAGE': None, 'BATTERY CHARGING': False, 'ERROR': None} (0) initialization
10:52:12,771    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 042D 00000000000000000000000000000000]
10:52:12,788    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 042D 00000000000000000000000000000000]
10:52:12,788     INFO [ReceiverListener:hidraw7] logitech_receiver.listener: started with <Device(255,B319,Illuminated Keyboard K810,)> (15)
10:52:12,789     INFO [ReceiverListener:hidraw7] solaar.listener: <Device(255,B319,Illuminated Keyboard K810,)>: notifications listener has started (15)
10:52:12,789     INFO [ReceiverListener:hidraw7] logitech_receiver.base: New lock <_ThreadedHandle(/dev/hidraw7)>
10:52:12,789    DEBUG [ReceiverListener:hidraw7] logitech_receiver.base: (15) <= w[11 FF 042F 00000000000000000000000000000000]
10:52:12,789    DEBUG [MainThread] solaar.ui: activate
10:52:12,790    DEBUG [MainThread] solaar.ui: status changed: <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)> (NONE) None
10:52:12,791    DEBUG [MainThread] solaar.ui.icons: battery icon for None:False = battery-missing
10:52:12,791    DEBUG [MainThread] solaar.ui.tray: picked device with lowest battery: None
10:52:12,791    DEBUG [MainThread] solaar.ui.window: new device row ('/dev/hidraw2', 255, True, 'PRO Headset', 'audio-headset', None, None, <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>) at index 0
10:52:12,792     INFO [MainThread] logitech_receiver.base: New lock <_ThreadedHandle(/dev/hidraw2)>
10:52:12,792    DEBUG [MainThread] logitech_receiver.base: (18) <= w[11 FF 060C 00000000000000000000000000000000]
10:52:12,794    DEBUG [ReceiverListener:hidraw7] logitech_receiver.base: (15) => r[11 FF 042F 00000000000000000000000000000000]
10:52:12,794     INFO [ReceiverListener:hidraw7] solaar.listener: status_changed <Device(255,B319,Illuminated Keyboard K810,)>: paired online, {'BATTERY LEVEL': None, 'BATTERY STATUS': None, 'BATTERY NEXT LEVEL': None, 'BATTERY VOLTAGE': None, 'BATTERY CHARGING': False, 'ERROR': None, 'NOTIFICATION FLAGS': False} (0) 
10:52:12,794    DEBUG [ReceiverListener:hidraw7] logitech_receiver.base: (15) <= w[11 FF 042B 00000000000000000000000000000000]
10:52:12,805    DEBUG [ReceiverListener:hidraw7] logitech_receiver.base: (15) => r[11 FF 042B 00000000000000000000000000000000]
10:52:13,693  WARNING [MainThread] logitech_receiver.base: timeout (0.90/0.90) on device 255 request {060C} params []
10:52:13,694    DEBUG [MainThread] logitech_receiver.status: <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>: battery None, None
10:52:13,694     INFO [MainThread] solaar.listener: status_changed <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>: paired online, {'BATTERY LEVEL': None, 'BATTERY STATUS': None, 'BATTERY NEXT LEVEL': None, 'BATTERY VOLTAGE': None, 'BATTERY CHARGING': False, 'ERROR': None, 'NOTIFICATION FLAGS': False} (0) 
10:52:13,694    DEBUG [MainThread] solaar.ui.icons: battery icon for None:False = battery-missing
10:52:13,702    DEBUG [AsyncUI] logitech_receiver.settings: sidetone: settings read 0 from <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>
10:52:13,708    DEBUG [AsyncUI] logitech_receiver.settings: equalizer: settings read {0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0} from <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>
10:52:13,709    DEBUG [MainThread] solaar.ui: status changed: <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)> (NONE) initialization
10:52:13,709    DEBUG [MainThread] solaar.ui.icons: battery icon for None:False = battery-missing
10:52:13,710    DEBUG [MainThread] solaar.ui.tray: picked device with lowest battery: None
10:52:13,710    DEBUG [MainThread] logitech_receiver.base: (18) <= w[11 FF 0609 00000000000000000000000000000000]
10:52:13,967    DEBUG [MainThread] logitech_receiver.base: (18) => r[11 FF 0600 00000000000000000000000000000000]
10:52:13,967    DEBUG [ReceiverListener:hidraw2] logitech_receiver.base: (13) => r[11 FF 0600 00000000000000000000000000000000]
10:52:13,968    DEBUG [ReceiverListener:hidraw2] logitech_receiver.notifications: <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>: notification for feature ADC MEASUREMENT, report 0, data 00000000000000000000000000000000
10:52:13,968    ERROR [ReceiverListener:hidraw2] logitech_receiver.listener: processing Notification(11,255,06,00,00000000000000000000000000000000)
Traceback (most recent call last):
  File "/home/victor/temp/Solaar/lib/logitech_receiver/listener.py", line 188, in run
    self._notifications_callback(n)
  File "/home/victor/temp/Solaar/lib/solaar/listener.py", line 192, in _notifications_handler
    _notifications.process(self.receiver, n)
  File "/home/victor/temp/Solaar/lib/logitech_receiver/notifications.py", line 60, in process
    return _process_device_notification(device, status, notification)
  File "/home/victor/temp/Solaar/lib/logitech_receiver/notifications.py", line 200, in _process_device_notification
    return _process_feature_notification(device, status, n, feature)
  File "/home/victor/temp/Solaar/lib/logitech_receiver/notifications.py", line 340, in _process_feature_notification
    elif feature == _F.FEATURE.ADC_MEASUREMENT:
AttributeError: 'NamedInts' object has no attribute 'FEATURE'
10:52:14,868  WARNING [MainThread] logitech_receiver.base: timeout (1.16/0.90) on device 255 request {0609} params []
10:52:14,869    DEBUG [MainThread] logitech_receiver.status: <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>: battery None, None
10:52:14,869    DEBUG [MainThread] solaar.ui.icons: battery icon for None:False = battery-missing
10:52:14,871    DEBUG [MainThread] solaar.ui: status changed: <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)> (NONE) None
10:52:14,871    DEBUG [MainThread] solaar.ui.icons: battery icon for None:False = battery-missing
10:52:14,872    DEBUG [MainThread] solaar.ui.tray: picked device with lowest battery: None
10:52:14,873    DEBUG [MainThread] logitech_receiver.base: (18) <= w[11 FF 0608 00000000000000000000000000000000]
10:52:14,880    DEBUG [MainThread] logitech_receiver.base: (18) => r[11 FF FF06 08050000000000000000000000000000]
10:52:14,880    ERROR [MainThread] logitech_receiver.base: (18) device 255 error on feature request {0608}: 5 = logitech internal
Traceback (most recent call last):
  File "/home/victor/temp/Solaar/lib/solaar/ui/__init__.py", line 195, in _status_changed
10:52:14,881    DEBUG [ReceiverListener:hidraw2] logitech_receiver.base: (13) => r[11 FF FF06 08050000000000000000000000000000]
    window.update(device, need_popup, refresh)
  File "/home/victor/temp/Solaar/lib/solaar/ui/window.py", line 894, in update
    update_device(device, item, selected_device_id, need_popup, full=refresh)
  File "/home/victor/temp/Solaar/lib/solaar/ui/window.py", line 930, in update_device
    _update_info_panel(device, full=full_update)
  File "/home/victor/temp/Solaar/lib/solaar/ui/window.py", line 797, in _update_info_panel
    _update_device_panel(device, _info._device, _info._buttons, full)
  File "/home/victor/temp/Solaar/lib/solaar/ui/window.py", line 678, in _update_device_panel
    device.status.read_battery(device)
  File "/home/victor/temp/Solaar/lib/logitech_receiver/status.py", line 249, in read_battery
    battery = self._device.battery()
  File "/home/victor/temp/Solaar/lib/logitech_receiver/device.py", line 350, in battery
    result = _hidpp20.get_battery(self, battery_feature)
  File "/home/victor/temp/Solaar/lib/logitech_receiver/hidpp20.py", line 1338, in get_battery
    result = battery_function(device)
  File "/home/victor/temp/Solaar/lib/logitech_receiver/hidpp20.py", line 1312, in get_adc_measurement
    report = feature_request(device, FEATURE.ADC_MEASUREMENT)
  File "/home/victor/temp/Solaar/lib/logitech_receiver/hidpp20.py", line 1106, in feature_request
    return device.request((feature_index << 8) + (function & 0xFF), *params, no_reply=no_reply)
  File "/home/victor/temp/Solaar/lib/logitech_receiver/device.py", line 413, in request
    return _base.request(
  File "/home/victor/temp/Solaar/lib/logitech_receiver/base.py", line 456, in request
    raise _hidpp20.FeatureCallError(number=devnumber, request=request_id, error=error, params=params)

10:52:14,886    DEBUG [MainThread] solaar.ui: status changed: <Device(255,B017,Wireless Mouse MX Master,)> (NONE) initialization
10:52:14,887    DEBUG [MainThread] solaar.ui.icons: battery icon for None:None = battery-missing
10:52:14,888    DEBUG [MainThread] solaar.ui.tray: picked device with lowest battery: None
10:52:14,889    DEBUG [MainThread] solaar.ui.window: new device row ('/dev/hidraw6', 255, True, 'Wireless', 'input-mouse', None, None, <Device(255,B017,Wireless Mouse MX Master,)>) at index 0
10:52:14,889    DEBUG [MainThread] solaar.ui: status changed: <Device(255,B017,Wireless Mouse MX Master,)> (NONE) None
10:52:14,890    DEBUG [MainThread] solaar.ui.icons: battery icon for None:None = battery-missing
10:52:14,890    DEBUG [MainThread] solaar.ui.tray: picked device with lowest battery: None
10:52:14,891    DEBUG [MainThread] solaar.ui: status changed: <Device(255,B319,Illuminated Keyboard K810,)> (NONE) None
10:52:14,892    DEBUG [MainThread] logitech_receiver.base: (19) <= w[11 FF 042C 00000000000000000000000000000000]
10:52:15,225    DEBUG [ReceiverListener:hidraw7] logitech_receiver.base: (15) => r[11 FF 042C 00000000000000000000000000000000]
10:52:15,225    DEBUG [MainThread] logitech_receiver.base: (19) => r[11 FF 042C 00000000000000000000000000000000]
10:52:15,226    DEBUG [MainThread] solaar.ui.icons: battery icon for None:False = battery-missing
10:52:15,227    DEBUG [MainThread] logitech_receiver.base: (19) <= w[11 FF 042F 00000000000000000000000000000000]
10:52:15,236    DEBUG [ReceiverListener:hidraw7] logitech_receiver.base: (15) => r[11 FF 042F 00000000000000000000000000000000]
10:52:15,236    DEBUG [MainThread] logitech_receiver.base: (19) => r[11 FF 042F 00000000000000000000000000000000]
10:52:15,237    DEBUG [MainThread] solaar.ui.tray: picked device with lowest battery: None
10:52:15,238    DEBUG [MainThread] logitech_receiver.base: (19) <= w[11 FF 042D 00000000000000000000000000000000]
10:52:15,246    DEBUG [ReceiverListener:hidraw7] logitech_receiver.base: (15) => r[11 FF 042D 00000000000000000000000000000000]
10:52:15,246    DEBUG [MainThread] logitech_receiver.base: (19) => r[11 FF 042D 00000000000000000000000000000000]
10:52:15,247    DEBUG [MainThread] logitech_receiver.base: (19) <= w[11 FF 042B 00000000000000000000000000000000]
10:52:15,258    DEBUG [ReceiverListener:hidraw7] logitech_receiver.base: (15) => r[11 FF 042B 00000000000000000000000000000000]
10:52:15,259    DEBUG [MainThread] logitech_receiver.base: (19) => r[11 FF 042B 00000000000000000000000000000000]
10:52:15,259    DEBUG [MainThread] solaar.ui.window: new device row ('/dev/hidraw7', 255, True, 'Illuminated', 'preferences-desktop-peripherals', None, None, <Device(255,B319,Illuminated Keyboard K810,)>) at index 0
10:52:15,260    DEBUG [MainThread] solaar.ui: status changed: <Device(255,B319,Illuminated Keyboard K810,)> (NONE) initialization
10:52:15,260    DEBUG [MainThread] logitech_receiver.base: (19) <= w[11 FF 042A 00000000000000000000000000000000]
10:52:15,268    DEBUG [ReceiverListener:hidraw7] logitech_receiver.base: (15) => r[11 FF 042A 00000000000000000000000000000000]
10:52:15,268    DEBUG [MainThread] logitech_receiver.base: (19) => r[11 FF 042A 00000000000000000000000000000000]
10:52:15,268    DEBUG [MainThread] solaar.ui.icons: battery icon for None:False = battery-missing
10:52:15,269    DEBUG [MainThread] logitech_receiver.base: (19) <= w[11 FF 042B 00000000000000000000000000000000]
10:52:15,281    DEBUG [MainThread] logitech_receiver.base: (19) => r[11 FF 042B 00000000000000000000000000000000]
10:52:15,281    DEBUG [ReceiverListener:hidraw7] logitech_receiver.base: (15) => r[11 FF 042B 00000000000000000000000000000000]
10:52:15,281    DEBUG [MainThread] solaar.ui.tray: picked device with lowest battery: None
10:52:15,283    DEBUG [MainThread] logitech_receiver.base: (19) <= w[11 FF 0428 00000000000000000000000000000000]
10:52:15,291    DEBUG [ReceiverListener:hidraw7] logitech_receiver.base: (15) => r[11 FF 0428 00000000000000000000000000000000]
10:52:15,291    DEBUG [MainThread] logitech_receiver.base: (19) => r[11 FF 0428 00000000000000000000000000000000]
10:52:15,340    DEBUG [MainThread] solaar.ui: status changed: <Device(255,B319,Illuminated Keyboard K810,)> (NONE) None
10:52:15,340    DEBUG [MainThread] logitech_receiver.base: (19) <= w[11 FF 042F 00000000000000000000000000000000]
10:52:15,348    DEBUG [MainThread] logitech_receiver.base: (19) => r[11 FF 042F 00000000000000000000000000000000]
10:52:15,348    DEBUG [MainThread] solaar.ui.icons: battery icon for None:False = battery-missing
10:52:15,348    DEBUG [ReceiverListener:hidraw7] logitech_receiver.base: (15) => r[11 FF 042F 00000000000000000000000000000000]
10:52:15,348    DEBUG [MainThread] logitech_receiver.base: (19) <= w[11 FF 042F 00000000000000000000000000000000]
10:52:15,358    DEBUG [ReceiverListener:hidraw7] logitech_receiver.base: (15) => r[11 FF 042F 00000000000000000000000000000000]
10:52:15,358    DEBUG [MainThread] logitech_receiver.base: (19) => r[11 FF 042F 00000000000000000000000000000000]
10:52:15,358    DEBUG [MainThread] solaar.ui.tray: picked device with lowest battery: None
10:52:15,359    DEBUG [MainThread] logitech_receiver.base: (19) <= w[11 FF 042F 00000000000000000000000000000000]
10:52:15,371    DEBUG [MainThread] logitech_receiver.base: (19) => r[11 FF 042F 00000000000000000000000000000000]
10:52:15,371    DEBUG [ReceiverListener:hidraw7] logitech_receiver.base: (15) => r[11 FF 042F 00000000000000000000000000000000]
10:52:15,371    DEBUG [MainThread] solaar.ui: status changed: <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)> (NONE) None
10:52:15,371    DEBUG [MainThread] solaar.ui.icons: battery icon for None:False = battery-missing
10:52:15,371    DEBUG [MainThread] solaar.ui.tray: picked device with lowest battery: None
10:52:15,372    DEBUG [MainThread] logitech_receiver.base: (18) <= w[11 FF 060D 00000000000000000000000000000000]
10:52:15,376    DEBUG [MainThread] logitech_receiver.base: (18) => r[11 FF FF06 0D050000000000000000000000000000]
10:52:15,376    ERROR [MainThread] logitech_receiver.base: (18) device 255 error on feature request {060D}: 5 = logitech internal
Traceback (most recent call last):
  File "/home/victor/temp/Solaar/lib/solaar/ui/__init__.py", line 195, in _status_changed
10:52:15,376    DEBUG [ReceiverListener:hidraw2] logitech_receiver.base: (13) => r[11 FF FF06 0D050000000000000000000000000000]
    window.update(device, need_popup, refresh)
  File "/home/victor/temp/Solaar/lib/solaar/ui/window.py", line 894, in update
    update_device(device, item, selected_device_id, need_popup, full=refresh)
  File "/home/victor/temp/Solaar/lib/solaar/ui/window.py", line 930, in update_device
    _update_info_panel(device, full=full_update)
  File "/home/victor/temp/Solaar/lib/solaar/ui/window.py", line 797, in _update_info_panel
    _update_device_panel(device, _info._device, _info._buttons, full)
  File "/home/victor/temp/Solaar/lib/solaar/ui/window.py", line 678, in _update_device_panel
    device.status.read_battery(device)
  File "/home/victor/temp/Solaar/lib/logitech_receiver/status.py", line 249, in read_battery
    battery = self._device.battery()
  File "/home/victor/temp/Solaar/lib/logitech_receiver/device.py", line 350, in battery
    result = _hidpp20.get_battery(self, battery_feature)
  File "/home/victor/temp/Solaar/lib/logitech_receiver/hidpp20.py", line 1338, in get_battery
    result = battery_function(device)
  File "/home/victor/temp/Solaar/lib/logitech_receiver/hidpp20.py", line 1312, in get_adc_measurement
    report = feature_request(device, FEATURE.ADC_MEASUREMENT)
  File "/home/victor/temp/Solaar/lib/logitech_receiver/hidpp20.py", line 1106, in feature_request
    return device.request((feature_index << 8) + (function & 0xFF), *params, no_reply=no_reply)
  File "/home/victor/temp/Solaar/lib/logitech_receiver/device.py", line 413, in request
    return _base.request(
  File "/home/victor/temp/Solaar/lib/logitech_receiver/base.py", line 456, in request
    raise _hidpp20.FeatureCallError(number=devnumber, request=request_id, error=error, params=params)

10:52:15,686    DEBUG [ReceiverListener:hidraw2] logitech_receiver.base: (13) => r[11 FF 0600 10090100000000000000000000000000]
10:52:15,686    DEBUG [ReceiverListener:hidraw2] logitech_receiver.notifications: <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>: notification for feature ADC MEASUREMENT, report 0, data 10090100000000000000000000000000
10:52:15,686    ERROR [ReceiverListener:hidraw2] logitech_receiver.listener: processing Notification(11,255,06,00,10090100000000000000000000000000)
Traceback (most recent call last):
  File "/home/victor/temp/Solaar/lib/logitech_receiver/listener.py", line 188, in run
    self._notifications_callback(n)
  File "/home/victor/temp/Solaar/lib/solaar/listener.py", line 192, in _notifications_handler
    _notifications.process(self.receiver, n)
  File "/home/victor/temp/Solaar/lib/logitech_receiver/notifications.py", line 60, in process
    return _process_device_notification(device, status, notification)
  File "/home/victor/temp/Solaar/lib/logitech_receiver/notifications.py", line 200, in _process_device_notification
    return _process_feature_notification(device, status, n, feature)
  File "/home/victor/temp/Solaar/lib/logitech_receiver/notifications.py", line 340, in _process_feature_notification
    elif feature == _F.FEATURE.ADC_MEASUREMENT:
AttributeError: 'NamedInts' object has no attribute 'FEATURE'
pfps commented 2 years ago

@VictorMD-Maths

The sound cutting out is a bit weird. Solaar is getting a timeout when trying to write the equalizer settings:

10:52:10,216    DEBUG [MainThread] logitech_receiver.base: (13) <= w[11 FF 043D 02000000000000000000000000000000]
10:52:11,134  WARNING [MainThread] logitech_receiver.base: timeout (0.92/0.90) on device 255 request {043D} params [0200000000000000000000]

Can you run Solaar with the -dd flag and see whether you always get a timeout as startup and when you change the equalizer settings?

Have you tried unlocking the settings in Solaar? You should see a little lock icon at the right hand side of the feature pane. Click on it to switch to ignore and then to unlock. Then you should be able to change the equalizer or sidetone settings.

It appears that your headset has the ADC MEASUREMENT feature but as its seventh feature while the headset responds that it only has six features. This is rather bizarre but is not a serious problem for Solaar except that solaar show will not show the feature.

It appears that Solaar has correctly remembered that your headset uses the ADC MEASUREMENT feature for battery information. Can you post the contents of ~/.config/solaar/config.yaml to determine this for sure?

pfps commented 2 years ago

There is a new version of the PR with the bug shown by @VictorMD-Maths fixed.

Please download and try the new version. (Instructions repeated here.)

To clone and use Solar from its GitHub repository

git clone https://github.com/pwr-Solaar/Solaar.git
cd Solaar

Run Solaar as bin/solaar from this directory.

To run PR #1643, first clone Solaar if you have not already done so and cd to the clone directory. The first time you download the pull request, fetch it into a new branch and checkout that branch, as in:

git fetch origin pull/1643/head:pull_1643
git checkout pull_1643

To download a new version of the pull request, fetch it and then set your pull branch to the new fetch, as in:

git checkout pull_1643
git fetch origin pull/1643/head
git reset --hard FETCH_HEAD
Victor-MichelDansac commented 2 years ago

I downloaded the new version of the pull request, thanks.

The sounds still cuts out. It actually like the headset is turned off and on again, the usual "turning on" beep plays. Also, the gui reports that the battery is "unknown". In addition, some lines related to the timeout are still present:

13:52:46,981  WARNING [MainThread] logitech_receiver.base: timeout (0.92/0.90) on device 255 request {043D} params [0200000000000000000000]
...
13:52:49,541  WARNING [MainThread] logitech_receiver.base: timeout (0.90/0.90) on device 255 request {060C} params []
...
13:52:50,456  WARNING [MainThread] logitech_receiver.base: timeout (0.90/0.90) on device 255 request {060F} params []

Unlocking the settings in solaar sometimes fails, with the small "read/write error" icon appearing. I did not quite get a grasp on when that "sometimes" happens... Changing a setting for one of my other devices (MX Master and K810, both bluetooth) does seem to allow me to then change the headset settings.

When I'm able to, moving the equalizer sliders around does not seem to do anything to the sound; sometimes, the sound cuts out and the "turning on" beep plays, like when the gui is opened.

Here is the relevant part of the ~/config/solaar/config.yaml file:

- 1.1.4rc1
- _NAME: Logitech PRO X Wireless Gaming Headset
  _absent: [hi-res-scroll, lowres-scroll-mode, hires-smooth-invert, hires-smooth-resolution, hires-scroll-mode, smart-shift, thumb-scroll-invert, thumb-scroll-mode,
    onboard_profiles, report_rate, pointer_speed, dpi, dpi-sliding, speed-change, mouse-gestures, backlight, backlight-timed, fn-swap, reprogrammable-keys,
    persistent-remappable-keys, divert-keys, disable-keyboard-keys, crown-smooth, divert-crown, divert-gkeys, m-key-leds, mr-key-led, multiplatform, change-host,
    gesture2-gestures, gesture2-divert, gesture2-params]
  _battery: 7968
  _modelId: 000000000ABA
  _sensitive: {equalizer: true}
  _unitId: FFFFFFFF
  equalizer: {0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0}
  sidetone: 0

Please let me know how I can assist you more, and many thanks for your help!

pfps commented 2 years ago

Run solaar as solaar -ddd. Post the output if there are any errors or warnings. I suspect that the headset is taking a long time to write to EEPROM and Solaar's write timeout triggers.

Battery support is still only partial. I need the output of solaar show (only the part about the headset, and really only the battery line) when the battery has just been charged and when it is empty. Also helpful would be values at regular intervals of use and an indication of how long the battery lasts.

Victor-MichelDansac commented 2 years ago

I can already give you some partial information about the battery, provided by bin/solaar show. There is a slight discrepancy in values reported when charging and not charging.

initial state: headset is plugged in
        Battery: N/A 4308mV , recharging.
15 seconds pass
        Battery: N/A 4310mV , recharging.
unplug the headset right after the measurement, then let 15 seconds pass
        Battery: N/A 4006mV , discharging.
15 seconds pass
        Battery: N/A 4000mV , discharging.
15 seconds pass
        Battery: N/A 3997mV , discharging.
plug the headset right after the measurement, then let 15 seconds pass
        Battery: N/A 4191mV , recharging.
15 seconds pass
        Battery: N/A 4301mV , recharging.
15 seconds pass
        Battery: N/A 4305mV , recharging.

Also, it may help, I had run the tools/hidconsole command from one of your previous comments. When the headset was fully charged and still plugged in, the following output was shown:

?? Input: 11 FF 060C 00000000000000000000000000000000
<< (  10.834) [11 FF 060C 00000000000000000000000000000000] b'\x11\xff\x06\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
>> (  10.877) [11 FF 060C 10650300000000000000000000000000] b'\x11\xff\x06\x0c\x10e\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'

When the headset was fully charged and just unplugged, the following output was shown:

?? Input: 11 FF 060C 00000000000000000000000000000000
<< ( 133.076) [11 FF 060C 00000000000000000000000000000000] b'\x11\xff\x06\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
>> ( 133.120) [11 FF 060C 0FFD0100000000000000000000000000] b'\x11\xff\x06\x0c\x0f\xfd\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'

Here is the output of bin/solaar -ddd (sorry, there may be some junk related to my other two peripherals, would you rather I disconnect them beforehand?). EDIT: when I plug in the headset, then run bin/solaar -ddd, the "charging battery" icon shows up in the gui. Otherwise, it shows the "unknown" icon.

17:18:35,484     INFO [MainThread] root: language en_GB (UTF-8), translations path None
17:18:35,662     INFO [MainThread] logitech_receiver.diversion: GDK Keymap set up
17:18:35,667    DEBUG [MainThread] solaar.ui.tray: using Ayatana AppIndicator3
17:18:35,673     INFO [MainThread] solaar.upower: connected to system dbus, watching for suspend/resume events
17:18:35,694    DEBUG [MainThread] solaar.ui: startup registered=True, remote=False
17:18:35,694    DEBUG [AsyncUI] solaar.tasks: started
17:18:35,694     INFO [MainThread] solaar.ui.notify: starting desktop notifications
17:18:35,697    DEBUG [MainThread] solaar.ui.icons: sys.path[0] = /home/victor/temp/Solaar/lib
17:18:35,697    DEBUG [MainThread] solaar.ui.icons: looking for icons in /home/victor/temp/Solaar/icons
17:18:35,697    DEBUG [MainThread] solaar.ui.icons: looking for icons in /home/victor/temp/Solaar/share/solaar/icons
17:18:35,697    DEBUG [MainThread] solaar.ui.icons: icon theme paths: ['/home/victor/temp/Solaar/share/solaar/icons', '/home/victor/.local/share/icons', '/home/victor/.icons', '/usr/share/gnome/icons', '/usr/local/share/icons', '/usr/share/icons', '/var/lib/snapd/desktop/icons', '/usr/share/gnome/pixmaps', '/usr/local/share/pixmaps', '/usr/share/pixmaps', '/var/lib/snapd/desktop/pixmaps']
17:18:35,798     INFO [MainThread] solaar.listener: starting receiver listening threads
17:18:35,803    DEBUG [MainThread] hidapi.udev: Found device BID 0003 VID 0000046D PID 00000ABA INTERFACE 3 FILTER 3
17:18:35,804     INFO [MainThread] solaar.listener: receiver event add DeviceInfo(path='/dev/hidraw2', vendor_id='046D', product_id='0ABA', serial='', release=None, manufacturer=None, product=None, interface=3, driver='hid-generic', bus_id=3, isDevice=True)
17:18:35,804    DEBUG [MainThread] logitech_receiver.base: (13) pinging device 255
17:18:35,804     INFO [MainThread] logitech_receiver.base: New lock 13
17:18:35,804    DEBUG [MainThread] logitech_receiver.base: (13) <= w[11 FF 0019 00001A00000000000000000000000000]
17:18:35,808    DEBUG [MainThread] logitech_receiver.base: (13) => r[11 FF 0019 04021A00000000000000000000000000]
17:18:35,852    DEBUG [MainThread] solaar.configuration: load => ['1.1.4rc1', {'_NAME': 'Logitech PRO X Wireless Gaming Headset', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'fn-swap', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params'], '_battery': 7968, '_modelId': '000000000ABA', '_sensitive': {'equalizer': True}, '_unitId': 'FFFFFFFF', 'equalizer': {0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0}, 'sidetone': 0}, {'_NAME': 'Wireless Mouse MX Master', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'speed-change', 'backlight', 'backlight-timed', 'fn-swap', 'persistent-remappable-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': 'B01740600000', '_sensitive': {'hires-smooth-invert': True}, '_unitId': 'D615A538', 'change-host': None, 'divert-keys': {82: 0, 83: 0, 86: 0, 195: 0, 196: 0}, 'dpi': 1000, 'dpi-sliding': 0, 'gesture2-divert': {46: False}, 'gesture2-gestures': {45: True, 46: True}, 'hires-scroll-mode': False, 'hires-smooth-invert': False, 'hires-smooth-resolution': False, 'mouse-gestures': 0, 'reprogrammable-keys': {80: 80, 81: 81, 82: 82, 83: 83, 86: 86, 195: 195, 196: 196}, 'smart-shift': 30}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}]
17:18:35,853    DEBUG [MainThread] logitech_receiver.base: (13) <= w[11 FF 000F 00010000000000000000000000000000]
17:18:35,858    DEBUG [MainThread] logitech_receiver.base: (13) => r[11 FF 000F 01000000000000000000000000000000]
17:18:35,858    DEBUG [MainThread] logitech_receiver.base: (13) <= w[11 FF 010D 00000000000000000000000000000000]
17:18:35,863    DEBUG [MainThread] logitech_receiver.base: (13) => r[11 FF 010D 06000000000000000000000000000000]
17:18:35,863    DEBUG [MainThread] logitech_receiver.base: (13) <= w[11 FF 0008 00030000000000000000000000000000]
17:18:35,868    DEBUG [MainThread] logitech_receiver.base: (13) => r[11 FF 0008 02000200000000000000000000000000]
17:18:35,868    DEBUG [MainThread] logitech_receiver.base: (13) <= w[11 FF 020F 00000000000000000000000000000000]
17:18:35,873    DEBUG [MainThread] logitech_receiver.base: (13) => r[11 FF 020F 01FFFFFFFF0003000000000ABA010000]
17:18:35,874    DEBUG [MainThread] logitech_receiver.base: (13) <= w[11 FF 000C 1F200000000000000000000000000000]
17:18:35,878    DEBUG [MainThread] logitech_receiver.base: (13) => r[11 FF 000C 06000400000000000000000000000000]
17:18:35,878    DEBUG [MainThread] logitech_receiver.base: (13) <= w[11 FF 060D 00000000000000000000000000000000]
17:18:35,925    DEBUG [MainThread] logitech_receiver.base: (13) => r[11 FF 060D 10EC0300000000000000000000000000]
17:18:35,925    DEBUG [MainThread] logitech_receiver.status: <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>: battery None, recharging
17:18:35,925     INFO [MainThread] solaar.listener: status_changed <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>: paired online, {'BATTERY LEVEL': NamedInt(50, 'good'), 'BATTERY STATUS': NamedInt(1, 'recharging'), 'BATTERY NEXT LEVEL': None, 'BATTERY VOLTAGE': 4332, 'BATTERY CHARGING': True, 'ERROR': None} (0) 
17:18:35,926    DEBUG [MainThread] logitech_receiver.base: (13) <= w[11 FF 000A 83000000000000000000000000000000]
17:18:35,928    DEBUG [MainThread] logitech_receiver.base: (13) => r[11 FF 000A 05000000000000000000000000000000]
17:18:35,928    DEBUG [MainThread] logitech_receiver.settings_templates: check_feature sidetone [SIDETONE] detected <Setting([feature:range] PRO Headset:sidetone=None)>
17:18:35,928    DEBUG [MainThread] logitech_receiver.base: (13) <= w[11 FF 000C 83100000000000000000000000000000]
17:18:35,933    DEBUG [MainThread] logitech_receiver.base: (13) => r[11 FF 000C 04000100000000000000000000000000]
17:18:35,933    DEBUG [MainThread] logitech_receiver.base: (13) <= w[11 FF 040A 00000000000000000000000000000000]
17:18:35,979    DEBUG [MainThread] logitech_receiver.base: (13) => r[11 FF 040A 0A0C0100000000000000000000000000]
17:18:35,979    DEBUG [MainThread] logitech_receiver.base: (13) <= w[11 FF 0419 00000000000000000000000000000000]
17:18:36,024    DEBUG [MainThread] logitech_receiver.base: (13) => r[11 FF 0419 0000200040007D00FA01F403E807D000]
17:18:36,027    DEBUG [MainThread] logitech_receiver.base: (13) <= w[11 FF 041B 07000000000000000000000000000000]
17:18:36,074    DEBUG [MainThread] logitech_receiver.base: (13) => r[11 FF 041B 070FA01F403E80000000000000000000]
17:18:36,075    DEBUG [MainThread] logitech_receiver.settings_templates: check_feature equalizer [EQUALIZER] detected <Setting([feature:packed range] PRO Headset:equalizer=None)>
17:18:36,076     INFO [MainThread] logitech_receiver.status: <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)> pushing device settings [<Setting([feature:range] PRO Headset:sidetone=None)>, <Setting([feature:packed range] PRO Headset:equalizer=None)>]
17:18:36,076    DEBUG [MainThread] logitech_receiver.settings: sidetone: apply None (<Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>)
17:18:36,076    DEBUG [MainThread] logitech_receiver.settings: sidetone: settings read None from <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>
17:18:36,076    DEBUG [MainThread] logitech_receiver.settings: sidetone: setting write 0 to <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>
17:18:36,077    DEBUG [MainThread] logitech_receiver.settings: sidetone: settings prepare write(0) => b'\x00'
17:18:36,077    DEBUG [MainThread] logitech_receiver.base: (13) <= w[11 FF 051F 00000000000000000000000000000000]
17:18:36,123    DEBUG [MainThread] logitech_receiver.base: (13) => r[11 FF 051F 00000000000000000000000000000000]
17:18:36,123    DEBUG [MainThread] logitech_receiver.settings: equalizer: apply None (<Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>)
17:18:36,124    DEBUG [MainThread] logitech_receiver.settings: equalizer: settings read None from <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>
17:18:36,124    DEBUG [MainThread] logitech_receiver.settings: equalizer: range field setting write {0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0} to <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>
17:18:36,124    DEBUG [MainThread] logitech_receiver.settings: equalizer: range field setting prepare map write({0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0}) => b'\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
17:18:36,124    DEBUG [MainThread] logitech_receiver.base: (13) <= w[11 FF 043C 02000000000000000000000000000000]
17:18:37,051  WARNING [MainThread] logitech_receiver.base: timeout (0.93/0.90) on device 255 request {043C} params [0200000000000000000000]
17:18:37,051     INFO [MainThread] solaar.listener: status_changed <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>: paired online, {'BATTERY LEVEL': NamedInt(50, 'good'), 'BATTERY STATUS': NamedInt(1, 'recharging'), 'BATTERY NEXT LEVEL': None, 'BATTERY VOLTAGE': 4332, 'BATTERY CHARGING': True, 'ERROR': None} (0) initialization
17:18:37,052     INFO [ReceiverListener:hidraw2] logitech_receiver.listener: started with <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)> (13)
17:18:37,052     INFO [ReceiverListener:hidraw2] solaar.listener: <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>: notifications listener has started (13)
17:18:37,053     INFO [ReceiverListener:hidraw2] solaar.listener: status_changed <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>: paired online, {'BATTERY LEVEL': NamedInt(50, 'good'), 'BATTERY STATUS': NamedInt(1, 'recharging'), 'BATTERY NEXT LEVEL': None, 'BATTERY VOLTAGE': 4332, 'BATTERY CHARGING': True, 'ERROR': None, 'NOTIFICATION FLAGS': False} (0) 
17:18:37,055    DEBUG [MainThread] hidapi.udev: Found device BID 0005 VID 0000046D PID 0000B017 INTERFACE None FILTER None
17:18:37,056     INFO [MainThread] solaar.listener: receiver event add DeviceInfo(path='/dev/hidraw6', vendor_id='046D', product_id='B017', serial='f1:4e:1f:56:21:a1', release=None, manufacturer=None, product=None, interface=None, driver='hid-generic', bus_id=5, isDevice=True)
17:18:37,056    DEBUG [MainThread] logitech_receiver.base: (14) pinging device 255
17:18:37,056     INFO [MainThread] logitech_receiver.base: New lock 14
17:18:37,057    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 001E 0000F200000000000000000000000000]
17:18:37,072    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 001E 0405F200000000000000000000000000]
17:18:37,072    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 000F 00010000000000000000000000000000]
17:18:37,094    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 000F 01000100000000000000000000000000]
17:18:37,094    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 0109 00000000000000000000000000000000]
17:18:37,109    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 0109 1B000000000000000000000000000000]
17:18:37,109    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 000F 00030000000000000000000000000000]
17:18:37,124    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 000F 02000200000000000000000000000000]
17:18:37,124    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 020D 00000000000000000000000000000000]
17:18:37,146    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 020D 04D615A5380006B01740600000000000]
17:18:37,146    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 000A 00050000000000000000000000000000]
17:18:37,162    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 000A 03000000000000000000000000000000]
17:18:37,162    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 030C 00000000000000000000000000000000]
17:18:37,184    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 030C 18000000000000000000000000000000]
17:18:37,184    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 031B 00000000000000000000000000000000]
17:18:37,199    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 031B 576972656C657373204D6F757365204D]
17:18:37,199    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 031E 10000000000000000000000000000000]
17:18:37,214    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 031E 58204D61737465720000000000000000]
17:18:37,214    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 000F 21210000000000000000000000000000]
17:18:37,229    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 000F 0D000000000000000000000000000000]
17:18:37,229    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 000D 00070000000000000000000000000000]
17:18:37,251    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 000D 00000000000000000000000000000000]
17:18:37,229    DEBUG [MainThread] logitech_receiver.settings_templates: check_feature hires-smooth-invert [HIRES WHEEL] detected <Setting([feature:toggle] Wireless:hires-smooth-invert=None)>
17:18:37,251    DEBUG [MainThread] logitech_receiver.settings_templates: check_feature hires-smooth-resolution [HIRES WHEEL] detected <Setting([feature:toggle] Wireless:hires-smooth-resolution=None)>
17:18:37,251    DEBUG [MainThread] logitech_receiver.settings_templates: check_feature hires-scroll-mode [HIRES WHEEL] detected <Setting([feature:toggle] Wireless:hires-scroll-mode=None)>
17:18:37,252    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 000B 21100000000000000000000000000000]
17:18:37,267    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 000B 0C000000000000000000000000000000]
17:18:37,267    DEBUG [MainThread] logitech_receiver.settings_templates: check_feature smart-shift [SMART SHIFT] detected <Setting([feature:range] Wireless:smart-shift=None)>
17:18:37,268    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 0008 22010000000000000000000000000000]
17:18:37,282    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 0008 0A000100000000000000000000000000]
17:18:37,282    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 0A19 00000000000000000000000000000000]
17:18:37,304    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 0A19 000190E0C80640000000000000000000]
17:18:37,304    DEBUG [MainThread] logitech_receiver.settings_templates: check_feature dpi [ADJUSTABLE DPI] detected <Setting([feature:choice] Wireless:dpi=None)>
17:18:37,304    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 0008 1B040000000000000000000000000000]
17:18:37,319    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 0008 09000300000000000000000000000000]
17:18:37,319    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 000B 1B010000000000000000000000000000]
17:18:37,334    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 000B 00000000000000000000000000000000]
17:18:37,334    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 090C 00000000000000000000000000000000]
17:18:37,356    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 090C 08000000000000000000000000000000]
17:18:37,357    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 091B 00000000000000000000000000000000]
17:18:37,372    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 091B 00500038010001010000000000000000]
17:18:37,372    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 091F 01000000000000000000000000000000]
17:18:37,387    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 091F 00510039010001010000000000000000]
17:18:37,387    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 0918 02000000000000000000000000000000]
17:18:37,409    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 0918 0052003A310003070100000000000000]
17:18:37,409    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 091F 03000000000000000000000000000000]
17:18:37,424    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 091F 0053003C310002030100000000000000]
17:18:37,425    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 091E 04000000000000000000000000000000]
17:18:37,439    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 091E 0056003E310002030100000000000000]
17:18:37,440    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 0919 05000000000000000000000000000000]
17:18:37,461    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 0919 00C300A9310003070100000000000000]
17:18:37,462    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 091F 06000000000000000000000000000000]
17:18:37,477    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 091F 00C4009D310003070100000000000000]
17:18:37,477    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 091C 07000000000000000000000000000000]
17:18:37,492    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 091C 00D700B4A00004000300000000000000]
17:18:37,493    DEBUG [MainThread] logitech_receiver.settings_templates: check_feature dpi-sliding [REPROG CONTROLS V4] detected <Setting([feature:choice] Wireless:dpi-sliding=None)>
17:18:37,493    DEBUG [MainThread] logitech_receiver.settings_templates: check_feature mouse-gestures [REPROG CONTROLS V4] detected <Setting([feature:choice] Wireless:mouse-gestures=None)>
17:18:37,495    DEBUG [MainThread] logitech_receiver.settings_templates: check_feature reprogrammable-keys [REPROG CONTROLS V4] detected <Setting([feature:map choice] Wireless:reprogrammable-keys=None)>
17:18:37,495    DEBUG [MainThread] logitech_receiver.settings_templates: check_feature divert-keys [REPROG CONTROLS V4] detected <Setting([feature:map choice] Wireless:divert-keys=None)>
17:18:37,496    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 000B 18140000000000000000000000000000]
17:18:37,514    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 000B 08000100000000000000000000000000]
17:18:37,514    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 080A 00000000000000000000000000000000]
17:18:37,529    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 080A 03000100000000000000000000000000]
17:18:37,530    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 000C 18150000000000000000000000000000]
17:18:37,559    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 000C 00000000000000000000000000000000]
17:18:37,560    DEBUG [MainThread] logitech_receiver.settings_templates: check_feature change-host [CHANGE HOST] detected <Setting([feature:choice] Wireless:change-host=None)>
17:18:37,560    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 000B 65010000000000000000000000000000]
17:18:37,581    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 000B 0E000000000000000000000000000000]
17:18:37,582    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 0E0B 00000000000000000000000000000000]
17:18:37,597    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 0E0B 4203410142024204040041024204AF2E]
17:18:37,597    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 0E0F 00080000000000000000000000000000]
17:18:37,612    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 0E0F AD2D0100000000000000000000000000]
17:18:37,612    DEBUG [MainThread] logitech_receiver.settings_templates: check_feature gesture2-gestures [GESTURE 2] detected <Setting([feature:multiple toggle] Wireless:gesture2-gestures=None)>
17:18:37,612    DEBUG [MainThread] logitech_receiver.settings_templates: check_feature gesture2-divert [GESTURE 2] detected <Setting([feature:multiple toggle] Wireless:gesture2-divert=None)>
17:18:37,613     INFO [MainThread] logitech_receiver.status: <Device(255,B017,Wireless Mouse MX Master,)> pushing device settings [<Setting([feature:toggle] Wireless:hires-smooth-invert=None)>, <Setting([feature:toggle] Wireless:hires-smooth-resolution=None)>, <Setting([feature:toggle] Wireless:hires-scroll-mode=None)>, <Setting([feature:range] Wireless:smart-shift=None)>, <Setting([feature:choice] Wireless:dpi=None)>, <Setting([feature:choice] Wireless:dpi-sliding=None)>, <Setting([feature:choice] Wireless:mouse-gestures=None)>, <Setting([feature:map choice] Wireless:reprogrammable-keys=None)>, <Setting([feature:map choice] Wireless:divert-keys=None)>, <Setting([feature:choice] Wireless:change-host=None)>, <Setting([feature:multiple toggle] Wireless:gesture2-gestures=None)>, <Setting([feature:multiple toggle] Wireless:gesture2-divert=None)>]
17:18:37,613    DEBUG [MainThread] logitech_receiver.settings: hires-smooth-invert: apply None (<Device(255,B017,Wireless Mouse MX Master,)>)
17:18:37,613    DEBUG [MainThread] logitech_receiver.settings: hires-smooth-invert: settings read None from <Device(255,B017,Wireless Mouse MX Master,)>
17:18:37,613    DEBUG [MainThread] logitech_receiver.settings: hires-smooth-invert: setting write False to <Device(255,B017,Wireless Mouse MX Master,)>
17:18:37,614    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 0D1E 00000000000000000000000000000000]
17:18:37,635    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 0D1E 00000000000000000000000000000000]
17:18:37,635    DEBUG [MainThread] logitech_receiver.settings: hires-smooth-resolution: apply None (<Device(255,B017,Wireless Mouse MX Master,)>)
17:18:37,636    DEBUG [MainThread] logitech_receiver.settings: hires-smooth-resolution: settings read None from <Device(255,B017,Wireless Mouse MX Master,)>
17:18:37,636    DEBUG [MainThread] logitech_receiver.settings: hires-smooth-resolution: setting write False to <Device(255,B017,Wireless Mouse MX Master,)>
17:18:37,636    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 0D19 00000000000000000000000000000000]
17:18:37,649    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 0D19 00000000000000000000000000000000]
17:18:37,649    DEBUG [MainThread] logitech_receiver.settings: hires-scroll-mode: apply None (<Device(255,B017,Wireless Mouse MX Master,)>)
17:18:37,649    DEBUG [MainThread] logitech_receiver.settings: hires-scroll-mode: settings read None from <Device(255,B017,Wireless Mouse MX Master,)>
17:18:37,650    DEBUG [MainThread] logitech_receiver.settings: hires-scroll-mode: setting write False to <Device(255,B017,Wireless Mouse MX Master,)>
17:18:37,650    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 0D1E 00000000000000000000000000000000]
17:18:37,664    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 0D1E 00000000000000000000000000000000]
17:18:37,665    DEBUG [MainThread] logitech_receiver.settings: smart-shift: apply None (<Device(255,B017,Wireless Mouse MX Master,)>)
17:18:37,665    DEBUG [MainThread] logitech_receiver.settings: smart-shift: settings read None from <Device(255,B017,Wireless Mouse MX Master,)>
17:18:37,665    DEBUG [MainThread] logitech_receiver.settings: smart-shift: setting write 30 to <Device(255,B017,Wireless Mouse MX Master,)>
17:18:37,665    DEBUG [MainThread] logitech_receiver.settings: smart-shift: settings prepare write(30) => b'\x1e'
17:18:37,666    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 0C19 021E0000000000000000000000000000]
17:18:37,686    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 0C19 021E0000000000000000000000000000]
17:18:37,686    DEBUG [MainThread] logitech_receiver.settings: dpi: apply None (<Device(255,B017,Wireless Mouse MX Master,)>)
17:18:37,686    DEBUG [MainThread] logitech_receiver.settings: dpi: settings read None from <Device(255,B017,Wireless Mouse MX Master,)>
17:18:37,686    DEBUG [MainThread] logitech_receiver.settings: dpi: setting write 1000 to <Device(255,B017,Wireless Mouse MX Master,)>
17:18:37,686    DEBUG [MainThread] logitech_receiver.settings: dpi: settings prepare write(1000) => b'\x00\x03\xe8'
17:18:37,687    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 0A3F 0003E800000000000000000000000000]
17:18:37,687    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 0D10 01000000000000000000000000000000]
17:18:37,702    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 0A3F 0003E800000000000000000000000000]
17:18:37,702    DEBUG [MainThread] logitech_receiver.settings: dpi-sliding: apply None (<Device(255,B017,Wireless Mouse MX Master,)>)
17:18:37,702    DEBUG [MainThread] logitech_receiver.settings: dpi-sliding: settings read None from <Device(255,B017,Wireless Mouse MX Master,)>
17:18:37,702    DEBUG [MainThread] logitech_receiver.settings: dpi-sliding: setting write 0 to <Device(255,B017,Wireless Mouse MX Master,)>
17:18:37,702    DEBUG [MainThread] logitech_receiver.settings: dpi-sliding: settings prepare write(0) => b'\x00\x00'
17:18:37,702    DEBUG [MainThread] logitech_receiver.settings: mouse-gestures: apply None (<Device(255,B017,Wireless Mouse MX Master,)>)
17:18:37,702    DEBUG [MainThread] logitech_receiver.settings: mouse-gestures: settings read None from <Device(255,B017,Wireless Mouse MX Master,)>
17:18:37,702    DEBUG [MainThread] logitech_receiver.settings: mouse-gestures: setting write 0 to <Device(255,B017,Wireless Mouse MX Master,)>
17:18:37,702    DEBUG [MainThread] logitech_receiver.settings: mouse-gestures: settings prepare write(0) => b'\x00\x00'
17:18:37,702    DEBUG [MainThread] logitech_receiver.settings: reprogrammable-keys: apply None (<Device(255,B017,Wireless Mouse MX Master,)>)
17:18:37,702    DEBUG [MainThread] logitech_receiver.settings: reprogrammable-keys: settings read None from <Device(255,B017,Wireless Mouse MX Master,)>
17:18:37,702    DEBUG [MainThread] logitech_receiver.settings: reprogrammable-keys: settings write {80: 80, 81: 81, 82: 82, 83: 83, 86: 86, 195: 195, 196: 196} to <Device(255,B017,Wireless Mouse MX Master,)>
17:18:37,702    DEBUG [MainThread] logitech_receiver.settings: reprogrammable-keys: settings prepare map write(80,80) => b'\x00P'
17:18:37,702    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 093F 00500000500000000000000000000000]
17:18:37,716    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 093F 00000000000000000000000000000000]
17:18:37,717    DEBUG [MainThread] logitech_receiver.hidpp20: REPROG_CONTROLS_v4 setCidReporting on device <Device(255,B017,Wireless Mouse MX Master,)> didn't echo request packet.
17:18:37,717    DEBUG [MainThread] logitech_receiver.settings: reprogrammable-keys: settings prepare map write(81,81) => b'\x00Q'
17:18:37,717    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 093C 00510000510000000000000000000000]
17:18:37,738    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 093C 00000000000000000000000000000000]
17:18:37,739    DEBUG [MainThread] logitech_receiver.hidpp20: REPROG_CONTROLS_v4 setCidReporting on device <Device(255,B017,Wireless Mouse MX Master,)> didn't echo request packet.
17:18:37,739    DEBUG [MainThread] logitech_receiver.settings: reprogrammable-keys: settings prepare map write(82,82) => b'\x00R'
17:18:37,739    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 0938 00520000520000000000000000000000]
17:18:37,754    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 0938 00000000000000000000000000000000]
17:18:37,754    DEBUG [MainThread] logitech_receiver.hidpp20: REPROG_CONTROLS_v4 setCidReporting on device <Device(255,B017,Wireless Mouse MX Master,)> didn't echo request packet.
17:18:37,754    DEBUG [MainThread] logitech_receiver.settings: reprogrammable-keys: settings prepare map write(83,83) => b'\x00S'
17:18:37,754    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 093B 00530000530000000000000000000000]
17:18:37,769    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 093B 00000000000000000000000000000000]
17:18:37,769    DEBUG [MainThread] logitech_receiver.hidpp20: REPROG_CONTROLS_v4 setCidReporting on device <Device(255,B017,Wireless Mouse MX Master,)> didn't echo request packet.
17:18:37,769    DEBUG [MainThread] logitech_receiver.settings: reprogrammable-keys: settings prepare map write(86,86) => b'\x00V'
17:18:37,769    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 093B 00560000560000000000000000000000]
17:18:37,791    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 093B 00000000000000000000000000000000]
17:18:37,791    DEBUG [MainThread] logitech_receiver.hidpp20: REPROG_CONTROLS_v4 setCidReporting on device <Device(255,B017,Wireless Mouse MX Master,)> didn't echo request packet.
17:18:37,791    DEBUG [MainThread] logitech_receiver.settings: reprogrammable-keys: settings prepare map write(195,195) => b'\x00\xc3'
17:18:37,791    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 0938 00C30000C30000000000000000000000]
17:18:37,807    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 0938 00000000000000000000000000000000]
17:18:37,807    DEBUG [MainThread] logitech_receiver.hidpp20: REPROG_CONTROLS_v4 setCidReporting on device <Device(255,B017,Wireless Mouse MX Master,)> didn't echo request packet.
17:18:37,807    DEBUG [MainThread] logitech_receiver.settings: reprogrammable-keys: settings prepare map write(196,196) => b'\x00\xc4'
17:18:37,807    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 093A 00C40000C40000000000000000000000]
17:18:37,822    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 093A 00000000000000000000000000000000]
17:18:37,822    DEBUG [MainThread] logitech_receiver.hidpp20: REPROG_CONTROLS_v4 setCidReporting on device <Device(255,B017,Wireless Mouse MX Master,)> didn't echo request packet.
17:18:37,822    DEBUG [MainThread] logitech_receiver.settings: divert-keys: apply None (<Device(255,B017,Wireless Mouse MX Master,)>)
17:18:37,822    DEBUG [MainThread] logitech_receiver.settings: divert-keys: settings read None from <Device(255,B017,Wireless Mouse MX Master,)>
17:18:37,822    DEBUG [MainThread] logitech_receiver.settings: divert-keys: settings write {82: 0, 83: 0, 86: 0, 195: 0, 196: 0} to <Device(255,B017,Wireless Mouse MX Master,)>
17:18:37,822    DEBUG [MainThread] logitech_receiver.settings: divert-keys: settings prepare map write(82,0) => b'\x00'
17:18:37,822    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 093A 00520200000000000000000000000000]
17:18:37,844    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 093A 00000000000000000000000000000000]
17:18:37,844    DEBUG [MainThread] logitech_receiver.hidpp20: REPROG_CONTROLS_v4 setCidReporting on device <Device(255,B017,Wireless Mouse MX Master,)> didn't echo request packet.
17:18:37,844    DEBUG [MainThread] logitech_receiver.settings: divert-keys: settings prepare map write(83,0) => b'\x00'
17:18:37,844    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 093A 00530200000000000000000000000000]
17:18:37,859    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 093A 00000000000000000000000000000000]
17:18:37,860    DEBUG [MainThread] logitech_receiver.hidpp20: REPROG_CONTROLS_v4 setCidReporting on device <Device(255,B017,Wireless Mouse MX Master,)> didn't echo request packet.
17:18:37,860    DEBUG [MainThread] logitech_receiver.settings: divert-keys: settings prepare map write(86,0) => b'\x00'
17:18:37,860    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 0939 00560200000000000000000000000000]
17:18:37,874    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 0939 00000000000000000000000000000000]
17:18:37,875    DEBUG [MainThread] logitech_receiver.hidpp20: REPROG_CONTROLS_v4 setCidReporting on device <Device(255,B017,Wireless Mouse MX Master,)> didn't echo request packet.
17:18:37,875    DEBUG [MainThread] logitech_receiver.settings: divert-keys: settings prepare map write(195,0) => b'\x00'
17:18:37,875    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 093D 00C30200000000000000000000000000]
17:18:37,896    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 093D 00000000000000000000000000000000]
17:18:37,897    DEBUG [MainThread] logitech_receiver.hidpp20: REPROG_CONTROLS_v4 setCidReporting on device <Device(255,B017,Wireless Mouse MX Master,)> didn't echo request packet.
17:18:37,897    DEBUG [MainThread] logitech_receiver.settings: divert-keys: settings prepare map write(196,0) => b'\x00'
17:18:37,897    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 0938 00C40200000000000000000000000000]
17:18:37,912    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 0938 00000000000000000000000000000000]
17:18:37,912    DEBUG [MainThread] logitech_receiver.hidpp20: REPROG_CONTROLS_v4 setCidReporting on device <Device(255,B017,Wireless Mouse MX Master,)> didn't echo request packet.
17:18:37,912    DEBUG [MainThread] logitech_receiver.settings: change-host: apply None (<Device(255,B017,Wireless Mouse MX Master,)>)
17:18:37,912    DEBUG [MainThread] logitech_receiver.settings: change-host: settings read None from <Device(255,B017,Wireless Mouse MX Master,)>
17:18:37,913    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 0808 00000000000000000000000000000000]
17:18:37,927    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 0808 03000100000000000000000000000000]
17:18:37,927    DEBUG [MainThread] logitech_receiver.settings: gesture2-gestures: apply None (<Device(255,B017,Wireless Mouse MX Master,)>)
17:18:37,927    DEBUG [MainThread] logitech_receiver.settings: gesture2-gestures: settings read None from <Device(255,B017,Wireless Mouse MX Master,)>
17:18:37,927    DEBUG [MainThread] logitech_receiver.settings: gesture2-gestures: bit field settings write {45: True, 46: True} to <Device(255,B017,Wireless Mouse MX Master,)>
17:18:37,928    DEBUG [MainThread] logitech_receiver.settings: gesture2-gestures: settings prepare map write({45: True, 46: True}) => [b'\x00\x01\x03\x03']
17:18:37,928    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 0E29 00010303000000000000000000000000]
17:18:37,949    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 0E29 00010303000000000000000000000000]
17:18:37,949    DEBUG [MainThread] logitech_receiver.settings: gesture2-divert: apply None (<Device(255,B017,Wireless Mouse MX Master,)>)
17:18:37,949    DEBUG [MainThread] logitech_receiver.settings: gesture2-divert: settings read None from <Device(255,B017,Wireless Mouse MX Master,)>
17:18:37,949    DEBUG [MainThread] logitech_receiver.settings: gesture2-divert: bit field settings write {46: False} to <Device(255,B017,Wireless Mouse MX Master,)>
17:18:37,949    DEBUG [MainThread] logitech_receiver.settings: gesture2-divert: settings prepare map write({46: False}) => [b'\x00\x01\x01\x00']
17:18:37,950    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 0E4F 00010100000000000000000000000000]
17:18:37,964    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 0E4F 00010100000000000000000000000000]
17:18:37,965    DEBUG [MainThread] logitech_receiver.base: (14) <= w[11 FF 032F 00000000000000000000000000000000]
17:18:37,979    DEBUG [MainThread] logitech_receiver.base: (14) => r[11 FF 032F 03000000000000000000000000000000]
17:18:37,980     INFO [MainThread] solaar.listener: status_changed <Device(255,B017,Wireless Mouse MX Master,)>: paired online, {} (0) initialization
17:18:37,980     INFO [ReceiverListener:hidraw6] logitech_receiver.listener: started with <Device(255,B017,Wireless Mouse MX Master,)> (14)
17:18:37,981     INFO [ReceiverListener:hidraw6] solaar.listener: <Device(255,B017,Wireless Mouse MX Master,)>: notifications listener has started (14)
17:18:37,981     INFO [ReceiverListener:hidraw6] solaar.listener: status_changed <Device(255,B017,Wireless Mouse MX Master,)>: paired online, {'NOTIFICATION FLAGS': False} (0) 
17:18:37,982    DEBUG [MainThread] hidapi.udev: Found device BID 0005 VID 0000046D PID 0000B319 INTERFACE None FILTER None
17:18:37,982     INFO [MainThread] solaar.listener: receiver event add DeviceInfo(path='/dev/hidraw7', vendor_id='046D', product_id='B319', serial='34:88:5d:5d:f8:1e', release=None, manufacturer=None, product=None, interface=None, driver='hid-generic', bus_id=5, isDevice=True)
17:18:37,983    DEBUG [MainThread] logitech_receiver.base: (15) pinging device 255
17:18:37,983     INFO [MainThread] logitech_receiver.base: New lock 15
17:18:37,983    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 001C 00006B00000000000000000000000000]
17:18:38,364    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 001C 02006B00000000000000000000000000]
17:18:38,365    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 0008 00010000000000000000000000000000]
17:18:38,378    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 0008 01000000000000000000000000000000]
17:18:38,378    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 0108 00000000000000000000000000000000]
17:18:38,388    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 0108 0B000000000000000000000000000000]
17:18:38,388    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 000A 00030000000000000000000000000000]
17:18:38,400    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 000A 03000000000000000000000000000000]
17:18:38,401    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 030C 00000000000000000000000000000000]
17:18:38,411    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 030C 02000000000000000000000000000000]
17:18:38,411    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 000F 00050000000000000000000000000000]
17:18:38,423    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 000F 04000000000000000000000000000000]
17:18:38,423    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 0409 00000000000000000000000000000000]
17:18:38,433    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 0409 19000000000000000000000000000000]
17:18:38,433    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 041B 00000000000000000000000000000000]
17:18:38,446    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 041B 496C6C756D696E61746564204B657962]
17:18:38,446    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 0419 10000000000000000000000000000000]
17:18:38,456    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 0419 6F617264204B38313000000000000000]
17:18:38,456    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 000B 10000000000000000000000000000000]
17:18:38,468    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 000B 07000000000000000000000000000000]
17:18:38,469    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 070F 00000000000000000000000000000000]
17:18:38,478    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 070F 5A320000000000000000000000000000]
17:18:38,478    DEBUG [MainThread] logitech_receiver.hidpp20: battery status 90% charged, next 50%, status discharging
17:18:38,478    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 0009 10040000000000000000000000000000]
17:18:38,490    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 0009 00000000000000000000000000000000]
17:18:38,491    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 000C 10010000000000000000000000000000]
17:18:38,500    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 000C 00000000000000000000000000000000]
17:18:38,501    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 0008 1F200000000000000000000000000000]
17:18:38,513    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 0008 00000000000000000000000000000000]
17:18:38,572     INFO [MainThread] solaar.configuration: saved ['1.1.4rc1', {'_NAME': 'Logitech PRO X Wireless Gaming Headset', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'fn-swap', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params'], '_battery': 7968, '_modelId': '000000000ABA', '_sensitive': {'equalizer': True}, '_unitId': 'FFFFFFFF', 'equalizer': {0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0}, 'sidetone': 0}, {'_NAME': 'Wireless Mouse MX Master', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'speed-change', 'backlight', 'backlight-timed', 'fn-swap', 'persistent-remappable-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': 'B01740600000', '_sensitive': {'hires-smooth-invert': True}, '_unitId': 'D615A538', 'change-host': None, 'divert-keys': {82: 0, 83: 0, 86: 0, 195: 0, 196: 0}, 'dpi': 1000, 'dpi-sliding': 0, 'gesture2-divert': {46: False}, 'gesture2-gestures': {45: True, 46: True}, 'hires-scroll-mode': False, 'hires-smooth-invert': False, 'hires-smooth-resolution': False, 'mouse-gestures': 0, 'reprogrammable-keys': {80: 80, 81: 81, 82: 82, 83: 83, 86: 86, 195: 195, 196: 196}, 'smart-shift': 30}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_modelId': '000000000000', '_unitId': '00000000', '_battery': 0}] to /home/victor/.config/solaar/config.yaml
17:18:38,573    DEBUG [MainThread] logitech_receiver.status: <Device(255,B319,Illuminated Keyboard K810,)>: battery None, None
17:18:38,573    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 042C 00000000000000000000000000000000]
17:18:38,580    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 042C 00000000000000000000000000000000]
17:18:38,580    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 042B 00000000000000000000000000000000]
17:18:38,590    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 042B 00000000000000000000000000000000]
17:18:38,590     INFO [MainThread] solaar.listener: status_changed <Device(255,B319,Illuminated Keyboard K810,)>: paired online, {'BATTERY LEVEL': None, 'BATTERY STATUS': None, 'BATTERY NEXT LEVEL': None, 'BATTERY VOLTAGE': None, 'BATTERY CHARGING': False, 'ERROR': None} (0) 
17:18:38,590    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 042A 00000000000000000000000000000000]
17:18:38,603    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 042A 00000000000000000000000000000000]
17:18:38,603    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 000D 21200000000000000000000000000000]
17:18:38,613    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 000D 00000000000000000000000000000000]
17:18:38,613    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 000B 21300000000000000000000000000000]
17:18:38,626    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 000B 00000000000000000000000000000000]
17:18:38,627    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 0009 21210000000000000000000000000000]
17:18:38,635    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 0009 00000000000000000000000000000000]
17:18:38,635    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 0009 21100000000000000000000000000000]
17:18:38,658    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 0009 00000000000000000000000000000000]
17:18:38,658    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 000F 21110000000000000000000000000000]
17:18:38,670    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 000F 00000000000000000000000000000000]
17:18:38,671    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 000A 21500000000000000000000000000000]
17:18:38,680    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 000A 00000000000000000000000000000000]
17:18:38,681    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 0008 81000000000000000000000000000000]
17:18:38,693    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 0008 00000000000000000000000000000000]
17:18:38,694    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 000B 80600000000000000000000000000000]
17:18:38,703    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 000B 00000000000000000000000000000000]
17:18:38,703    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 0009 22050000000000000000000000000000]
17:18:38,715    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 0009 00000000000000000000000000000000]
17:18:38,715    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 000F 22010000000000000000000000000000]
17:18:38,725    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 000F 00000000000000000000000000000000]
17:18:38,725    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 000A 1B040000000000000000000000000000]
17:18:38,738    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 000A 00000000000000000000000000000000]
17:18:38,738    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 0008 19820000000000000000000000000000]
17:18:38,748    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 0008 00000000000000000000000000000000]
17:18:38,748    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 000E 19830000000000000000000000000000]
17:18:38,760    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 000E 00000000000000000000000000000000]
17:18:38,760    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 0008 40A00000000000000000000000000000]
17:18:38,770    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 0008 05000000000000000000000000000000]
17:18:38,770    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 000F 00070000000000000000000000000000]
17:18:38,783    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 000F 00000000000000000000000000000000]
17:18:38,770    DEBUG [MainThread] logitech_receiver.settings_templates: check_feature fn-swap [FN INVERSION] detected <Setting([feature:toggle] Illuminated:fn-swap=None)>
17:18:38,783    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 000F 1C000000000000000000000000000000]
17:18:38,793    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 000F 00000000000000000000000000000000]
17:18:38,793    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 000E 45210000000000000000000000000000]
17:18:38,805    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 000E 00000000000000000000000000000000]
17:18:38,805    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 000A 46000000000000000000000000000000]
17:18:38,815    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 000A 00000000000000000000000000000000]
17:18:38,815    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 0008 80100000000000000000000000000000]
17:18:38,828    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 0008 00000000000000000000000000000000]
17:18:38,828    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 0008 80200000000000000000000000000000]
17:18:38,838    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 0008 00000000000000000000000000000000]
17:18:38,838    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 000A 80300000000000000000000000000000]
17:18:38,850    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 000A 00000000000000000000000000000000]
17:18:38,851    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 000C 45310000000000000000000000000000]
17:18:38,860    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 000C 00000000000000000000000000000000]
17:18:38,861    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 000C 45300000000000000000000000000000]
17:18:38,873    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 000C 00000000000000000000000000000000]
17:18:38,874    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 0009 18140000000000000000000000000000]
17:18:38,883    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 0009 00000000000000000000000000000000]
17:18:38,883    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 000E 65010000000000000000000000000000]
17:18:38,896    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 000E 00000000000000000000000000000000]
17:18:38,896    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 000C 83000000000000000000000000000000]
17:18:38,907    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 000C 00000000000000000000000000000000]
17:18:38,907    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 000A 83100000000000000000000000000000]
17:18:38,918    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 000A 00000000000000000000000000000000]
17:18:38,978     INFO [MainThread] solaar.configuration: saved ['1.1.4rc1', {'_NAME': 'Logitech PRO X Wireless Gaming Headset', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'fn-swap', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params'], '_battery': 7968, '_modelId': '000000000ABA', '_sensitive': {'equalizer': True}, '_unitId': 'FFFFFFFF', 'equalizer': {0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0}, 'sidetone': 0}, {'_NAME': 'Wireless Mouse MX Master', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'speed-change', 'backlight', 'backlight-timed', 'fn-swap', 'persistent-remappable-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': 'B01740600000', '_sensitive': {'hires-smooth-invert': True}, '_unitId': 'D615A538', 'change-host': None, 'divert-keys': {82: 0, 83: 0, 86: 0, 195: 0, 196: 0}, 'dpi': 1000, 'dpi-sliding': 0, 'gesture2-divert': {46: False}, 'gesture2-gestures': {45: True, 46: True}, 'hires-scroll-mode': False, 'hires-smooth-invert': False, 'hires-smooth-resolution': False, 'mouse-gestures': 0, 'reprogrammable-keys': {80: 80, 81: 81, 82: 82, 83: 83, 86: 86, 195: 195, 196: 196}, 'smart-shift': 30}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_modelId': '000000000000', '_unitId': '00000000', '_battery': 0, '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer']}] to /home/victor/.config/solaar/config.yaml
17:18:38,979     INFO [MainThread] logitech_receiver.status: <Device(255,B319,Illuminated Keyboard K810,)> pushing device settings [<Setting([feature:toggle] Illuminated:fn-swap=None)>]
17:18:38,979    DEBUG [MainThread] logitech_receiver.settings: fn-swap: apply None (<Device(255,B319,Illuminated Keyboard K810,)>)
17:18:38,979    DEBUG [MainThread] logitech_receiver.settings: fn-swap: settings read None from <Device(255,B319,Illuminated Keyboard K810,)>
17:18:38,979    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 050C 00000000000000000000000000000000]
17:18:38,985    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 050C 01010000000000000000000000000000]
17:18:38,985    DEBUG [MainThread] logitech_receiver.settings: BooleanValidator: validate read b'\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' => 01
17:18:39,012     INFO [MainThread] solaar.configuration: saved ['1.1.4rc1', {'_NAME': 'Logitech PRO X Wireless Gaming Headset', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'fn-swap', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params'], '_battery': 7968, '_modelId': '000000000ABA', '_sensitive': {'equalizer': True}, '_unitId': 'FFFFFFFF', 'equalizer': {0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0}, 'sidetone': 0}, {'_NAME': 'Wireless Mouse MX Master', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'speed-change', 'backlight', 'backlight-timed', 'fn-swap', 'persistent-remappable-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': 'B01740600000', '_sensitive': {'hires-smooth-invert': True}, '_unitId': 'D615A538', 'change-host': None, 'divert-keys': {82: 0, 83: 0, 86: 0, 195: 0, 196: 0}, 'dpi': 1000, 'dpi-sliding': 0, 'gesture2-divert': {46: False}, 'gesture2-gestures': {45: True, 46: True}, 'hires-scroll-mode': False, 'hires-smooth-invert': False, 'hires-smooth-resolution': False, 'mouse-gestures': 0, 'reprogrammable-keys': {80: 80, 81: 81, 82: 82, 83: 83, 86: 86, 195: 195, 196: 196}, 'smart-shift': 30}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_modelId': '000000000000', '_unitId': '00000000', '_battery': 0, '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], 'fn-swap': True}] to /home/victor/.config/solaar/config.yaml
17:18:39,012    DEBUG [MainThread] logitech_receiver.settings: fn-swap: setting write True to <Device(255,B319,Illuminated Keyboard K810,)>
17:18:39,012    DEBUG [MainThread] logitech_receiver.settings: BooleanValidator: prepare_write(True, None) => b'\x01'
17:18:39,012    DEBUG [MainThread] logitech_receiver.settings: fn-swap: settings prepare write(True) => b'\x01'
17:18:39,012    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 051C 01000000000000000000000000000000]
17:18:39,018    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 051C 01010000000000000000000000000000]
17:18:39,018    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 042A 00000000000000000000000000000000]
17:18:39,030    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 042A 00000000000000000000000000000000]
17:18:39,030     INFO [MainThread] solaar.listener: status_changed <Device(255,B319,Illuminated Keyboard K810,)>: paired online, {'BATTERY LEVEL': None, 'BATTERY STATUS': None, 'BATTERY NEXT LEVEL': None, 'BATTERY VOLTAGE': None, 'BATTERY CHARGING': False, 'ERROR': None} (0) initialization
17:18:39,030    DEBUG [MainThread] logitech_receiver.base: (15) <= w[11 FF 0428 00000000000000000000000000000000]
17:18:39,041    DEBUG [MainThread] logitech_receiver.base: (15) => r[11 FF 0428 00000000000000000000000000000000]
17:18:39,041     INFO [ReceiverListener:hidraw7] logitech_receiver.listener: started with <Device(255,B319,Illuminated Keyboard K810,)> (15)
17:18:39,041     INFO [ReceiverListener:hidraw7] solaar.listener: <Device(255,B319,Illuminated Keyboard K810,)>: notifications listener has started (15)
17:18:39,041     INFO [ReceiverListener:hidraw7] logitech_receiver.base: New lock <_ThreadedHandle(/dev/hidraw7)>
17:18:39,041    DEBUG [ReceiverListener:hidraw7] logitech_receiver.base: (15) <= w[11 FF 042F 00000000000000000000000000000000]
17:18:39,042    DEBUG [MainThread] solaar.ui: activate
17:18:39,043    DEBUG [MainThread] solaar.ui: status changed: <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)> (NONE) None
17:18:39,043    DEBUG [MainThread] solaar.ui.icons: battery icon for good:True = battery-good-charging
17:18:39,043    DEBUG [MainThread] solaar.ui.tray: picked device with lowest battery: ('/dev/hidraw2', 255, 'Logitech PRO X Wireless Gaming Headset', {'BATTERY LEVEL': NamedInt(50, 'good'), 'BATTERY STATUS': NamedInt(1, 'recharging'), 'BATTERY NEXT LEVEL': None, 'BATTERY VOLTAGE': 4332, 'BATTERY CHARGING': True, 'ERROR': None, 'NOTIFICATION FLAGS': False})
17:18:39,043    DEBUG [MainThread] solaar.ui.icons: battery icon for good:True = battery-good-charging
17:18:39,044    DEBUG [MainThread] solaar.ui.window: new device row ('/dev/hidraw2', 255, True, 'PRO Headset', 'audio-headset', None, None, <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>) at index 0
17:18:39,045    DEBUG [MainThread] solaar.ui.icons: battery icon for good:True = battery-good-charging
17:18:39,045    DEBUG [MainThread] solaar.ui.icons: battery icon for good:True = battery-good-charging
17:18:39,046    DEBUG [AsyncUI] logitech_receiver.settings: sidetone: settings read 0 from <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>
17:18:39,051    DEBUG [AsyncUI] logitech_receiver.settings: equalizer: settings read {0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0} from <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>
17:18:39,052    DEBUG [MainThread] solaar.ui: status changed: <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)> (NONE) initialization
17:18:39,052    DEBUG [MainThread] solaar.ui.icons: battery icon for good:True = battery-good-charging
17:18:39,052    DEBUG [MainThread] solaar.ui.tray: picked device with lowest battery: ('/dev/hidraw2', 255, 'Logitech PRO X Wireless Gaming Headset', {'BATTERY LEVEL': NamedInt(50, 'good'), 'BATTERY STATUS': NamedInt(1, 'recharging'), 'BATTERY NEXT LEVEL': None, 'BATTERY VOLTAGE': 4332, 'BATTERY CHARGING': True, 'ERROR': None, 'NOTIFICATION FLAGS': False})
17:18:39,052    DEBUG [MainThread] solaar.ui.icons: battery icon for good:True = battery-good-charging
17:18:39,053    DEBUG [ReceiverListener:hidraw7] logitech_receiver.base: (15) => r[11 FF 042F 00000000000000000000000000000000]
17:18:39,053     INFO [ReceiverListener:hidraw7] solaar.listener: status_changed <Device(255,B319,Illuminated Keyboard K810,)>: paired online, {'BATTERY LEVEL': None, 'BATTERY STATUS': None, 'BATTERY NEXT LEVEL': None, 'BATTERY VOLTAGE': None, 'BATTERY CHARGING': False, 'ERROR': None, 'NOTIFICATION FLAGS': False} (0) 
17:18:39,053    DEBUG [MainThread] solaar.ui.icons: battery icon for good:True = battery-good-charging
17:18:39,053    DEBUG [ReceiverListener:hidraw7] logitech_receiver.base: (15) <= w[11 FF 042E 00000000000000000000000000000000]
17:18:39,053    DEBUG [MainThread] solaar.ui.icons: battery icon for good:True = battery-good-charging
17:18:39,054    DEBUG [MainThread] solaar.ui: status changed: <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)> (NONE) None
17:18:39,054    DEBUG [MainThread] solaar.ui.icons: battery icon for good:True = battery-good-charging
17:18:39,054    DEBUG [MainThread] solaar.ui.tray: picked device with lowest battery: ('/dev/hidraw2', 255, 'Logitech PRO X Wireless Gaming Headset', {'BATTERY LEVEL': NamedInt(50, 'good'), 'BATTERY STATUS': NamedInt(1, 'recharging'), 'BATTERY NEXT LEVEL': None, 'BATTERY VOLTAGE': 4332, 'BATTERY CHARGING': True, 'ERROR': None, 'NOTIFICATION FLAGS': False})
17:18:39,054    DEBUG [MainThread] solaar.ui.icons: battery icon for good:True = battery-good-charging
17:18:39,055    DEBUG [MainThread] solaar.ui.icons: battery icon for good:True = battery-good-charging
17:18:39,055    DEBUG [MainThread] solaar.ui.icons: battery icon for good:True = battery-good-charging
17:18:39,055    DEBUG [MainThread] solaar.ui: status changed: <Device(255,B017,Wireless Mouse MX Master,)> (NONE) initialization
17:18:39,056    DEBUG [MainThread] solaar.ui.icons: battery icon for None:None = battery-missing
17:18:39,056    DEBUG [MainThread] solaar.ui.tray: picked device with lowest battery: ('/dev/hidraw2', 255, 'Logitech PRO X Wireless Gaming Headset', {'BATTERY LEVEL': NamedInt(50, 'good'), 'BATTERY STATUS': NamedInt(1, 'recharging'), 'BATTERY NEXT LEVEL': None, 'BATTERY VOLTAGE': 4332, 'BATTERY CHARGING': True, 'ERROR': None, 'NOTIFICATION FLAGS': False})
17:18:39,056    DEBUG [MainThread] solaar.ui.icons: battery icon for good:True = battery-good-charging
17:18:39,056    DEBUG [MainThread] solaar.ui.window: new device row ('/dev/hidraw6', 255, True, 'Wireless', 'input-mouse', None, None, <Device(255,B017,Wireless Mouse MX Master,)>) at index 0
17:18:39,056    DEBUG [MainThread] solaar.ui: status changed: <Device(255,B017,Wireless Mouse MX Master,)> (NONE) None
17:18:39,056    DEBUG [MainThread] solaar.ui.icons: battery icon for None:None = battery-missing
17:18:39,057    DEBUG [MainThread] solaar.ui.tray: picked device with lowest battery: ('/dev/hidraw2', 255, 'Logitech PRO X Wireless Gaming Headset', {'BATTERY LEVEL': NamedInt(50, 'good'), 'BATTERY STATUS': NamedInt(1, 'recharging'), 'BATTERY NEXT LEVEL': None, 'BATTERY VOLTAGE': 4332, 'BATTERY CHARGING': True, 'ERROR': None, 'NOTIFICATION FLAGS': False})
17:18:39,057    DEBUG [MainThread] solaar.ui.icons: battery icon for good:True = battery-good-charging
17:18:39,057    DEBUG [MainThread] solaar.ui: status changed: <Device(255,B319,Illuminated Keyboard K810,)> (NONE) None
17:18:39,063    DEBUG [ReceiverListener:hidraw7] logitech_receiver.base: (15) => r[11 FF 042E 00000000000000000000000000000000]
17:18:39,063    DEBUG [MainThread] logitech_receiver.base: (18) <= w[11 FF 042B 00000000000000000000000000000000]
17:18:39,075    DEBUG [MainThread] logitech_receiver.base: (18) => r[11 FF 042B 00000000000000000000000000000000]
17:18:39,075    DEBUG [ReceiverListener:hidraw7] logitech_receiver.base: (15) => r[11 FF 042B 00000000000000000000000000000000]
17:18:39,076    DEBUG [MainThread] solaar.ui.icons: battery icon for None:False = battery-missing
17:18:39,076    DEBUG [MainThread] logitech_receiver.base: (18) <= w[11 FF 042E 00000000000000000000000000000000]
17:18:39,085    DEBUG [MainThread] logitech_receiver.base: (18) => r[11 FF 042E 00000000000000000000000000000000]
17:18:39,085    DEBUG [ReceiverListener:hidraw7] logitech_receiver.base: (15) => r[11 FF 042E 00000000000000000000000000000000]
17:18:39,085    DEBUG [MainThread] solaar.ui.tray: picked device with lowest battery: ('/dev/hidraw2', 255, 'Logitech PRO X Wireless Gaming Headset', {'BATTERY LEVEL': NamedInt(50, 'good'), 'BATTERY STATUS': NamedInt(1, 'recharging'), 'BATTERY NEXT LEVEL': None, 'BATTERY VOLTAGE': 4332, 'BATTERY CHARGING': True, 'ERROR': None, 'NOTIFICATION FLAGS': False})
17:18:39,086    DEBUG [MainThread] solaar.ui.icons: battery icon for good:True = battery-good-charging
17:18:39,086    DEBUG [MainThread] logitech_receiver.base: (18) <= w[11 FF 042D 00000000000000000000000000000000]
17:18:39,098    DEBUG [MainThread] logitech_receiver.base: (18) => r[11 FF 042D 00000000000000000000000000000000]
17:18:39,098    DEBUG [MainThread] logitech_receiver.base: (18) <= w[11 FF 042C 00000000000000000000000000000000]
17:18:39,098    DEBUG [ReceiverListener:hidraw7] logitech_receiver.base: (15) => r[11 FF 042D 00000000000000000000000000000000]
17:18:39,108    DEBUG [MainThread] logitech_receiver.base: (18) => r[11 FF 042C 00000000000000000000000000000000]
17:18:39,108    DEBUG [ReceiverListener:hidraw7] logitech_receiver.base: (15) => r[11 FF 042C 00000000000000000000000000000000]
17:18:39,108    DEBUG [MainThread] solaar.ui.window: new device row ('/dev/hidraw7', 255, True, 'Illuminated', 'preferences-desktop-peripherals', None, None, <Device(255,B319,Illuminated Keyboard K810,)>) at index 0
17:18:39,108    DEBUG [MainThread] solaar.ui: status changed: <Device(255,B319,Illuminated Keyboard K810,)> (NONE) initialization
17:18:39,108    DEBUG [MainThread] logitech_receiver.base: (18) <= w[11 FF 042D 00000000000000000000000000000000]
17:18:39,120    DEBUG [MainThread] logitech_receiver.base: (18) => r[11 FF 042D 00000000000000000000000000000000]
17:18:39,120    DEBUG [ReceiverListener:hidraw7] logitech_receiver.base: (15) => r[11 FF 042D 00000000000000000000000000000000]
17:18:39,121    DEBUG [MainThread] solaar.ui.icons: battery icon for None:False = battery-missing
17:18:39,121    DEBUG [MainThread] logitech_receiver.base: (18) <= w[11 FF 042F 00000000000000000000000000000000]
17:18:39,130    DEBUG [MainThread] logitech_receiver.base: (18) => r[11 FF 042F 00000000000000000000000000000000]
17:18:39,130    DEBUG [MainThread] solaar.ui.tray: picked device with lowest battery: ('/dev/hidraw2', 255, 'Logitech PRO X Wireless Gaming Headset', {'BATTERY LEVEL': NamedInt(50, 'good'), 'BATTERY STATUS': NamedInt(1, 'recharging'), 'BATTERY NEXT LEVEL': None, 'BATTERY VOLTAGE': 4332, 'BATTERY CHARGING': True, 'ERROR': None, 'NOTIFICATION FLAGS': False})
17:18:39,130    DEBUG [ReceiverListener:hidraw7] logitech_receiver.base: (15) => r[11 FF 042F 00000000000000000000000000000000]
17:18:39,131    DEBUG [MainThread] solaar.ui.icons: battery icon for good:True = battery-good-charging
17:18:39,131    DEBUG [MainThread] logitech_receiver.base: (18) <= w[11 FF 042C 00000000000000000000000000000000]
17:18:39,143    DEBUG [MainThread] logitech_receiver.base: (18) => r[11 FF 042C 00000000000000000000000000000000]
17:18:39,143    DEBUG [ReceiverListener:hidraw7] logitech_receiver.base: (15) => r[11 FF 042C 00000000000000000000000000000000]
17:18:39,195    DEBUG [MainThread] solaar.ui: status changed: <Device(255,B319,Illuminated Keyboard K810,)> (NONE) None
17:18:39,195    DEBUG [MainThread] logitech_receiver.base: (18) <= w[11 FF 042A 00000000000000000000000000000000]
17:18:39,213    DEBUG [MainThread] logitech_receiver.base: (18) => r[11 FF 042A 00000000000000000000000000000000]
17:18:39,213    DEBUG [ReceiverListener:hidraw7] logitech_receiver.base: (15) => r[11 FF 042A 00000000000000000000000000000000]
17:18:39,213    DEBUG [MainThread] solaar.ui.icons: battery icon for None:False = battery-missing
17:18:39,213    DEBUG [MainThread] logitech_receiver.base: (18) <= w[11 FF 042E 00000000000000000000000000000000]
17:18:39,220    DEBUG [MainThread] logitech_receiver.base: (18) => r[11 FF 042E 00000000000000000000000000000000]
17:18:39,220    DEBUG [MainThread] solaar.ui.tray: picked device with lowest battery: ('/dev/hidraw2', 255, 'Logitech PRO X Wireless Gaming Headset', {'BATTERY LEVEL': NamedInt(50, 'good'), 'BATTERY STATUS': NamedInt(1, 'recharging'), 'BATTERY NEXT LEVEL': None, 'BATTERY VOLTAGE': 4332, 'BATTERY CHARGING': True, 'ERROR': None, 'NOTIFICATION FLAGS': False})
17:18:39,220    DEBUG [MainThread] solaar.ui.icons: battery icon for good:True = battery-good-charging
17:18:39,221    DEBUG [ReceiverListener:hidraw7] logitech_receiver.base: (15) => r[11 FF 042E 00000000000000000000000000000000]
17:18:39,221    DEBUG [MainThread] logitech_receiver.base: (18) <= w[11 FF 042A 00000000000000000000000000000000]
17:18:39,233    DEBUG [ReceiverListener:hidraw7] logitech_receiver.base: (15) => r[11 FF 042A 00000000000000000000000000000000]
17:18:39,233    DEBUG [MainThread] logitech_receiver.base: (18) => r[11 FF 042A 00000000000000000000000000000000]
17:18:39,353    DEBUG [ReceiverListener:hidraw2] logitech_receiver.base: (13) => r[11 FF 0600 00000000000000000000000000000000]
17:18:39,354    DEBUG [ReceiverListener:hidraw2] logitech_receiver.notifications: <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>: notification for feature ADC MEASUREMENT, report 0, data 00000000000000000000000000000000
17:18:39,354    ERROR [ReceiverListener:hidraw2] logitech_receiver.listener: processing Notification(11,255,06,00,00000000000000000000000000000000)
Traceback (most recent call last):
  File "/home/victor/temp/Solaar/lib/logitech_receiver/listener.py", line 188, in run
    self._notifications_callback(n)
  File "/home/victor/temp/Solaar/lib/solaar/listener.py", line 192, in _notifications_handler
    _notifications.process(self.receiver, n)
  File "/home/victor/temp/Solaar/lib/logitech_receiver/notifications.py", line 60, in process
    return _process_device_notification(device, status, notification)
  File "/home/victor/temp/Solaar/lib/logitech_receiver/notifications.py", line 200, in _process_device_notification
    return _process_feature_notification(device, status, n, feature)
  File "/home/victor/temp/Solaar/lib/logitech_receiver/notifications.py", line 342, in _process_feature_notification
    _ignore, level, next, status, voltage = _hidpp20.decipher_adc_measurement(n.data)
TypeError: cannot unpack non-iterable NoneType object
17:18:40,984    DEBUG [ReceiverListener:hidraw2] logitech_receiver.base: (13) => r[11 FF 0600 0FDC0300000000000000000000000000]
17:18:40,985    DEBUG [ReceiverListener:hidraw2] logitech_receiver.notifications: <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>: notification for feature ADC MEASUREMENT, report 0, data 0FDC0300000000000000000000000000
17:18:40,985    ERROR [ReceiverListener:hidraw2] logitech_receiver.listener: processing Notification(11,255,06,00,0FDC0300000000000000000000000000)
Traceback (most recent call last):
  File "/home/victor/temp/Solaar/lib/logitech_receiver/listener.py", line 188, in run
    self._notifications_callback(n)
  File "/home/victor/temp/Solaar/lib/solaar/listener.py", line 192, in _notifications_handler
    _notifications.process(self.receiver, n)
  File "/home/victor/temp/Solaar/lib/logitech_receiver/notifications.py", line 60, in process
    return _process_device_notification(device, status, notification)
  File "/home/victor/temp/Solaar/lib/logitech_receiver/notifications.py", line 200, in _process_device_notification
    return _process_feature_notification(device, status, n, feature)
  File "/home/victor/temp/Solaar/lib/logitech_receiver/notifications.py", line 343, in _process_feature_notification
    status.set_battery_info(level, next, status, voltage)
AttributeError: 'NamedInt' object has no attribute 'set_battery_info'
17:18:43,298    DEBUG [ReceiverListener:hidraw2] logitech_receiver.base: (13) => r[11 FF 0600 0FD90300000000000000000000000000]
17:18:43,299    DEBUG [ReceiverListener:hidraw2] logitech_receiver.notifications: <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>: notification for feature ADC MEASUREMENT, report 0, data 0FD90300000000000000000000000000
17:18:43,299    ERROR [ReceiverListener:hidraw2] logitech_receiver.listener: processing Notification(11,255,06,00,0FD90300000000000000000000000000)
Traceback (most recent call last):
  File "/home/victor/temp/Solaar/lib/logitech_receiver/listener.py", line 188, in run
    self._notifications_callback(n)
  File "/home/victor/temp/Solaar/lib/solaar/listener.py", line 192, in _notifications_handler
    _notifications.process(self.receiver, n)
  File "/home/victor/temp/Solaar/lib/logitech_receiver/notifications.py", line 60, in process
    return _process_device_notification(device, status, notification)
  File "/home/victor/temp/Solaar/lib/logitech_receiver/notifications.py", line 200, in _process_device_notification
    return _process_feature_notification(device, status, n, feature)
  File "/home/victor/temp/Solaar/lib/logitech_receiver/notifications.py", line 343, in _process_feature_notification
    status.set_battery_info(level, next, status, voltage)
AttributeError: 'NamedInt' object has no attribute 'set_battery_info'
pfps commented 2 years ago

There was a bug in the handling of battery notifications, which should now be fixed. Battery information should now show up a bit better. Still no level information, but the GUI should show the ADC measurement and so should solaar show.

The timeout for the equalizer is still troubling. Try running solaar -ddd and see if you can change an equalizer setting. Post the output.

pfps commented 2 years ago

There is a new version of the PR so please download and run that.

Victor-MichelDansac commented 2 years ago

The gui icon for the battery now seems to be working (it correctly changes from charging to discharging, and it shows the same numerical value as solaar show does).

Running solaar -ddd and changing an equalizer setting does not seem to change anything to the sound output by the headset. About five seconds later, the sound cuts out for about one second and the "switching on" beep is triggered. Here are the logs related to changing the equalizer settings (changed the first slider from 0 to 6):

18:28:06,316    DEBUG [AsyncUI] logitech_receiver.settings: equalizer: range field setting write key 0 value 6 to <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>
18:28:06,316    DEBUG [AsyncUI] logitech_receiver.settings: equalizer: range field setting write {0: 6, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0} to <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>
18:28:06,368     INFO [AsyncUI] solaar.configuration: saved ['1.1.4rc1', {'_NAME': 'Logitech PRO X Wireless Gaming Headset', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'fn-swap', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params'], '_battery': 7968, '_modelId': '000000000ABA', '_sensitive': {'equalizer': True}, '_unitId': 'FFFFFFFF', 'equalizer': {0: 6, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0}, 'sidetone': 0}, {'_NAME': 'Wireless Mouse MX Master', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'speed-change', 'backlight', 'backlight-timed', 'fn-swap', 'persistent-remappable-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': 'B01740600000', '_sensitive': {'hires-smooth-invert': True}, '_unitId': 'D615A538', 'change-host': None, 'divert-keys': {82: 0, 83: 0, 86: 0, 195: 0, 196: 0}, 'dpi': 1000, 'dpi-sliding': 0, 'gesture2-divert': {46: False}, 'gesture2-gestures': {45: True, 46: True}, 'hires-scroll-mode': False, 'hires-smooth-invert': False, 'hires-smooth-resolution': False, 'mouse-gestures': 0, 'reprogrammable-keys': {80: 80, 81: 81, 82: 82, 83: 83, 86: 86, 195: 195, 196: 196}, 'smart-shift': 30}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 4096, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 4096, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 4096, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 4096, '_modelId': '000000000000', '_unitId': '00000000', 'fn-swap': True}, {'_NAME': 'Illuminated Keyboard K810', '_modelId': '000000000000', '_unitId': '00000000', '_battery': NamedInt(4096, 'BATTERY STATUS'), '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'backlight-timed', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], 'fn-swap': True}] to /home/victor/.config/solaar/config.yaml
18:28:06,369    DEBUG [AsyncUI] logitech_receiver.settings: equalizer: range field setting prepare map write({0: 6, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0}) => b'\x02\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00'
18:28:06,370    DEBUG [AsyncUI] logitech_receiver.base: (20) <= w[11 FF 043C 02060000000000000000000000000000]
18:28:07,271  WARNING [AsyncUI] logitech_receiver.base: timeout (0.90/0.90) on device 255 request {043C} params [0206000000000000000000]
18:28:10,635    DEBUG [ReceiverListener:hidraw2] logitech_receiver.base: (13) => r[11 FF 0600 00000000000000000000000000000000]
18:28:10,636    DEBUG [ReceiverListener:hidraw2] logitech_receiver.notifications: <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>: notification for feature ADC MEASUREMENT, report 0, data 00000000000000000000000000000000
18:28:12,338    DEBUG [ReceiverListener:hidraw2] logitech_receiver.base: (13) => r[11 FF 0600 0FA50100000000000000000000000000]
18:28:12,339    DEBUG [ReceiverListener:hidraw2] logitech_receiver.notifications: <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>: notification for feature ADC MEASUREMENT, report 0, data 0FA50100000000000000000000000000
18:28:12,339    DEBUG [ReceiverListener:hidraw2] logitech_receiver.status: <Device(255,0ABA,Logitech PRO X Wireless Gaming Headset,)>: battery None, discharging
pfps commented 2 years ago

You could try writing to the headset using hidconsole (./tools/hidconsole from the Solaar download directory). That will not trigger any timeouts and should show a leaner interaction. Try both reading and writing values. Reading EEPROM would be

11 FF 042B 00000000000000000000000000000000

Reading RAM would be

11 FF 042B 01000000000000000000000000000000

Try writing in several different ways, to EEPROM only and also to RAM only,

11 FF 043C 02060000000000000000000000000000
11 FF 043C 000A0000000000000000000000000000

Try reading (both EEPROM and RAM) after each attempt to write.

It may be that the equalizer feature has some problems on your headset and perhaps it is not possible to write new values to it. If this is the case the best solution would be for you to ignore the equalizer setting. That should result in no writing for the feature and no triggering of any problems.

Victor-MichelDansac commented 2 years ago

Apologies for the delay in replying. For the battery, it seems that the maximum value reported by bin/solaar show, when the headset is fully charged, is around 4145mV while charging and 4115mV while discharging.

The equalizer works well on Windows under Logitech G Hub, so I guess it's at least not a hardware issue related to the headset itself.

I tried the provided commands.

Here are the results of the first one 11 FF 043C 02060000000000000000000000000000 (the sound cuts out between (361.165) and (364.183)).

?? Input: 11 FF 043C 02060000000000000000000000000000
<< ( 361.165) [11 FF 043C 02060000000000000000000000000000] b'\x11\xff\x04<\x02\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
>> ( 364.183) [11 FF 0600 00000000000000000000000000000000] b'\x11\xff\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
>> ( 365.591) [11 FF 0600 102F0300000000000000000000000000] b'\x11\xff\x06\x00\x10/\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
>> ( 365.600) [01 20 0000 00] b'\x01 \x00\x00\x00'
>> ( 365.667) [01 00 0000 00] b'\x01\x00\x00\x00\x00'
>> ( 366.318) [01 00 0000 00] b'\x01\x00\x00\x00\x00'
>> ( 366.368) [01 00 0000 00] b'\x01\x00\x00\x00\x00'
>> ( 368.126) [11 FF 0600 102E0300000000000000000000000000] b'\x11\xff\x06\x00\x10.\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
>> ( 374.829) [11 FF 0600 10760700000000000000000000000000] b'\x11\xff\x06\x00\x10v\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'

?? Input: 11 FF 042B 00000000000000000000000000000000
<< ( 515.944) [11 FF 042B 00000000000000000000000000000000] b'\x11\xff\x04+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
>> ( 516.000) [11 FF 042B 06000000000000000000000000000000] b'\x11\xff\x04+\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'

?? Input: 11 FF 042B 01000000000000000000000000000000
<< ( 530.974) [11 FF 042B 01000000000000000000000000000000] b'\x11\xff\x04+\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
>> ( 531.019) [11 FF FF04 2B020000000000000000000000000000] b'\x11\xff\xff\x04+\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'

Here are the results of the second one 11 FF 043C 000A0000000000000000000000000000 (no sound cut, this time).

?? Input: 11 FF 043C 000A0000000000000000000000000000
<< ( 548.020) [11 FF 043C 000A0000000000000000000000000000] b'\x11\xff\x04<\x00\n\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
>> ( 548.065) [11 FF FF04 3C020000000000000000000000000000] b'\x11\xff\xff\x04<\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'

?? Input: 11 FF 042B 00000000000000000000000000000000
<< ( 591.594) [11 FF 042B 00000000000000000000000000000000] b'\x11\xff\x04+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
>> ( 591.651) [11 FF 042B 06000000000000000000000000000000] b'\x11\xff\x04+\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'

?? Input: 11 FF 042B 01000000000000000000000000000000
<< ( 602.484) [11 FF 042B 01000000000000000000000000000000] b'\x11\xff\x04+\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
>> ( 602.526) [11 FF FF04 2B020000000000000000000000000000] b'\x11\xff\xff\x04+\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
pfps commented 2 years ago

Does the headset sound cut out when changing equalizer settings on Windows with the Logitech G Hub software?

It looks as if the commands for changing equalizer settings are doing something. Can you try with some other values? Wait until there is a response before trying the next command.

11 FF 043C 02060606000000000000000000000000
11 FF 042B 00000000000000000000000000000000

11 FF 043C 02000000000606060000000000000000
11 FF 042B 00000000000000000000000000000000

11 FF 043C 02000000000000000A0A0A0000000000
11 FF 042B 00000000000000000000000000000000

Also determine whether the sound changes. The first level setting command should boost the bass frequencies. The second (the third command overall) should boost mid-range and the third (fifth overall) treble.

I'm going to use a set of values for a possibly different battery to make an approximation of the battery levels. This should result in a 90% level at full charge for your battery which could easily be the result of battery aging. This is in a new version of the PR so please reload before testing. Let me know if the reported battery levels make approximate sense, i.e., the headset doesn't die when the battery level is 70%.

Victor-MichelDansac commented 2 years ago

I downloaded the PR, the battery indicator with percentage is indeed there. I'll let you know about the values. Over the weekend, I may be able to determine the correct percentages by comparing the values in solaar to the values in Windows.

As for the equalizer, moving the sliders around is smooth on Windows, without sound cutting out.

I typed the commands, unfortunately, there is no change to the sound. Every time I type one of the "write" commands, the sounds cuts out about 5 seconds later, then comes back on.

?? Input: 11 FF 043C 02060606000000000000000000000000
<< (  11.058) [11 FF 043C 02060606000000000000000000000000] b'\x11\xff\x04<\x02\x06\x06\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
>> (  15.434) [11 FF 0600 00000000000000000000000000000000] b'\x11\xff\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
>> (  16.676) [11 FF 0600 0F8B0100000000000000000000000000] b'\x11\xff\x06\x00\x0f\x8b\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
>> (  16.771) [01 00 0000 00] b'\x01\x00\x00\x00\x00'
>> (  17.418) [01 00 0000 00] b'\x01\x00\x00\x00\x00'
>> (  17.472) [01 00 0000 00] b'\x01\x00\x00\x00\x00'
?? Input: 11 FF 042B 00000000000000000000000000000000
<< (  27.608) [11 FF 042B 00000000000000000000000000000000] b'\x11\xff\x04+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
>> (  27.669) [11 FF 042B 06060600000000000000000000000000] b'\x11\xff\x04+\x06\x06\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
?? Input: 11 FF 043C 02000000000606060000000000000000
<< (  38.147) [11 FF 043C 02000000000606060000000000000000] b'\x11\xff\x04<\x02\x00\x00\x00\x00\x06\x06\x06\x00\x00\x00\x00\x00\x00\x00\x00'
>> (  42.697) [11 FF 0600 00000000000000000000000000000000] b'\x11\xff\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
>> (  44.795) [11 FF 0600 0F890100000000000000000000000000] b'\x11\xff\x06\x00\x0f\x89\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
>> (  44.885) [01 00 0000 00] b'\x01\x00\x00\x00\x00'
>> (  45.537) [01 00 0000 00] b'\x01\x00\x00\x00\x00'
>> (  45.585) [01 00 0000 00] b'\x01\x00\x00\x00\x00'
?? Input: 11 FF 042B 00000000000000000000000000000000
<< (  56.750) [11 FF 042B 00000000000000000000000000000000] b'\x11\xff\x04+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
>> (  56.809) [11 FF 042B 00000000060600000000000000000000] b'\x11\xff\x04+\x00\x00\x00\x00\x06\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
?? Input: 11 FF 043C 02000000000000000A0A0A0000000000
<< (  66.472) [11 FF 043C 02000000000000000A0A0A0000000000] b'\x11\xff\x04<\x02\x00\x00\x00\x00\x00\x00\x00\n\n\n\x00\x00\x00\x00\x00'
>> (  69.966) [11 FF 0600 00000000000000000000000000000000] b'\x11\xff\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
>> (  71.299) [11 FF 0600 0F8A0100000000000000000000000000] b'\x11\xff\x06\x00\x0f\x8a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
>> (  71.402) [01 00 0000 00] b'\x01\x00\x00\x00\x00'
>> (  72.053) [01 00 0000 00] b'\x01\x00\x00\x00\x00'
?? Input: 11 FF 042B 00000000000000000000000000000000
<< (  81.566) [11 FF 042B 00000000000000000000000000000000] b'\x11\xff\x04+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
>> (  81.622) [11 FF 042B 00000000000000000000000000000000] b'\x11\xff\x04+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
pfps commented 2 years ago

@VictorMD-Maths Strange. I don't know what it going wrong with your headset. I recommend changing the Equalizer setting to ignore (using the little icon on the far right of the setting) so that Solaar no longer writes to its equalizer feature.

@tarneaux @J-onasJones Can you try using ./tools/hidconsole as described a few comments above with the six commands in the comment two above and see what happens with your headsets?

If anyone knows how to capture interactions with the headset in Windows it would be useful to see what commands are being used by the Logitech software to change the equalizer and volume. It looks as if wireshark works under Windows so that is what I would use.

Victor-MichelDansac commented 2 years ago

Thanks @pfps, I'll have a try with wireshark under Windows and report back if I manage to understand something.

pfps commented 2 years ago

I'm not completely sure how wireshark works on Windows but on Linux wireshark monitors each USB bus separately. So you probably have to find out the USB address of the receiver. Then monitor the bus and look for communications with the device, which should be identified by the bus number, device number, and interface number (3). USB is a chatty interface so there will be lots of messages that are about the USB protocol and not actual commands or responses. What you are probably looking for are USBHID SET_REPORT Request messages from the host to the device, which are commands to the headset, and USB_INTERRUPT in messages from the device to the host, which are either responses to the commands or other messages from the headset.

The actual content of these messages are the data fragment for commands to the headset and HID data for messages from the headset. HID++ commands and messages start with 11 (also 10 or 20 but I think the headset only uses 11). There are other possibilities for the start of the commands and messages (01, FF, and a few others for the headset).

The interesting information is the commands and responses when the Logitech software is used to change volume, equalizer settings, or other capabilities of the headset. Try to collect that is known about the state of the headset before the software is used to change something, what command is sent, what responses are received, and any change to the device's behaviour.

It will likely be useful to stop capture (Capture -> Stop) so that the command and responses are easier to find and analyze. You can the start the capture again for the next command.

pfps commented 2 years ago

If tcpdump (sort of part of wireshark) is available under Windows you may have a better experience using it to show the interactions. You can run it with the -x flag to get a hex dump of the payload of USB messages. You probably also want the -i flag with an argument usbmonX where X is the usb bus that your headset is on.

Mat9999 commented 2 years ago

I did install wireshark on windows. It comes with USBPcap for USB packet capture.

I did a capture on the USB port uses by Pro X Wireless with this sequence:

  1. Start USBPcap
  2. Plug USB device
  3. let the device initialize
  4. play a bit with Logitech G Hub interface (I changed some slider on the advanced equalizer)

I tried to search some informations on the captured packets, but I think its not easy, at least for me logi pro x wireless.zip

pfps commented 2 years ago

As far as I can tell there was no use of the Equalizer HID++ feature. The output is big so I can't figuure out what is being used for the equalizer by removing known interactions. Could you arrange to only capture the interactions when you are changing the equalizer sliders?

Mat9999 commented 2 years ago

Here a capture:

  1. started USB capture
  2. immediatly changed 32Hz advanced equalizer slider from 0 to +12db

logi pro x wireless- slider advanced equalizer 32Hz-from 0 to +12db.zip

Mat9999 commented 2 years ago

Heres another one:

  1. started USB capture
  2. immediatly changed 64Hz advanced equalizer slider from 0 to +12db

logi pro x wireless- slider advanced equalizer 64Hz-from 0 to +12db.zip

Mat9999 commented 2 years ago

The same with 125Hz slider from 0 to +12db logi pro x wireless- slider advanced equalizer 125Hz-from 0 to +12db.zip

Mat9999 commented 2 years ago

And a capture when launching Logitceh G HUB (battery status (was 94%) and other informations should be somewhere here), logi pro x wireless- Launching Logitech G Hub.zip

pfps commented 2 years ago

Thanks. The captures appear to indicate that the Logitech software isn't using the equalizer for some reason. I can (now) see where the software queries the equalizer (once) but doesn't even bother to get the band information and doesn't set any gains. I can't even see any command to set the equalizer gains, even using some other interface. I see a lot of synchronous traffic both from and two the headset but nothing that looks like it could be a command to change equalizer settings.

I suggest that if changing equalizer settings in Solaar results in errors or in no perceived change that the setting be set to ignore (just in case there might be some problems when Solaar tries to set it).

If someone has a headset where changing the equalizer settings in Solaar has an effect it would be useful to see how this headset works in Windows.

1cadumagalhaes commented 2 years ago

Hey @pfps , I have a logitech G935 headset and I've seen that it isn't supported yet. I added it to the ../lib/logitech_receiver/descriptors.py and it works, but it seems to report the battery level wrong. When compared to the logitech software, solaar shows 2% when logitech says its 30%. I'm not sure how to fix this, can you help me?

I've got the solaar show values for a few percentages here. The values on the start are those reported by the logitech software.

`bin/solaar show` ``` 2% 1: Logitech G935 Gaming Headset Device path : /dev/hidraw8 USB id : 046d:0A87 Codename : G935 Headset Kind : headset Protocol : HID++ 4.2 Serial number: Model ID: 000000000A87 Unit ID: FFFFFFFF Firmware: U1 29.00.B0012 Supports 8 HID++ 2.0 features: 0: ROOT {0000} 1: FEATURE SET {0001} 2: DEVICE FW VERSION {0003} Firmware: Firmware U1 29.00.B0012 0A87 Unit ID: FFFFFFFF Model ID: 000000000A87 Transport IDs: {'btid': '0000', 'btleid': '0000'} 3: DEVICE NAME {0005} Name: G935 Gaming Headset Kind: None 4: COLOR LED EFFECTS {8070} 5: GKEY {8010} Divert G Keys (saved): False Divert G Keys : False 6: EQUALIZER {8310} Equalizer (saved): {0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0} Equalizer : {0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0} 7: SIDETONE {8300} Sidetone (saved): 60 Sidetone : 60 Battery: 0% 3412mV , discharging. 5% Battery: 0% 3523mV , discharging. 50% Battery: 80% 4022mV , recharging. 100% Battery: 80% 4067mV , recharging. 100% Battery: 90% 4090mV , recharging. Battery: 100% 4314mV , recharging. Battery: 100% 4278mV , recharging. ```

It peaked at 4350mV when connected, but it got down to ~4100mv once I disconnected the cable.

pfps commented 2 years ago

The translation from voltage to percentage in Solaar is copied from another battery at the moment. What is needed is a table like

battery_voltage_remaining = (
    (4186, 100),
    (4067, 90),
    (3989, 80),
    (3922, 70),
    (3859, 60),
    (3811, 50),
    (3778, 40),
    (3751, 30),
    (3717, 20),
    (3671, 10),
    (3646, 5),
    (3579, 2),
    (3500, 0),
    (-1000, 0),
)

for this battery.

The numbers don't have to be exact.

From what you report, the number for 2 (percent) should be around 3400, for 5 around 3500, and for 100 probably around 4100. The 50% value you report, though, looks too close to the 100% value, but maybe the Logitech software is only reporting a few different percentages.