Repository: pwr-Solaar/Solaar

Issue:
DPI Sliding disappears on ERGO M575 after switching from Unifying to Bluetooth, back, and restarting Solaar
**Information**
<!-- Make sure that your issue is not one of the known issues in the Solaar documentation at https://pwr-solaar.github.io/Solaar/ -->
<!-- Do not bother opening an issue for a version older than 1.1.0.  Update to the latest version and see if your issue persists. -->
- Solaar version (`solaar --version` or `git describe --tags` if cloned from this repository): 1.1.1-80-gf938d34
- Distribution: Ubuntu 21.10
- Kernel version (ex. `uname -srmo`): `Linux 5.13.0-28-generic x86_64 GNU/Linux`
- Output of `solaar show`:

<details>

```

Solaar version 1.1.1

Unifying Receiver
  Device path  : /dev/hidraw1
  USB id       : 046d:C52B
  Serial       : ********
    Firmware   : 24.11.B0036
    Bootloader : 02.09
    Other      : AA.AC
  Has 1 paired device(s) out of a maximum of 6.
  Notifications: wireless, software present (0x000900)
  Device activity counters: 1=96

  1: ERGO M575 Trackball
     Device path  : /dev/hidraw2
     WPID         : 4096
     Codename     : ERGO M575
     Kind         : mouse
     Protocol     : HID++ 4.5
     Polling rate : 8 ms (125Hz)
     Serial number: ********
     Model ID:      B02740960000
     Unit ID:       ********
        Bootloader: BOT 40.00.B0009
          Firmware: MPM 26.00.B0009
             Other: 
     The power switch is located on the base.
     Supports 26 HID++ 2.0 features:
         0: ROOT                   {0000}   
         1: FEATURE SET            {0001}   
         2: DEVICE FW VERSION      {0003}   
            Firmware: Bootloader BOT 40.00.B0009 0000ABF1CB8B01
            Firmware: Firmware MPM 26.00.B0009 4096ABF1CB8B01
            Firmware: Other   
            Unit ID: ********  Model ID: B02740960000  Transport IDs: {'btleid': 'B027', 'wpid': '4096'}
         3: DEVICE NAME            {0005}   
            Name: ERGO M575 Trackball
            Kind: trackball
         4: WIRELESS DEVICE STATUS {1D4B}   
         5: RESET                  {0020}   
         6: DEVICE FRIENDLY NAME   {0007}   
            Friendly Name: ERGO M575
         7: UNIFIED BATTERY        {1004}   
         8: REPROG CONTROLS V4     {1B04}   
            Key/Button Actions (saved): {Left Button:Left Click, Right Button:Right Click, Middle Button:Mouse Middle Button, Back Button:Mouse Back Button, Forward Button:Mouse Forward Button}
            Key/Button Actions        : {Left Button:Left Click, Right Button:Right Click, Middle Button:Mouse Middle Button, Back Button:Mouse Back Button, Forward Button:Mouse Forward Button}
         9: ADJUSTABLE DPI         {2201}   
            Sensitivity (DPI) (saved): 650
            Sensitivity (DPI)        : 650
        10: XY STATS               {2250}   
        11: DFUCONTROL SIGNED      {00C2}   
        12: DEVICE RESET           {1802}   internal, hidden
        13: unknown:1803           {1803}   internal, hidden
        14: CONFIG DEVICE PROPS    {1806}   internal, hidden
        15: unknown:1812           {1812}   internal, hidden
        16: OOBSTATE               {1805}   internal, hidden
        17: unknown:1830           {1830}   internal, hidden
        18: unknown:1890           {1890}   internal, hidden
        19: unknown:1891           {1891}   internal, hidden
        20: unknown:18A1           {18A1}   internal, hidden
        21: unknown:1E00           {1E00}   hidden
        22: unknown:1EB0           {1EB0}   internal, hidden
        23: unknown:1861           {1861}   internal, hidden
        24: unknown:1E22           {1E22}   internal, hidden
        25: unknown:1F03           {1F03}   internal, hidden
     Has 6 reprogrammable keys:
         0: Left Button               , default: Left Click                  => Left Click                
             mse, reprogrammable, analytics key events, pos:0, group:1, group mask:g1
             reporting: default
         1: Right Button              , default: Right Click                 => Right Click               
             mse, reprogrammable, analytics key events, pos:0, group:1, group mask:g1
             reporting: default
         2: Middle Button             , default: Mouse Middle Button         => Mouse Middle Button       
             mse, reprogrammable, divertable, persistently divertable, raw XY, analytics key events, pos:0, group:2, group mask:g1,g2
             reporting: default
         3: Forward Button            , default: Mouse Forward Button        => Mouse Forward Button      
             mse, reprogrammable, divertable, persistently divertable, raw XY, analytics key events, pos:0, group:2, group mask:g1,g2
             reporting: diverted, raw XY diverted
         4: Back Button               , default: Mouse Back Button           => Mouse Back Button         
             mse, reprogrammable, divertable, persistently divertable, raw XY, analytics key events, pos:0, group:2, group mask:g1,g2
             reporting: default
         5: Virtual Gesture Button    , default: Virtual Gesture Button      => Virtual Gesture Button    
             divertable, virtual, raw XY, force raw XY, pos:0, group:3, group mask:empty
             reporting: default
     Battery: 65%, discharging.

```

</details>

**Describe the bug**

DPI Sliding works normally on M575 back in commit 6d3d3e2086305f78994efd1003610e4b420fa9e8. In more recent versions, it seems to be influenced by the `absent` key in `/home/$USER/.config/solaar/config.json`.

**To Reproduce**
Steps to reproduce the behavior:
1. Set the `absent` key in config to an empty list.
2. `git checkout 6d3d3e2086305f78994efd1003610e4b420fa9e8`
3. `python3 setup.py build; ./bin/solaar`
With the following settings, pressing the forward button switches between two DPI options. ![image](https://user-images.githubusercontent.com/49844988/152851171-eeffe959-30d4-4c85-850a-5459118398aa.png)
Changing the DPI by slide gesture works too. Switching from bluetooth and back, DPI Sliding still works fine.
4. `git checkout f938d3430eba086b040d8aa9bb8df7ffde67e408` (or cb14c2eec9724f421f06185d51d867d4f35d03ce)
5. Switch to bluetooth and back, restart Solaar (not necessary if bluetooth was used in step 3)

![image](https://user-images.githubusercontent.com/49844988/152851504-297b9ea2-7616-4805-9349-90c5b555d5b9.png)
Now, the DPI Sliding option is not available. 

**Additional context**

Looking at the diff, I noticed, that this could be relevant

https://github.com/pwr-Solaar/Solaar/blob/f938d3430eba086b040d8aa9bb8df7ffde67e408/lib/logitech_receiver/settings_templates.py#L1031

`print(absent)` prints this: 
```
['hi-res-scroll', 'lowres-smooth-scroll', 'hires-smooth-invert', 'hires-smooth-resolution', 'smart-shift', 'thumb-scroll-mode', 'thumb-scroll-invert', 'report_rate', 'pointer_speed', 'dpi-sliding', 'speed-change', 'mouse-gestures', 'backlight', 'fn-swap', 'disable-keyboard-keys', 'divert-crown', 'crown-smooth', 'divert-gkeys', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-params', 'divert-keys']
``` 

I have managed to temporarily fix the problem by manually clearing the `absent` and `_dpi_sliding` key in `/home/$USER/.config/solaar/config.json`. Switching to bluetooth, back to unifying and restarting Solaar reverts the `absent` to the values pasted above, with 'dpi-sliding' included.



Discussion:
As you have discovered, Solaar remembers settings that cause problems and does not retry them.  So please quit out of Solaar, clear that value out of `config.json`, and run Solaar as `solaar -ddd` and post the output.
Output from `solaar -ddd`:

<details>

```
20:54:41,205    DEBUG [MainThread] logitech_receiver.diversion: rule Key assuming action "pressed" for "Brightness Down"
20:54:41,205    DEBUG [MainThread] logitech_receiver.diversion: rule Key assuming action "pressed" for "Brightness Up"
20:54:41,208    DEBUG [MainThread] logitech_receiver.diversion: load rule: Rule(/home/plates/.config/solaar/rules.yaml)[Key: Forward Button (pressed)]
20:54:41,208     INFO [MainThread] logitech_receiver.diversion: loaded 1 rules from /home/plates/.config/solaar/rules.yaml
20:54:41,213    DEBUG [MainThread] solaar.ui.tray: using Ayatana AppIndicator3
20:54:41,225     INFO [MainThread] solaar.upower: connected to system dbus, watching for suspend/resume events

(solaar:327666): Gtk-WARNING **: 20:54:41.242: Theme parsing error: gtk.css:68:35: The style property GtkButton:child-displacement-x is deprecated and shouldn't be used anymore. It will be removed in a future version

(solaar:327666): Gtk-WARNING **: 20:54:41.242: Theme parsing error: gtk.css:69:35: The style property GtkButton:child-displacement-y is deprecated and shouldn't be used anymore. It will be removed in a future version

(solaar:327666): Gtk-WARNING **: 20:54:41.242: Theme parsing error: gtk.css:73:46: The style property GtkScrolledWindow:scrollbars-within-bevel is deprecated and shouldn't be used anymore. It will be removed in a future version
20:54:41,267    DEBUG [MainThread] solaar.ui: startup registered=True, remote=False
20:54:41,268    DEBUG [AsyncUI] solaar.tasks: started
20:54:41,269     INFO [MainThread] solaar.ui.notify: starting desktop notifications
20:54:41,274    DEBUG [MainThread] solaar.ui.icons: sys.path[0] = /home/plates/apps/src/Solaar/lib
20:54:41,274    DEBUG [MainThread] solaar.ui.icons: looking for icons in /home/plates/apps/src/Solaar/icons
20:54:41,274    DEBUG [MainThread] solaar.ui.icons: looking for icons in /home/plates/apps/src/Solaar/share/solaar/icons
20:54:41,274    DEBUG [MainThread] solaar.ui.icons: icon theme paths: ['/home/plates/apps/src/Solaar/share/solaar/icons', '/home/plates/.local/share/icons', '/home/plates/.icons', '/usr/share/plasma/icons', '/home/plates/.local/share/flatpak/exports/share/icons', '/var/lib/flatpak/exports/share/icons', '/usr/local/share/icons', '/usr/share/icons', '/var/lib/snapd/desktop/icons', '/usr/share/plasma/pixmaps', '/home/plates/.local/share/flatpak/exports/share/pixmaps', '/var/lib/flatpak/exports/share/pixmaps', '/usr/local/share/pixmaps', '/usr/share/pixmaps', '/var/lib/snapd/desktop/pixmaps']
20:54:41,482     INFO [MainThread] solaar.listener: starting receiver listening threads
20:54:41,484    DEBUG [MainThread] hidapi.udev: Found device BID 0003 VID 0000046D PID 0000C52B INTERFACE 2 FILTER 2
20:54:41,484     INFO [MainThread] solaar.listener: receiver event add DeviceInfo(path='/dev/hidraw1', vendor_id='046D', product_id='C52B', serial='', release=None, manufacturer=None, product=None, interface=2, driver='logitech-djreceiver', bus_id=3, isDevice=None)
20:54:41,484     INFO [MainThread] logitech_receiver.base: New lock 19
20:54:41,484    DEBUG [MainThread] logitech_receiver.base: (19) <= w[10 FF 83B5 030000]
20:54:41,487    DEBUG [MainThread] logitech_receiver.base: (19) => r[11 FF 83B5 03D30A90A10106070000000000000000]
20:54:41,487    DEBUG [MainThread] logitech_receiver.base: (19) <= w[10 FF 80B2 000000]
20:54:41,489    DEBUG [MainThread] logitech_receiver.base: (19) => r[20 01 4101 9640040000000400000000]
20:54:41,491    DEBUG [MainThread] logitech_receiver.base: (19) => r[20 00 4102 0000000000000000000000]
20:54:41,493    DEBUG [MainThread] logitech_receiver.base: (19) => r[10 FF 8F80 B20300]
20:54:41,493    DEBUG [MainThread] logitech_receiver.base: (19) device 0xFF error on request {80B2}: 3 = invalid value
20:54:41,493     INFO [ReceiverListener:hidraw1] logitech_receiver.listener: started with <UnifyingReceiver(/dev/hidraw1,19)> (19)
20:54:41,493     INFO [ReceiverListener:hidraw1] solaar.listener: <UnifyingReceiver(/dev/hidraw1,19)>: notifications listener has started (19)
20:54:41,494     INFO [ReceiverListener:hidraw1] logitech_receiver.base: New lock <_ThreadedHandle(/dev/hidraw1)>
20:54:41,494    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) <= w[10 FF 8000 100900]
20:54:41,496    DEBUG [MainThread] solaar.ui: activate
20:54:41,497    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[10 FF 8000 000000]
20:54:41,497    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) <= w[10 FF 8100 000000]
20:54:41,499    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[10 FF 8100 000900]
20:54:41,499     INFO [ReceiverListener:hidraw1] logitech_receiver.receiver: <UnifyingReceiver(/dev/hidraw1,19)>: receiver notifications enabled => ('wireless', 'software present')
20:54:41,499    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) <= w[10 FF 8002 020000]
20:54:41,501    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[10 01 4104 129640]
20:54:41,503    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[10 FF 8002 000000]
20:54:41,503     INFO [ReceiverListener:hidraw1] solaar.listener: status_changed <UnifyingReceiver(/dev/hidraw1,19)>: present, No paired devices. (0) 
20:54:41,506    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) <= w[10 FF 83B5 400000]
20:54:41,509    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[11 FF 83B5 40094552474F204D3537350000000000]
20:54:41,509     INFO [ReceiverListener:hidraw1] logitech_receiver.receiver: <UnifyingReceiver(/dev/hidraw1,19)>: found new device 1 (4096)
20:54:41,510    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) pinging device 1
20:54:41,510     INFO [ReceiverListener:hidraw1] logitech_receiver.base: New lock 20
20:54:41,510    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) <= w[10 01 001F 000042]
20:54:41,523    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) => r[11 01 0710 41080000000000000000000000000000]
20:54:41,531    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) => r[11 01 001F 04054200000000000000000000000000]
20:54:41,531    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) <= w[11 01 000B 00010000000000000000000000000000]
20:54:41,555    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) => r[11 01 000B 01000100000000000000000000000000]
20:54:41,556    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) <= w[11 01 010E 00000000000000000000000000000000]
20:54:41,579    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) => r[11 01 010E 19000000000000000000000000000000]
20:54:41,579    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) <= w[11 01 000D 00050000000000000000000000000000]
20:54:41,603    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) => r[11 01 000D 03000000000000000000000000000000]
20:54:41,603    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) <= w[11 01 030F 00000000000000000000000000000000]
20:54:41,627    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) => r[11 01 030F 13000000000000000000000000000000]
20:54:41,627    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) <= w[11 01 031E 00000000000000000000000000000000]
20:54:41,653    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) => r[11 01 031E 4552474F204D35373520547261636B62]
20:54:41,653    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) <= w[11 01 031B 10000000000000000000000000000000]
20:54:41,677    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) => r[11 01 031B 616C6C00000000000000000000000000]
20:54:41,677    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) <= w[10 FF 83B5 300000]
20:54:41,681    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[11 FF 83B5 30D9AEB5A50400000001000000000000]
20:54:41,510     INFO [ReceiverListener:hidraw1] solaar.listener: connection Notification(10,1,41,04,129640) for <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)> (mouse)
20:54:41,513    DEBUG [MainThread] solaar.ui: status changed: <UnifyingReceiver(/dev/hidraw1,19)> (NONE) None
20:54:41,681     INFO [ReceiverListener:hidraw1] solaar.listener: status_changed <UnifyingReceiver(/dev/hidraw1,19)>: present, 1 paired device. (0) 
20:54:41,682    DEBUG [ReceiverListener:hidraw1] logitech_receiver.notifications: <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>: protocol 4 connection notification: software=True, encrypted=False, link=True, payload=False
20:54:41,683    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) <= w[11 01 000C 10000000000000000000000000000000]
20:54:41,683    DEBUG [MainThread] solaar.ui.window: new receiver row ('/dev/hidraw1', 0, True, 'Unifying Receiver', 'preferences-desktop-peripherals', None, None, <UnifyingReceiver(/dev/hidraw1,19)>)
20:54:41,709    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) => r[11 01 000C 00000000000000000000000000000000]
20:54:41,710    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) <= w[11 01 000B 10040000000000000000000000000000]
20:54:41,733    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) => r[11 01 000B 07000000000000000000000000000000]
20:54:41,733    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) <= w[11 01 0718 00000000000000000000000000000000]
20:54:41,743    DEBUG [MainThread] solaar.ui: status changed: <UnifyingReceiver(/dev/hidraw1,19)> (NONE) None
20:54:41,757    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) => r[11 01 0718 41080000000000000000000000000000]
20:54:41,757    DEBUG [ReceiverListener:hidraw1] logitech_receiver.hidpp20: battery 65% charged, level 8, charging discharging
20:54:41,757    DEBUG [ReceiverListener:hidraw1] logitech_receiver.status: <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>: battery 65, discharging
20:54:41,757     INFO [ReceiverListener:hidraw1] solaar.listener: status_changed <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>: paired online, {'LINK ENCRYPTED': False, 'BATTERY LEVEL': 65, 'BATTERY STATUS': NamedInt(0, 'discharging'), 'BATTERY NEXT LEVEL': None, 'BATTERY VOLTAGE': None, 'BATTERY CHARGING': False, 'ERROR': None} (0) 
20:54:41,758    DEBUG [MainThread] solaar.ui: status changed: <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)> (NONE) None
20:54:41,759    DEBUG [ReceiverListener:hidraw1] solaar.configuration: load => {'4096:D9AEB5A5': {'_absent': [], '_dpi-sliding': 13, '_modelId': 'B02740960000', '_name': 'ERGO M575 Trackball', '_sensitive': {'divert-keys': False, 'dpi': False, 'dpi-sliding': True, 'mouse-gestures': False, 'reprogrammable-keys': False}, '_serial': 'D9AEB5A5', '_unitId': 'D9AEB5A5', 'divert-keys': {'82': 0, '83': 0, '86': 1}, 'dpi': 250, 'dpi-sliding': '86', 'mouse-gestures': 0, 'reprogrammable-keys': {'80': 80, '81': 81, '82': 82, '83': 83, '86': 86}}, '_version': '1.1.1'}
20:54:41,759    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) <= w[11 01 0008 00030000000000000000000000000000]
20:54:41,760    DEBUG [MainThread] solaar.ui.icons: battery icon for 65:False = battery-good
20:54:41,760    DEBUG [MainThread] solaar.ui.tray: picked device with lowest battery: ('/dev/hidraw1', 1, 'ERGO M575 Trackball', {'LINK ENCRYPTED': False, 'BATTERY LEVEL': 65, 'BATTERY STATUS': NamedInt(0, 'discharging'), 'BATTERY NEXT LEVEL': None, 'BATTERY VOLTAGE': None, 'BATTERY CHARGING': False, 'ERROR': None})
20:54:41,760    DEBUG [MainThread] solaar.ui.icons: battery icon for 65:False = battery-good
20:54:41,762    DEBUG [MainThread] solaar.ui.window: new device row ('/dev/hidraw1', 1, True, 'ERGO M575', 'input-mouse', None, None, <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>) at index 0
20:54:41,763    DEBUG [MainThread] solaar.ui.icons: battery icon for 65:False = battery-good
20:54:41,781    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) => r[11 01 0008 02000400000000000000000000000000]
20:54:41,781    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) <= w[11 01 020B 00000000000000000000000000000000]
20:54:41,805    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) => r[11 01 020B 03D9AEB5A50006B02740960000000100]
20:54:41,806    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) <= w[11 01 000A 21200000000000000000000000000000]
20:54:41,829    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) => r[11 01 000A 00000000000000000000000000000000]
20:54:41,829    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) <= w[11 01 000D 21300000000000000000000000000000]
20:54:41,853    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) => r[11 01 000D 00000000000000000000000000000000]
20:54:41,853    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) <= w[11 01 000E 21210000000000000000000000000000]
20:54:41,877    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) => r[11 01 000E 00000000000000000000000000000000]
20:54:41,878    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) <= w[11 01 0008 21100000000000000000000000000000]
20:54:41,901    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) => r[11 01 0008 00000000000000000000000000000000]
20:54:41,901    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) <= w[11 01 0008 21110000000000000000000000000000]
20:54:41,927    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) => r[11 01 0008 00000000000000000000000000000000]
20:54:41,927    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) <= w[11 01 000D 21500000000000000000000000000000]
20:54:41,951    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) => r[11 01 000D 00000000000000000000000000000000]
20:54:41,951    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) <= w[11 01 000E 80600000000000000000000000000000]
20:54:41,975    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) => r[11 01 000E 00000000000000000000000000000000]
20:54:41,975    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) <= w[11 01 0008 22050000000000000000000000000000]
20:54:41,999    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) => r[11 01 0008 00000000000000000000000000000000]
20:54:41,999    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) <= w[11 01 000A 22010000000000000000000000000000]
20:54:42,023    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) => r[11 01 000A 09000100000000000000000000000000]
20:54:42,023    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) <= w[11 01 091F 00000000000000000000000000000000]
20:54:42,047    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) => r[11 01 091F 000064E03207D0000000000000000000]
20:54:42,047     INFO [ReceiverListener:hidraw1] logitech_receiver.settings_templates: check_feature dpi [ADJUSTABLE DPI] detected <Setting([feature:choice] ERGO M575:dpi=None)>
20:54:42,047    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) <= w[11 01 0008 1B040000000000000000000000000000]
20:54:42,071    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) => r[11 01 0008 08000500000000000000000000000000]
20:54:42,071    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) <= w[11 01 000A 1B010000000000000000000000000000]
20:54:42,095    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) => r[11 01 000A 00000000000000000000000000000000]
20:54:42,095    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) <= w[11 01 0809 00000000000000000000000000000000]
20:54:42,119    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) => r[11 01 0809 06000000000000000000000000000000]
20:54:42,120    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) <= w[11 01 081F 00000000000000000000000000000000]
20:54:42,143    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) => r[11 01 081F 00500038110001010400000000000000]
20:54:42,144    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) <= w[11 01 081D 01000000000000000000000000000000]
20:54:42,167    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) => r[11 01 081D 00510039110001010400000000000000]
20:54:42,167    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) <= w[11 01 081A 02000000000000000000000000000000]
20:54:42,193    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) => r[11 01 081A 0052003A710002030500000000000000]
20:54:42,193    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) <= w[11 01 081C 03000000000000000000000000000000]
20:54:42,217    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) => r[11 01 081C 0056003E710002030500000000000000]
20:54:42,217    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) <= w[11 01 081B 04000000000000000000000000000000]
20:54:42,241    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) => r[11 01 081B 0053003C710002030500000000000000]
20:54:42,241    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) <= w[11 01 081B 05000000000000000000000000000000]
20:54:42,265    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) => r[11 01 081B 00D700B4A00003000300000000000000]
20:54:42,266     INFO [ReceiverListener:hidraw1] logitech_receiver.settings_templates: check_feature dpi-sliding [REPROG CONTROLS V4] detected <Setting([feature:choice] ERGO M575:dpi-sliding=None)>
20:54:42,266     INFO [ReceiverListener:hidraw1] logitech_receiver.settings_templates: check_feature mouse-gestures [REPROG CONTROLS V4] detected <Setting([feature:choice] ERGO M575:mouse-gestures=None)>
20:54:42,266    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) <= w[11 01 0009 19820000000000000000000000000000]
20:54:42,289    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) => r[11 01 0009 00000000000000000000000000000000]
20:54:42,290    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) <= w[11 01 000A 40A00000000000000000000000000000]
20:54:42,313    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) => r[11 01 000A 00000000000000000000000000000000]
20:54:42,313    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) <= w[11 01 000F 40A20000000000000000000000000000]
20:54:42,337    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) => r[11 01 000F 00000000000000000000000000000000]
20:54:42,337    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) <= w[11 01 000F 40A30000000000000000000000000000]
20:54:42,361    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) => r[11 01 000F 00000000000000000000000000000000]
20:54:42,362     INFO [ReceiverListener:hidraw1] logitech_receiver.settings_templates: check_feature reprogrammable-keys [REPROG CONTROLS V4] detected <Setting([feature:map choice] ERGO M575:reprogrammable-keys=None)>
20:54:42,363     INFO [ReceiverListener:hidraw1] logitech_receiver.settings_templates: check_feature divert-keys [REPROG CONTROLS V4] detected <Setting([feature:map choice] ERGO M575:divert-keys=None)>
20:54:42,363    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) <= w[11 01 0009 45210000000000000000000000000000]
20:54:42,385    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) => r[11 01 0009 00000000000000000000000000000000]
20:54:42,385    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) <= w[11 01 000B 46000000000000000000000000000000]
20:54:42,409    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) => r[11 01 000B 00000000000000000000000000000000]
20:54:42,409    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) <= w[11 01 000B 80100000000000000000000000000000]
20:54:42,433    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) => r[11 01 000B 00000000000000000000000000000000]
20:54:42,433    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) <= w[11 01 000C 45310000000000000000000000000000]
20:54:42,457    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) => r[11 01 000C 00000000000000000000000000000000]
20:54:42,457    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) <= w[11 01 000B 45300000000000000000000000000000]
20:54:42,483    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) => r[11 01 000B 00000000000000000000000000000000]
20:54:42,483    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) <= w[11 01 000B 18140000000000000000000000000000]
20:54:42,507    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) => r[11 01 000B 00000000000000000000000000000000]
20:54:42,507    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) <= w[11 01 000C 65010000000000000000000000000000]
20:54:42,531    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) => r[11 01 000C 00000000000000000000000000000000]
20:54:42,532     INFO [ReceiverListener:hidraw1] solaar.configuration: saved {'4096:D9AEB5A5': {'_absent': ['hi-res-scroll', 'lowres-smooth-scroll', 'hires-smooth-invert', 'hires-smooth-resolution', 'smart-shift', 'thumb-scroll-mode', 'thumb-scroll-invert', 'report_rate', 'pointer_speed', 'speed-change', 'backlight', 'fn-swap', 'disable-keyboard-keys', 'divert-crown', 'crown-smooth', 'divert-gkeys', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-params'], '_dpi-sliding': 13, '_modelId': 'B02740960000', '_name': 'ERGO M575 Trackball', '_sensitive': {'divert-keys': False, 'dpi': False, 'dpi-sliding': True, 'mouse-gestures': False, 'reprogrammable-keys': False}, '_serial': 'D9AEB5A5', '_unitId': 'D9AEB5A5', 'divert-keys': {'82': 0, '83': 0, '86': 1}, 'dpi': 250, 'dpi-sliding': '86', 'mouse-gestures': 0, 'reprogrammable-keys': {'80': 80, '81': 81, '82': 82, '83': 83, '86': 86}}, '_version': '1.1.1'} to /home/plates/.config/solaar/config.json
20:54:42,532     INFO [ReceiverListener:hidraw1] logitech_receiver.status: <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)> pushing device settings [<Setting([feature:choice] ERGO M575:dpi=None)>, <Setting([feature:choice] ERGO M575:dpi-sliding=None)>, <Setting([feature:choice] ERGO M575:mouse-gestures=None)>, <Setting([feature:map choice] ERGO M575:reprogrammable-keys=None)>, <Setting([feature:map choice] ERGO M575:divert-keys=None)>]
20:54:42,532    DEBUG [ReceiverListener:hidraw1] logitech_receiver.settings: dpi: apply None (<Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>)
20:54:42,532    DEBUG [ReceiverListener:hidraw1] logitech_receiver.settings: dpi: settings read None from <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>
20:54:42,532    DEBUG [ReceiverListener:hidraw1] logitech_receiver.settings: dpi: settings write 250 to <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>
20:54:42,532    DEBUG [ReceiverListener:hidraw1] logitech_receiver.settings: dpi: settings prepare write(250) => b'\x00\x00\xfa'
20:54:42,532    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) <= w[11 01 0939 0000FA00000000000000000000000000]
20:54:42,555    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) => r[11 01 0939 00000000000000000000000000000000]
20:54:42,555    DEBUG [ReceiverListener:hidraw1] logitech_receiver.settings: dpi-sliding: apply None (<Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>)
20:54:42,555    DEBUG [ReceiverListener:hidraw1] logitech_receiver.settings: dpi-sliding: settings read None from <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>
20:54:42,555    DEBUG [ReceiverListener:hidraw1] logitech_receiver.settings: dpi-sliding: settings write '86' to <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>
20:54:42,556    DEBUG [ReceiverListener:hidraw1] logitech_receiver.settings: dpi-sliding: settings prepare write(86) => b'\x00V'
20:54:42,556    DEBUG [ReceiverListener:hidraw1] logitech_receiver.settings: divert-keys: settings write key 86 value 1 to <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>
20:54:42,556    DEBUG [ReceiverListener:hidraw1] logitech_receiver.settings: divert-keys: settings read None from <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>
20:54:42,557     INFO [ReceiverListener:hidraw1] solaar.configuration: saved {'4096:D9AEB5A5': {'_absent': ['hi-res-scroll', 'lowres-smooth-scroll', 'hires-smooth-invert', 'hires-smooth-resolution', 'smart-shift', 'thumb-scroll-mode', 'thumb-scroll-invert', 'report_rate', 'pointer_speed', 'speed-change', 'backlight', 'fn-swap', 'disable-keyboard-keys', 'divert-crown', 'crown-smooth', 'divert-gkeys', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-params'], '_dpi-sliding': 13, '_modelId': 'B02740960000', '_name': 'ERGO M575 Trackball', '_sensitive': {'divert-keys': False, 'dpi': False, 'dpi-sliding': True, 'mouse-gestures': False, 'reprogrammable-keys': False}, '_serial': 'D9AEB5A5', '_unitId': 'D9AEB5A5', 'divert-keys': {'82': 0, '83': 0, '86': 1}, 'dpi': 250, 'dpi-sliding': '86', 'mouse-gestures': 0, 'reprogrammable-keys': {'80': 80, '81': 81, '82': 82, '83': 83, '86': 86}}, '_version': '1.1.1'} to /home/plates/.config/solaar/config.json
20:54:42,557    DEBUG [ReceiverListener:hidraw1] logitech_receiver.settings: divert-keys: settings prepare key value write(86,1) => b'\x01'
20:54:42,557    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) <= w[11 01 0839 00560300000000000000000000000000]
20:54:42,579    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) => r[11 01 0839 00560300000000000000000000000000]
20:54:42,580    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) <= w[11 01 083A 00563000000000000000000000000000]
20:54:42,603    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) => r[11 01 083A 00563000000000000000000000000000]
20:54:42,604    DEBUG [ReceiverListener:hidraw1] logitech_receiver.settings: mouse-gestures: apply None (<Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>)
20:54:42,604    DEBUG [MainThread] solaar.ui: status changed: <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)> (NONE) None
20:54:42,604    DEBUG [ReceiverListener:hidraw1] logitech_receiver.settings: mouse-gestures: settings read None from <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>
20:54:42,604    DEBUG [ReceiverListener:hidraw1] logitech_receiver.settings: mouse-gestures: settings write 0 to <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>
20:54:42,605    DEBUG [MainThread] solaar.ui.icons: battery icon for 65:False = battery-good
20:54:42,605    DEBUG [ReceiverListener:hidraw1] logitech_receiver.settings: mouse-gestures: settings prepare write(0) => b'\x00\x00'
20:54:42,605    DEBUG [ReceiverListener:hidraw1] logitech_receiver.settings: reprogrammable-keys: apply None (<Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>)
20:54:42,605    DEBUG [ReceiverListener:hidraw1] logitech_receiver.settings: reprogrammable-keys: settings read None from <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>
20:54:42,605    DEBUG [MainThread] solaar.ui.tray: picked device with lowest battery: ('/dev/hidraw1', 1, 'ERGO M575 Trackball', {'LINK ENCRYPTED': False, 'BATTERY LEVEL': 65, 'BATTERY STATUS': NamedInt(0, 'discharging'), 'BATTERY NEXT LEVEL': None, 'BATTERY VOLTAGE': None, 'BATTERY CHARGING': False, 'ERROR': None})
20:54:42,605    DEBUG [ReceiverListener:hidraw1] logitech_receiver.settings: reprogrammable-keys: settings write {'80': 80, '81': 81, '82': 82, '83': 83, '86': 86} to <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>
20:54:42,605    DEBUG [MainThread] solaar.ui.icons: battery icon for 65:False = battery-good
20:54:42,606    DEBUG [ReceiverListener:hidraw1] logitech_receiver.settings: reprogrammable-keys: settings prepare map write(80,80) => b'\x00P'
20:54:42,606    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) <= w[11 01 0838 00500000500000000000000000000000]
20:54:42,607    DEBUG [MainThread] solaar.ui.icons: battery icon for 65:False = battery-good
20:54:42,608    DEBUG [MainThread] solaar.ui.icons: battery icon for 65:False = battery-good
20:54:42,615    DEBUG [AsyncUI] logitech_receiver.settings: dpi: settings read 250 from <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>
20:54:42,617    DEBUG [AsyncUI] logitech_receiver.settings: dpi-sliding: settings read '86' from <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>
20:54:42,618    DEBUG [AsyncUI] logitech_receiver.settings: mouse-gestures: settings read 0 from <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>
20:54:42,621    DEBUG [AsyncUI] logitech_receiver.settings: reprogrammable-keys: settings read {'80': 80, '81': 81, '82': 82, '83': 83, '86': 86} from <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>
20:54:42,624    DEBUG [AsyncUI] logitech_receiver.settings: divert-keys: settings read {'82': 0, '83': 0, '86': 1} from <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>
20:54:42,627    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) => r[11 01 0838 00500000500000000000000000000000]
20:54:42,627    DEBUG [ReceiverListener:hidraw1] logitech_receiver.settings: reprogrammable-keys: settings prepare map write(81,81) => b'\x00Q'
20:54:42,627    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) <= w[11 01 083D 00510000510000000000000000000000]
20:54:42,651    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) => r[11 01 083D 00510000510000000000000000000000]
20:54:42,651    DEBUG [ReceiverListener:hidraw1] logitech_receiver.settings: reprogrammable-keys: settings prepare map write(82,82) => b'\x00R'
20:54:42,652    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) <= w[11 01 083B 00520000520000000000000000000000]
20:54:42,675    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) => r[11 01 083B 00520000520000000000000000000000]
20:54:42,675    DEBUG [ReceiverListener:hidraw1] logitech_receiver.settings: reprogrammable-keys: settings prepare map write(83,83) => b'\x00S'
20:54:42,676    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) <= w[11 01 0839 00530000530000000000000000000000]
20:54:42,699    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) => r[11 01 0839 00530000530000000000000000000000]
20:54:42,699    DEBUG [ReceiverListener:hidraw1] logitech_receiver.settings: reprogrammable-keys: settings prepare map write(86,86) => b'\x00V'
20:54:42,700    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) <= w[11 01 083C 00560000560000000000000000000000]
20:54:42,723    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) => r[11 01 083C 00560000560000000000000000000000]
20:54:42,723    DEBUG [ReceiverListener:hidraw1] logitech_receiver.settings: divert-keys: apply {'82': 0, '83': 0, '86': 1} (<Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>)
20:54:42,724    DEBUG [ReceiverListener:hidraw1] logitech_receiver.settings: divert-keys: settings read {'82': 0, '83': 0, '86': 1} from <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>
20:54:42,724    DEBUG [ReceiverListener:hidraw1] logitech_receiver.settings: divert-keys: settings write {'82': 0, '83': 0, '86': 1} to <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>
20:54:42,724    DEBUG [ReceiverListener:hidraw1] logitech_receiver.settings: divert-keys: settings prepare map write(82,0) => b'\x00'
20:54:42,724    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) <= w[11 01 0839 00520200000000000000000000000000]
20:54:42,749    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) => r[11 01 0839 00520200000000000000000000000000]
20:54:42,749    DEBUG [ReceiverListener:hidraw1] logitech_receiver.settings: divert-keys: settings prepare map write(83,0) => b'\x00'
20:54:42,749    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) <= w[11 01 083D 00530200000000000000000000000000]
20:54:42,773    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) => r[11 01 083D 00530200000000000000000000000000]
20:54:42,773    DEBUG [ReceiverListener:hidraw1] logitech_receiver.settings: divert-keys: settings prepare map write(86,1) => b'\x01'
20:54:42,773    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) <= w[11 01 0839 00560300000000000000000000000000]
20:54:42,797    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) => r[11 01 0839 00560300000000000000000000000000]
20:54:42,797     INFO [ReceiverListener:hidraw1] solaar.listener: status_changed <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>: paired online, {'LINK ENCRYPTED': False, 'BATTERY LEVEL': 65, 'BATTERY STATUS': NamedInt(0, 'discharging'), 'BATTERY NEXT LEVEL': None, 'BATTERY VOLTAGE': None, 'BATTERY CHARGING': False, 'ERROR': None} (0) 
20:54:42,798    DEBUG [ReceiverListener:hidraw1] logitech_receiver.notifications: <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>: notification for feature UNIFIED BATTERY, report 0, data 41080000000000000000000000000000
20:54:42,798  WARNING [ReceiverListener:hidraw1] logitech_receiver.notifications: <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>: unknown UNIFIED BATTERY Notification(11,1,07,10,41080000000000000000000000000000)
20:54:42,799    DEBUG [MainThread] solaar.ui: status changed: <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)> (NONE) None
20:54:42,799    DEBUG [MainThread] solaar.ui.icons: battery icon for 65:False = battery-good
20:54:42,799    DEBUG [MainThread] solaar.ui.tray: picked device with lowest battery: ('/dev/hidraw1', 1, 'ERGO M575 Trackball', {'LINK ENCRYPTED': False, 'BATTERY LEVEL': 65, 'BATTERY STATUS': NamedInt(0, 'discharging'), 'BATTERY NEXT LEVEL': None, 'BATTERY VOLTAGE': None, 'BATTERY CHARGING': False, 'ERROR': None})
20:54:42,799    DEBUG [MainThread] solaar.ui.icons: battery icon for 65:False = battery-good
20:54:42,802    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[11 01 000C 00000000000000000000000000000000]
20:54:42,802    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[11 01 000B 07000000000000000000000000000000]
20:54:42,802    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[11 01 0718 41080000000000000000000000000000]
20:54:42,803    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[11 01 0008 02000400000000000000000000000000]
20:54:42,803    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[11 01 020B 03D9AEB5A50006B02740960000000100]
20:54:42,803    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[11 01 000A 00000000000000000000000000000000]
20:54:42,803    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[11 01 000D 00000000000000000000000000000000]
20:54:42,803    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[11 01 000E 00000000000000000000000000000000]
20:54:42,803    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[11 01 0008 00000000000000000000000000000000]
20:54:42,803    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[11 01 0008 00000000000000000000000000000000]
20:54:42,804    DEBUG [MainThread] solaar.ui.icons: battery icon for 65:False = battery-good
20:54:42,804    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[11 01 000D 00000000000000000000000000000000]
20:54:42,804    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[11 01 000E 00000000000000000000000000000000]
20:54:42,804    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[11 01 0008 00000000000000000000000000000000]
20:54:42,804    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[11 01 000A 09000100000000000000000000000000]
20:54:42,804    DEBUG [MainThread] solaar.ui.icons: battery icon for 65:False = battery-good
20:54:42,804    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[11 01 091F 000064E03207D0000000000000000000]
20:54:42,805    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[11 01 0008 08000500000000000000000000000000]
20:54:42,805    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[11 01 000A 00000000000000000000000000000000]
20:54:42,805    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[11 01 0809 06000000000000000000000000000000]
20:54:42,805    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[11 01 081F 00500038110001010400000000000000]
20:54:42,805    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[11 01 081D 00510039110001010400000000000000]
20:54:42,806    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[11 01 081A 0052003A710002030500000000000000]
20:54:42,806    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[11 01 081C 0056003E710002030500000000000000]
20:54:42,806    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[11 01 081B 0053003C710002030500000000000000]
20:54:42,806    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[11 01 081B 00D700B4A00003000300000000000000]
20:54:42,806    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[11 01 0009 00000000000000000000000000000000]
20:54:42,806    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[11 01 000A 00000000000000000000000000000000]
20:54:42,807    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[11 01 000F 00000000000000000000000000000000]
20:54:42,807    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[11 01 000F 00000000000000000000000000000000]
20:54:42,807    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[11 01 0009 00000000000000000000000000000000]
20:54:42,807    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[11 01 000B 00000000000000000000000000000000]
20:54:42,807    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[11 01 000B 00000000000000000000000000000000]
20:54:42,808    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[11 01 000C 00000000000000000000000000000000]
20:54:42,808    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[11 01 000B 00000000000000000000000000000000]
20:54:42,808    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[11 01 000B 00000000000000000000000000000000]
20:54:42,808    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[11 01 000C 00000000000000000000000000000000]
20:54:42,808    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[11 01 0939 00000000000000000000000000000000]
20:54:42,809    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[11 01 0839 00560300000000000000000000000000]
20:54:42,809    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[11 01 083A 00563000000000000000000000000000]
20:54:42,809    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[11 01 0838 00500000500000000000000000000000]
20:54:42,809    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[11 01 083D 00510000510000000000000000000000]
20:54:42,809    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[11 01 083B 00520000520000000000000000000000]
20:54:42,810    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[11 01 0839 00530000530000000000000000000000]
20:54:42,810    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[11 01 083C 00560000560000000000000000000000]
20:54:42,810    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[11 01 0839 00520200000000000000000000000000]
20:54:42,810    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[11 01 083D 00530200000000000000000000000000]
20:54:42,810    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[11 01 0839 00560300000000000000000000000000]
```
Here I switch to Bluetooth
```
20:54:50,307    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[20 01 0200 00FF1F0000002000000000]
20:54:50,323    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[20 01 0200 00FF1F0000002000000000]
20:54:50,331    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[20 01 0200 00FF1F0000002000000000]
20:54:50,339    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[20 01 0200 0000100000002E00000000]
20:54:51,733    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[20 01 0200 0001F0FF00004E00000000]
20:54:51,741    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[20 01 0200 0000F0FF00004F00000000]
20:54:51,749    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[20 01 0200 0001000000003D00000000]
20:54:51,757    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[20 01 0200 0001F0FF00004E00000000]
20:54:53,833    DEBUG [MainThread] hidapi.udev: Found device BID 0005 VID 0000046D PID 0000B027 INTERFACE None FILTER None
20:54:53,833     INFO [MainThread] solaar.listener: receiver event add DeviceInfo(path='/dev/hidraw0', vendor_id='046D', product_id='B027', serial='ce:4b:43:27:bb:27', release=None, manufacturer=None, product=None, interface=None, driver='hid-generic', bus_id=5, isDevice=True)
20:54:53,834    DEBUG [MainThread] logitech_receiver.base: (22) pinging device 255
20:54:53,834     INFO [MainThread] logitech_receiver.base: New lock 22
20:54:53,834    DEBUG [MainThread] logitech_receiver.base: (22) <= w[11 FF 001E 00006200000000000000000000000000]
20:54:53,889    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[10 01 4104 529640]
20:54:53,889     INFO [ReceiverListener:hidraw1] solaar.listener: connection Notification(10,1,41,04,529640) for <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)> (mouse)
20:54:53,890     INFO [ReceiverListener:hidraw1] solaar.listener: status_changed <UnifyingReceiver(/dev/hidraw1,19)>: present, 1 paired device. (0) 
20:54:53,891    DEBUG [ReceiverListener:hidraw1] logitech_receiver.notifications: <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>: protocol 4 connection notification: software=True, encrypted=False, link=False, payload=False
20:54:53,891     INFO [ReceiverListener:hidraw1] solaar.listener: status_changed <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>: paired offline, {'BATTERY LEVEL': 65} (0) 
20:54:53,891    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[20 01 4201 0000000000000000000000]
20:54:53,892    DEBUG [ReceiverListener:hidraw1] logitech_receiver.notifications: <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)> (4.5) DJ Notification(20,1,42,01,0000000000000000000000)
20:54:53,892     INFO [ReceiverListener:hidraw1] logitech_receiver.notifications: <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>: DJ connection: False Notification(20,1,42,01,0000000000000000000000)
20:54:53,892     INFO [ReceiverListener:hidraw1] solaar.listener: status_changed <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>: paired offline, {'BATTERY LEVEL': 65} (0) disconnected
20:54:53,909    DEBUG [MainThread] logitech_receiver.base: (22) => r[11 FF 0700 41080000000000000000000000000000]
20:54:54,146    DEBUG [MainThread] logitech_receiver.base: (22) => r[11 FF 001E 04056200000000000000000000000000]
20:54:54,147    DEBUG [MainThread] logitech_receiver.base: (22) <= w[11 FF 0009 00010000000000000000000000000000]
20:54:54,281    DEBUG [MainThread] logitech_receiver.base: (22) => r[11 FF 0009 01000100000000000000000000000000]
20:54:54,281    DEBUG [MainThread] logitech_receiver.base: (22) <= w[11 FF 0108 00000000000000000000000000000000]
20:54:54,371    DEBUG [MainThread] logitech_receiver.base: (22) => r[11 FF 0108 16000000000000000000000000000000]
20:54:54,371    DEBUG [MainThread] logitech_receiver.base: (22) <= w[11 FF 000B 10000000000000000000000000000000]
20:54:54,922    DEBUG [MainThread] logitech_receiver.base: (22) => r[11 FF 000B 00000000000000000000000000000000]
20:54:54,923    DEBUG [MainThread] logitech_receiver.base: (22) <= w[11 FF 000E 10040000000000000000000000000000]
20:54:54,967    DEBUG [MainThread] logitech_receiver.base: (22) => r[11 FF 000E 07000000000000000000000000000000]
20:54:54,968    DEBUG [MainThread] logitech_receiver.base: (22) <= w[11 FF 071F 00000000000000000000000000000000]
20:54:54,990    DEBUG [MainThread] logitech_receiver.base: (22) => r[11 FF 071F 41080000000000000000000000000000]
20:54:54,990    DEBUG [MainThread] logitech_receiver.hidpp20: battery 65% charged, level 8, charging discharging
20:54:54,990    DEBUG [MainThread] logitech_receiver.base: (22) <= w[11 FF 000A 00050000000000000000000000000000]
20:54:55,012    DEBUG [MainThread] logitech_receiver.base: (22) => r[11 FF 000A 03000000000000000000000000000000]
20:54:55,013    DEBUG [MainThread] logitech_receiver.base: (22) <= w[11 FF 030A 00000000000000000000000000000000]
20:54:55,035    DEBUG [MainThread] logitech_receiver.base: (22) => r[11 FF 030A 13000000000000000000000000000000]
20:54:55,035    DEBUG [MainThread] logitech_receiver.base: (22) <= w[11 FF 031D 00000000000000000000000000000000]
20:54:55,057    DEBUG [MainThread] logitech_receiver.base: (22) => r[11 FF 031D 4552474F204D35373520547261636B62]
20:54:55,058    DEBUG [MainThread] logitech_receiver.base: (22) <= w[11 FF 031F 10000000000000000000000000000000]
20:54:55,080    DEBUG [MainThread] logitech_receiver.base: (22) => r[11 FF 031F 616C6C00000000000000000000000000]
20:54:54,990    DEBUG [MainThread] logitech_receiver.status: <Device(255,B027,ERGO M575 Trackball,)>: battery 65, discharging
20:54:55,081    DEBUG [MainThread] logitech_receiver.base: (22) <= w[11 FF 032F 00000000000000000000000000000000]
20:54:55,102    DEBUG [MainThread] logitech_receiver.base: (22) => r[11 FF 032F 05000000000000000000000000000000]
20:54:55,103     INFO [MainThread] solaar.listener: status_changed <Device(255,B027,ERGO M575 Trackball,)>: paired online, {'BATTERY LEVEL': 65, 'BATTERY STATUS': NamedInt(0, 'discharging'), 'BATTERY NEXT LEVEL': None, 'BATTERY VOLTAGE': None, 'BATTERY CHARGING': False, 'ERROR': None} (0) 
20:54:55,103    DEBUG [MainThread] logitech_receiver.base: (22) <= w[11 FF 000E 00030000000000000000000000000000]
20:54:55,125    DEBUG [MainThread] logitech_receiver.base: (22) => r[11 FF 000E 02000400000000000000000000000000]
20:54:55,125    DEBUG [MainThread] logitech_receiver.base: (22) <= w[11 FF 020C 00000000000000000000000000000000]
20:54:55,147    DEBUG [MainThread] logitech_receiver.base: (22) => r[11 FF 020C 03D9AEB5A50006B02740960000000100]
20:54:55,148    DEBUG [MainThread] logitech_receiver.base: (22) <= w[11 FF 000E 22010000000000000000000000000000]
20:54:55,170    DEBUG [MainThread] logitech_receiver.base: (22) => r[11 FF 000E 09000100000000000000000000000000]
20:54:55,170    DEBUG [MainThread] logitech_receiver.base: (22) <= w[11 FF 091E 00000000000000000000000000000000]
20:54:55,192    DEBUG [MainThread] logitech_receiver.base: (22) => r[11 FF 091E 000064E03207D0000000000000000000]
20:54:55,193    DEBUG [MainThread] logitech_receiver.base: (22) <= w[11 FF 000D 00070000000000000000000000000000]
20:54:55,215    DEBUG [MainThread] logitech_receiver.base: (22) => r[11 FF 000D 06000000000000000000000000000000]
20:54:55,215    DEBUG [MainThread] logitech_receiver.base: (22) <= w[11 FF 0609 00000000000000000000000000000000]
20:54:55,237    DEBUG [MainThread] logitech_receiver.base: (22) => r[11 FF 0609 09120900000000000000000000000000]
20:54:55,238    DEBUG [MainThread] logitech_receiver.base: (22) <= w[11 FF 061F 00000000000000000000000000000000]
20:54:55,260    DEBUG [MainThread] logitech_receiver.base: (22) => r[11 FF 061F 004552474F204D353735000000000000]
20:54:55,193     INFO [MainThread] logitech_receiver.settings_templates: check_feature dpi [ADJUSTABLE DPI] detected <Setting([feature:choice] ERGO M575:dpi=None)>
20:54:55,260    DEBUG [MainThread] logitech_receiver.base: (22) <= w[11 FF 000C 1B040000000000000000000000000000]
20:54:55,282    DEBUG [MainThread] logitech_receiver.base: (22) => r[11 FF 000C 08000500000000000000000000000000]
20:54:55,283     INFO [MainThread] logitech_receiver.settings_templates: check_feature dpi-sliding [REPROG CONTROLS V4] detected None
20:54:55,283     INFO [MainThread] logitech_receiver.settings_templates: check_feature mouse-gestures [REPROG CONTROLS V4] detected None
20:54:55,283    DEBUG [MainThread] logitech_receiver.base: (22) <= w[11 FF 000D 1B010000000000000000000000000000]
20:54:55,305    DEBUG [MainThread] logitech_receiver.base: (22) => r[11 FF 000D 00000000000000000000000000000000]
20:54:55,305    DEBUG [MainThread] logitech_receiver.base: (22) <= w[11 FF 0809 00000000000000000000000000000000]
20:54:55,327    DEBUG [MainThread] logitech_receiver.base: (22) => r[11 FF 0809 06000000000000000000000000000000]
20:54:55,328    DEBUG [MainThread] logitech_receiver.base: (22) <= w[11 FF 081F 00000000000000000000000000000000]
20:54:55,350    DEBUG [MainThread] logitech_receiver.base: (22) => r[11 FF 081F 00500038110001010400000000000000]
20:54:55,351    DEBUG [MainThread] logitech_receiver.base: (22) <= w[11 FF 081E 01000000000000000000000000000000]
20:54:55,372    DEBUG [MainThread] logitech_receiver.base: (22) => r[11 FF 081E 00510039110001010400000000000000]
20:54:55,373    DEBUG [MainThread] logitech_receiver.base: (22) <= w[11 FF 081B 02000000000000000000000000000000]
20:54:55,395    DEBUG [MainThread] logitech_receiver.base: (22) => r[11 FF 081B 0052003A710002030500000000000000]
20:54:55,396    DEBUG [MainThread] logitech_receiver.base: (22) <= w[11 FF 0818 03000000000000000000000000000000]
20:54:55,417    DEBUG [MainThread] logitech_receiver.base: (22) => r[11 FF 0818 0056003E710002030500000000000000]
20:54:55,418    DEBUG [MainThread] logitech_receiver.base: (22) <= w[11 FF 081A 04000000000000000000000000000000]
20:54:55,440    DEBUG [MainThread] logitech_receiver.base: (22) => r[11 FF 081A 0053003C710002030500000000000000]
20:54:55,440    DEBUG [MainThread] logitech_receiver.base: (22) <= w[11 FF 0818 05000000000000000000000000000000]
20:54:55,462    DEBUG [MainThread] logitech_receiver.base: (22) => r[11 FF 0818 00D700B4A00003000300000000000000]
20:54:55,463     INFO [MainThread] logitech_receiver.settings_templates: check_feature reprogrammable-keys [REPROG CONTROLS V4] detected <Setting([feature:map choice] ERGO M575:reprogrammable-keys=None)>
20:54:55,463     INFO [MainThread] logitech_receiver.settings_templates: check_feature divert-keys [REPROG CONTROLS V4] detected <Setting([feature:map choice] ERGO M575:divert-keys=None)>
20:54:55,464     INFO [MainThread] solaar.configuration: saved {'4096:D9AEB5A5': {'_absent': ['hi-res-scroll', 'lowres-smooth-scroll', 'hires-smooth-invert', 'hires-smooth-resolution', 'smart-shift', 'thumb-scroll-mode', 'thumb-scroll-invert', 'report_rate', 'pointer_speed', 'speed-change', 'backlight', 'fn-swap', 'disable-keyboard-keys', 'divert-crown', 'crown-smooth', 'divert-gkeys', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-params', 'dpi-sliding', 'mouse-gestures'], '_dpi-sliding': 13, '_modelId': 'B02740960000', '_name': 'ERGO M575 Trackball', '_sensitive': {'divert-keys': False, 'dpi': False, 'dpi-sliding': True, 'mouse-gestures': False, 'reprogrammable-keys': False}, '_serial': 'D9AEB5A5', '_unitId': 'D9AEB5A5', 'divert-keys': {'82': 0, '83': 0, '86': 1}, 'dpi': 250, 'dpi-sliding': '86', 'mouse-gestures': 0, 'reprogrammable-keys': {'80': 80, '81': 81, '82': 82, '83': 83, '86': 86}}, '_version': '1.1.1'} to /home/plates/.config/solaar/config.json
20:54:55,464     INFO [MainThread] logitech_receiver.status: <Device(255,B027,ERGO M575 Trackball,)> pushing device settings [<Setting([feature:choice] ERGO M575:dpi=None)>, <Setting([feature:map choice] ERGO M575:reprogrammable-keys=None)>, <Setting([feature:map choice] ERGO M575:divert-keys=None)>]
20:54:55,464    DEBUG [MainThread] logitech_receiver.settings: dpi: apply None (<Device(255,B027,ERGO M575 Trackball,)>)
20:54:55,464    DEBUG [MainThread] logitech_receiver.settings: dpi: settings read None from <Device(255,B027,ERGO M575 Trackball,)>
20:54:55,464    DEBUG [MainThread] logitech_receiver.settings: dpi: settings write 250 to <Device(255,B027,ERGO M575 Trackball,)>
20:54:55,464    DEBUG [MainThread] logitech_receiver.settings: dpi: settings prepare write(250) => b'\x00\x00\xfa'
20:54:55,464    DEBUG [MainThread] logitech_receiver.base: (22) <= w[11 FF 093A 0000FA00000000000000000000000000]
20:54:55,485    DEBUG [MainThread] logitech_receiver.base: (22) => r[11 FF 093A 00000000000000000000000000000000]
20:54:55,485    DEBUG [MainThread] logitech_receiver.settings: reprogrammable-keys: apply None (<Device(255,B027,ERGO M575 Trackball,)>)
20:54:55,485    DEBUG [MainThread] logitech_receiver.settings: reprogrammable-keys: settings read None from <Device(255,B027,ERGO M575 Trackball,)>
20:54:55,485    DEBUG [MainThread] logitech_receiver.settings: reprogrammable-keys: settings write {'80': 80, '81': 81, '82': 82, '83': 83, '86': 86} to <Device(255,B027,ERGO M575 Trackball,)>
20:54:55,485    DEBUG [MainThread] logitech_receiver.settings: reprogrammable-keys: settings prepare map write(80,80) => b'\x00P'
20:54:55,486    DEBUG [MainThread] logitech_receiver.base: (22) <= w[11 FF 083C 00500000500000000000000000000000]
20:54:55,507    DEBUG [MainThread] logitech_receiver.base: (22) => r[11 FF 083C 00500000500000000000000000000000]
20:54:55,508    DEBUG [MainThread] logitech_receiver.settings: reprogrammable-keys: settings prepare map write(81,81) => b'\x00Q'
20:54:55,508    DEBUG [MainThread] logitech_receiver.base: (22) <= w[11 FF 083C 00510000510000000000000000000000]
20:54:55,530    DEBUG [MainThread] logitech_receiver.base: (22) => r[11 FF 083C 00510000510000000000000000000000]
20:54:55,531    DEBUG [MainThread] logitech_receiver.settings: reprogrammable-keys: settings prepare map write(82,82) => b'\x00R'
20:54:55,531    DEBUG [MainThread] logitech_receiver.base: (22) <= w[11 FF 083D 00520000520000000000000000000000]
20:54:55,552    DEBUG [MainThread] logitech_receiver.base: (22) => r[11 FF 083D 00520000520000000000000000000000]
20:54:55,552    DEBUG [MainThread] logitech_receiver.settings: reprogrammable-keys: settings prepare map write(83,83) => b'\x00S'
20:54:55,553    DEBUG [MainThread] logitech_receiver.base: (22) <= w[11 FF 083A 00530000530000000000000000000000]
20:54:55,575    DEBUG [MainThread] logitech_receiver.base: (22) => r[11 FF 083A 00530000530000000000000000000000]
20:54:55,575    DEBUG [MainThread] logitech_receiver.settings: reprogrammable-keys: settings prepare map write(86,86) => b'\x00V'
20:54:55,575    DEBUG [MainThread] logitech_receiver.base: (22) <= w[11 FF 083F 00560000560000000000000000000000]
20:54:55,597    DEBUG [MainThread] logitech_receiver.base: (22) => r[11 FF 083F 00560000560000000000000000000000]
20:54:55,597    DEBUG [MainThread] logitech_receiver.settings: divert-keys: apply None (<Device(255,B027,ERGO M575 Trackball,)>)
20:54:55,598    DEBUG [MainThread] logitech_receiver.settings: divert-keys: settings read None from <Device(255,B027,ERGO M575 Trackball,)>
20:54:55,598    DEBUG [MainThread] logitech_receiver.settings: divert-keys: settings write {'82': 0, '83': 0, '86': 1} to <Device(255,B027,ERGO M575 Trackball,)>
20:54:55,598    DEBUG [MainThread] logitech_receiver.settings: divert-keys: settings prepare map write(82,0) => b'\x00'
20:54:55,598    DEBUG [MainThread] logitech_receiver.base: (22) <= w[11 FF 083F 00520200000000000000000000000000]
20:54:55,620    DEBUG [MainThread] logitech_receiver.base: (22) => r[11 FF 083F 00520200000000000000000000000000]
20:54:55,620    DEBUG [MainThread] logitech_receiver.settings: divert-keys: settings prepare map write(83,0) => b'\x00'
20:54:55,620    DEBUG [MainThread] logitech_receiver.base: (22) <= w[11 FF 083E 00530200000000000000000000000000]
20:54:55,642    DEBUG [MainThread] logitech_receiver.base: (22) => r[11 FF 083E 00530200000000000000000000000000]
20:54:55,643    DEBUG [MainThread] logitech_receiver.settings: divert-keys: settings prepare map write(86,1) => b'\x01'
20:54:55,643    DEBUG [MainThread] logitech_receiver.base: (22) <= w[11 FF 0838 00560300000000000000000000000000]
20:54:55,665    DEBUG [MainThread] logitech_receiver.base: (22) => r[11 FF 0838 00560300000000000000000000000000]
20:54:55,665     INFO [MainThread] solaar.listener: status_changed <Device(255,B027,ERGO M575 Trackball,)>: paired online, {'BATTERY LEVEL': 65, 'BATTERY STATUS': NamedInt(0, 'discharging'), 'BATTERY NEXT LEVEL': None, 'BATTERY VOLTAGE': None, 'BATTERY CHARGING': False, 'ERROR': None} (0) initialization
20:54:55,665     INFO [ReceiverListener:hidraw0] logitech_receiver.listener: started with <Device(255,B027,ERGO M575 Trackball,)> (22)
20:54:55,666     INFO [ReceiverListener:hidraw0] solaar.listener: <Device(255,B027,ERGO M575 Trackball,)>: notifications listener has started (22)
20:54:55,666     INFO [ReceiverListener:hidraw0] solaar.listener: status_changed <Device(255,B027,ERGO M575 Trackball,)>: paired online, {'BATTERY LEVEL': 65, 'BATTERY STATUS': NamedInt(0, 'discharging'), 'BATTERY NEXT LEVEL': None, 'BATTERY VOLTAGE': None, 'BATTERY CHARGING': False, 'ERROR': None, 'NOTIFICATION FLAGS': False} (0) 
20:54:55,692    DEBUG [MainThread] solaar.ui: status changed: <UnifyingReceiver(/dev/hidraw1,19)> (NONE) None
20:54:55,693    DEBUG [MainThread] solaar.ui.icons: battery icon for 65:None = battery-good
20:54:55,693    DEBUG [MainThread] solaar.ui: status changed: <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)> (NONE) None
20:54:55,693    DEBUG [MainThread] solaar.ui.icons: battery icon for 65:None = battery-good
20:54:55,694    DEBUG [MainThread] solaar.ui.tray: picked device with lowest battery: ('/dev/hidraw1', 1, 'ERGO M575 Trackball', {'BATTERY LEVEL': 65})
20:54:55,694    DEBUG [MainThread] solaar.ui.icons: battery icon for 65:None = battery-good
20:54:55,694    DEBUG [MainThread] solaar.ui.icons: battery icon for 65:None = battery-good
20:54:55,694    DEBUG [MainThread] solaar.ui.icons: battery icon for 65:None = battery-good
20:54:55,695    DEBUG [AsyncUI] logitech_receiver.settings: dpi: settings read 250 from <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>
20:54:55,695    DEBUG [MainThread] solaar.ui: status changed: <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)> (NONE) disconnected
20:54:55,696    DEBUG [AsyncUI] logitech_receiver.settings: dpi-sliding: settings read '86' from <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>
20:54:55,696    DEBUG [MainThread] solaar.ui.icons: battery icon for 65:None = battery-good
20:54:55,696    DEBUG [AsyncUI] logitech_receiver.settings: mouse-gestures: settings read 0 from <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>
20:54:55,696    DEBUG [MainThread] solaar.ui.tray: picked device with lowest battery: ('/dev/hidraw1', 1, 'ERGO M575 Trackball', {'BATTERY LEVEL': 65})
20:54:55,696    DEBUG [AsyncUI] logitech_receiver.settings: reprogrammable-keys: settings read {'80': 80, '81': 81, '82': 82, '83': 83, '86': 86} from <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>
20:54:55,696    DEBUG [MainThread] solaar.ui.icons: battery icon for 65:None = battery-good
20:54:55,696    DEBUG [AsyncUI] logitech_receiver.settings: divert-keys: settings read {'82': 0, '83': 0, '86': 1} from <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>
20:54:55,697    DEBUG [MainThread] solaar.ui.icons: battery icon for 65:None = battery-good
20:54:55,697    DEBUG [MainThread] solaar.ui.icons: battery icon for 65:None = battery-good
20:54:55,698    DEBUG [MainThread] solaar.ui: status changed: <Device(255,B027,ERGO M575 Trackball,)> (NONE) None
20:54:55,698    DEBUG [MainThread] solaar.ui.icons: battery icon for 65:False = battery-good
20:54:55,699    DEBUG [MainThread] solaar.ui.tray: picked device with lowest battery: ('/dev/hidraw0', 255, 'ERGO M575 Trackball', {'BATTERY LEVEL': 65, 'BATTERY STATUS': NamedInt(0, 'discharging'), 'BATTERY NEXT LEVEL': None, 'BATTERY VOLTAGE': None, 'BATTERY CHARGING': False, 'ERROR': None, 'NOTIFICATION FLAGS': False})
20:54:55,699    DEBUG [MainThread] solaar.ui.icons: battery icon for 65:False = battery-good
20:54:55,700    DEBUG [MainThread] solaar.ui.window: new device row ('/dev/hidraw0', 255, True, 'ERGO M575', 'input-mouse', None, None, <Device(255,B027,ERGO M575 Trackball,)>) at index 0
20:54:55,700    DEBUG [MainThread] solaar.ui.icons: battery icon for 65:False = battery-good
20:54:55,700    DEBUG [MainThread] solaar.ui: status changed: <Device(255,B027,ERGO M575 Trackball,)> (NONE) initialization
20:54:55,701    DEBUG [MainThread] solaar.ui.icons: battery icon for 65:False = battery-good
20:54:55,701    DEBUG [MainThread] solaar.ui.tray: picked device with lowest battery: ('/dev/hidraw0', 255, 'ERGO M575 Trackball', {'BATTERY LEVEL': 65, 'BATTERY STATUS': NamedInt(0, 'discharging'), 'BATTERY NEXT LEVEL': None, 'BATTERY VOLTAGE': None, 'BATTERY CHARGING': False, 'ERROR': None, 'NOTIFICATION FLAGS': False})
20:54:55,701    DEBUG [MainThread] solaar.ui.icons: battery icon for 65:False = battery-good
20:54:55,702    DEBUG [MainThread] solaar.ui.icons: battery icon for 65:False = battery-good
20:54:55,702    DEBUG [MainThread] solaar.ui: status changed: <Device(255,B027,ERGO M575 Trackball,)> (NONE) None
20:54:55,702    DEBUG [MainThread] solaar.ui.icons: battery icon for 65:False = battery-good
20:54:55,702    DEBUG [MainThread] solaar.ui.tray: picked device with lowest battery: ('/dev/hidraw0', 255, 'ERGO M575 Trackball', {'BATTERY LEVEL': 65, 'BATTERY STATUS': NamedInt(0, 'discharging'), 'BATTERY NEXT LEVEL': None, 'BATTERY VOLTAGE': None, 'BATTERY CHARGING': False, 'ERROR': None, 'NOTIFICATION FLAGS': False})
20:54:55,703    DEBUG [MainThread] solaar.ui.icons: battery icon for 65:False = battery-good
20:54:55,704    DEBUG [MainThread] solaar.ui.icons: battery icon for 65:False = battery-good
```
And back to unifying
```
20:55:03,093    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[10 01 4104 929640]
20:55:03,103     INFO [ReceiverListener:hidraw1] solaar.listener: connection Notification(10,1,41,04,929640) for <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)> (mouse)
20:55:03,103     INFO [ReceiverListener:hidraw1] solaar.listener: status_changed <UnifyingReceiver(/dev/hidraw1,19)>: present, 1 paired device. (0) 
20:55:03,104    DEBUG [ReceiverListener:hidraw1] logitech_receiver.notifications: <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>: protocol 4 connection notification: software=True, encrypted=False, link=True, payload=True
20:55:03,104    DEBUG [MainThread] solaar.ui: status changed: <UnifyingReceiver(/dev/hidraw1,19)> (NONE) None
20:55:03,104    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) <= w[11 01 071E 00000000000000000000000000000000]
20:55:03,105    DEBUG [MainThread] solaar.ui.icons: battery icon for 65:False = battery-good
20:55:03,109    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) => r[11 01 0700 41080000000000000000000000000000]
20:55:03,123    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) => r[11 01 0710 41080000000000000000000000000000]
20:55:03,131    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) => r[11 01 071E 41080000000000000000000000000000]
20:55:03,131    DEBUG [ReceiverListener:hidraw1] logitech_receiver.hidpp20: battery 65% charged, level 8, charging discharging
20:55:03,131    DEBUG [ReceiverListener:hidraw1] logitech_receiver.status: <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>: battery 65, discharging
20:55:03,131     INFO [ReceiverListener:hidraw1] solaar.listener: status_changed <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>: paired online, {'BATTERY LEVEL': 65, 'LINK ENCRYPTED': False, 'BATTERY STATUS': NamedInt(0, 'discharging'), 'BATTERY NEXT LEVEL': None, 'BATTERY VOLTAGE': None, 'BATTERY CHARGING': False, 'ERROR': None} (0) 
20:55:03,131    DEBUG [MainThread] solaar.ui: status changed: <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)> (NONE) None
20:55:03,132    DEBUG [MainThread] solaar.ui.icons: battery icon for 65:False = battery-good
20:55:03,132    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) <= w[11 01 000B 1D4B0000000000000000000000000000]
20:55:03,132    DEBUG [MainThread] solaar.ui.tray: picked device with lowest battery: ('/dev/hidraw0', 255, 'ERGO M575 Trackball', {'BATTERY LEVEL': 65, 'BATTERY STATUS': NamedInt(0, 'discharging'), 'BATTERY NEXT LEVEL': None, 'BATTERY VOLTAGE': None, 'BATTERY CHARGING': False, 'ERROR': None, 'NOTIFICATION FLAGS': False})
20:55:03,133    DEBUG [MainThread] solaar.ui.icons: battery icon for 65:False = battery-good
20:55:03,134    DEBUG [MainThread] solaar.ui.icons: battery icon for 65:False = battery-good
20:55:03,134    DEBUG [MainThread] solaar.ui.icons: battery icon for 65:False = battery-good
20:55:03,136    DEBUG [AsyncUI] logitech_receiver.settings: dpi: settings read 250 from <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>
20:55:03,136    DEBUG [AsyncUI] logitech_receiver.settings: dpi-sliding: settings read '86' from <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>
20:55:03,136    DEBUG [AsyncUI] logitech_receiver.settings: mouse-gestures: settings read 0 from <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>
20:55:03,136    DEBUG [AsyncUI] logitech_receiver.settings: reprogrammable-keys: settings read {'80': 80, '81': 81, '82': 82, '83': 83, '86': 86} from <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>
20:55:03,136    DEBUG [AsyncUI] logitech_receiver.settings: divert-keys: settings read {'82': 0, '83': 0, '86': 1} from <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>
20:55:03,155    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) => r[11 01 000B 04000000000000000000000000000000]
20:55:03,155     INFO [ReceiverListener:hidraw1] solaar.listener: status_changed <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>: paired online, {'BATTERY LEVEL': 65, 'LINK ENCRYPTED': False, 'BATTERY STATUS': NamedInt(0, 'discharging'), 'BATTERY NEXT LEVEL': None, 'BATTERY VOLTAGE': None, 'BATTERY CHARGING': False, 'ERROR': None} (0) 
20:55:03,155    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[20 01 4200 0000000000000000000000]
20:55:03,155    DEBUG [ReceiverListener:hidraw1] logitech_receiver.notifications: <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)> (4.5) DJ Notification(20,1,42,00,0000000000000000000000)
20:55:03,155     INFO [ReceiverListener:hidraw1] logitech_receiver.notifications: <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>: DJ connection: True Notification(20,1,42,00,0000000000000000000000)
20:55:03,155     INFO [ReceiverListener:hidraw1] solaar.listener: status_changed <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>: paired online, {'BATTERY LEVEL': 65, 'LINK ENCRYPTED': False, 'BATTERY STATUS': NamedInt(0, 'discharging'), 'BATTERY NEXT LEVEL': None, 'BATTERY VOLTAGE': None, 'BATTERY CHARGING': False, 'ERROR': None} (0) connected
20:55:03,155    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[11 01 0400 01010100000000000000000000000000]
20:55:03,156    DEBUG [ReceiverListener:hidraw1] logitech_receiver.notifications: <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>: notification for feature WIRELESS DEVICE STATUS, report 0, data 01010100000000000000000000000000
20:55:03,156    DEBUG [ReceiverListener:hidraw1] logitech_receiver.notifications: wireless status: Notification(11,1,04,00,01010100000000000000000000000000)
20:55:03,157     INFO [ReceiverListener:hidraw1] logitech_receiver.status: <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)> pushing device settings [<Setting([feature:choice] ERGO M575:dpi=250)>, <Setting([feature:choice] ERGO M575:dpi-sliding=86)>, <Setting([feature:choice] ERGO M575:mouse-gestures=0)>, <Setting([feature:map choice] ERGO M575:reprogrammable-keys={'80': 80, '81': 81, '82': 82, '83': 83, '86': 86})>, <Setting([feature:map choice] ERGO M575:divert-keys={'82': 0, '83': 0, '86': 1})>]
20:55:03,157    DEBUG [ReceiverListener:hidraw1] logitech_receiver.settings: dpi: apply 250 (<Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>)
20:55:03,157    DEBUG [ReceiverListener:hidraw1] logitech_receiver.settings: dpi: settings read 250 from <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>
20:55:03,157    DEBUG [ReceiverListener:hidraw1] logitech_receiver.settings: dpi: settings write 250 to <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>
20:55:03,157    DEBUG [ReceiverListener:hidraw1] logitech_receiver.settings: dpi: settings prepare write(250) => b'\x00\x00\xfa'
20:55:03,158    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) <= w[11 01 093B 0000FA00000000000000000000000000]
20:55:03,159    DEBUG [MainThread] solaar.ui: status changed: <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)> (NONE) None
20:55:03,159    DEBUG [MainThread] solaar.ui.icons: battery icon for 65:False = battery-good
20:55:03,159    DEBUG [MainThread] solaar.ui.tray: picked device with lowest battery: ('/dev/hidraw0', 255, 'ERGO M575 Trackball', {'BATTERY LEVEL': 65, 'BATTERY STATUS': NamedInt(0, 'discharging'), 'BATTERY NEXT LEVEL': None, 'BATTERY VOLTAGE': None, 'BATTERY CHARGING': False, 'ERROR': None, 'NOTIFICATION FLAGS': False})
20:55:03,159    DEBUG [MainThread] solaar.ui.icons: battery icon for 65:False = battery-good
20:55:03,160    DEBUG [MainThread] solaar.ui.icons: battery icon for 65:False = battery-good
20:55:03,161    DEBUG [MainThread] solaar.ui.icons: battery icon for 65:False = battery-good
20:55:03,162    DEBUG [MainThread] solaar.ui: status changed: <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)> (NONE) connected
20:55:03,162    DEBUG [MainThread] solaar.ui.icons: battery icon for 65:False = battery-good
20:55:03,162    DEBUG [MainThread] solaar.ui.tray: picked device with lowest battery: ('/dev/hidraw0', 255, 'ERGO M575 Trackball', {'BATTERY LEVEL': 65, 'BATTERY STATUS': NamedInt(0, 'discharging'), 'BATTERY NEXT LEVEL': None, 'BATTERY VOLTAGE': None, 'BATTERY CHARGING': False, 'ERROR': None, 'NOTIFICATION FLAGS': False})
20:55:03,162    DEBUG [MainThread] solaar.ui.icons: battery icon for 65:False = battery-good
20:55:03,163    DEBUG [MainThread] solaar.ui.icons: battery icon for 65:False = battery-good
20:55:03,163    DEBUG [MainThread] solaar.ui.icons: battery icon for 65:False = battery-good
20:55:03,181    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) => r[11 01 093B 00000000000000000000000000000000]
20:55:03,181    DEBUG [ReceiverListener:hidraw1] logitech_receiver.settings: dpi-sliding: apply 86 (<Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>)
20:55:03,181    DEBUG [ReceiverListener:hidraw1] logitech_receiver.settings: dpi-sliding: settings read '86' from <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>
20:55:03,181    DEBUG [ReceiverListener:hidraw1] logitech_receiver.settings: dpi-sliding: settings write '86' to <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>
20:55:03,181    DEBUG [ReceiverListener:hidraw1] logitech_receiver.settings: dpi-sliding: settings prepare write(86) => b'\x00V'
20:55:03,181    DEBUG [ReceiverListener:hidraw1] logitech_receiver.settings: divert-keys: settings write key 86 value 1 to <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>
20:55:03,182     INFO [ReceiverListener:hidraw1] solaar.configuration: saved {'4096:D9AEB5A5': {'_absent': ['hi-res-scroll', 'lowres-smooth-scroll', 'hires-smooth-invert', 'hires-smooth-resolution', 'smart-shift', 'thumb-scroll-mode', 'thumb-scroll-invert', 'report_rate', 'pointer_speed', 'speed-change', 'backlight', 'fn-swap', 'disable-keyboard-keys', 'divert-crown', 'crown-smooth', 'divert-gkeys', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-params', 'dpi-sliding', 'mouse-gestures'], '_dpi-sliding': 13, '_modelId': 'B02740960000', '_name': 'ERGO M575 Trackball', '_sensitive': {'divert-keys': False, 'dpi': False, 'dpi-sliding': True, 'mouse-gestures': False, 'reprogrammable-keys': False}, '_serial': 'D9AEB5A5', '_unitId': 'D9AEB5A5', 'divert-keys': {'82': 0, '83': 0, '86': 1}, 'dpi': 250, 'dpi-sliding': '86', 'mouse-gestures': 0, 'reprogrammable-keys': {'80': 80, '81': 81, '82': 82, '83': 83, '86': 86}}, '_version': '1.1.1'} to /home/plates/.config/solaar/config.json
20:55:03,182    DEBUG [ReceiverListener:hidraw1] logitech_receiver.settings: divert-keys: settings prepare key value write(86,1) => b'\x01'
20:55:03,182    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) <= w[11 01 0838 00560300000000000000000000000000]
20:55:03,205    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) => r[11 01 0838 00560300000000000000000000000000]
20:55:03,205    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) <= w[11 01 083E 00563000000000000000000000000000]
20:55:03,229    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) => r[11 01 083E 00563000000000000000000000000000]
20:55:03,230    DEBUG [ReceiverListener:hidraw1] logitech_receiver.settings: mouse-gestures: apply 0 (<Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>)
20:55:03,231    DEBUG [ReceiverListener:hidraw1] logitech_receiver.settings: mouse-gestures: settings read 0 from <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>
20:55:03,231    DEBUG [MainThread] solaar.ui: status changed: <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)> (NONE) None
20:55:03,231    DEBUG [ReceiverListener:hidraw1] logitech_receiver.settings: mouse-gestures: settings write 0 to <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>
20:55:03,232    DEBUG [ReceiverListener:hidraw1] logitech_receiver.settings: mouse-gestures: settings prepare write(0) => b'\x00\x00'
20:55:03,232    DEBUG [MainThread] solaar.ui.icons: battery icon for 65:False = battery-good
20:55:03,232    DEBUG [ReceiverListener:hidraw1] logitech_receiver.settings: reprogrammable-keys: apply {'80': 80, '81': 81, '82': 82, '83': 83, '86': 86} (<Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>)
20:55:03,232    DEBUG [ReceiverListener:hidraw1] logitech_receiver.settings: reprogrammable-keys: settings read {'80': 80, '81': 81, '82': 82, '83': 83, '86': 86} from <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>
20:55:03,233    DEBUG [ReceiverListener:hidraw1] logitech_receiver.settings: reprogrammable-keys: settings write {'80': 80, '81': 81, '82': 82, '83': 83, '86': 86} to <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>
20:55:03,233    DEBUG [ReceiverListener:hidraw1] logitech_receiver.settings: reprogrammable-keys: settings prepare map write(80,80) => b'\x00P'
20:55:03,234    DEBUG [MainThread] solaar.ui.tray: picked device with lowest battery: ('/dev/hidraw0', 255, 'ERGO M575 Trackball', {'BATTERY LEVEL': 65, 'BATTERY STATUS': NamedInt(0, 'discharging'), 'BATTERY NEXT LEVEL': None, 'BATTERY VOLTAGE': None, 'BATTERY CHARGING': False, 'ERROR': None, 'NOTIFICATION FLAGS': False})
20:55:03,234    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) <= w[11 01 083E 00500000500000000000000000000000]
20:55:03,234    DEBUG [MainThread] solaar.ui.icons: battery icon for 65:False = battery-good
20:55:03,236    DEBUG [MainThread] solaar.ui.icons: battery icon for 65:False = battery-good
20:55:03,237    DEBUG [MainThread] solaar.ui.icons: battery icon for 65:False = battery-good
20:55:03,240    DEBUG [AsyncUI] logitech_receiver.settings: dpi: settings read 250 from <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>
20:55:03,241    DEBUG [AsyncUI] logitech_receiver.settings: dpi-sliding: settings read '86' from <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>
20:55:03,241    DEBUG [AsyncUI] logitech_receiver.settings: mouse-gestures: settings read 0 from <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>
20:55:03,241    DEBUG [AsyncUI] logitech_receiver.settings: reprogrammable-keys: settings read {'80': 80, '81': 81, '82': 82, '83': 83, '86': 86} from <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>
20:55:03,242    DEBUG [AsyncUI] logitech_receiver.settings: divert-keys: settings read {'82': 0, '83': 0, '86': 1} from <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>
20:55:03,261    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) => r[11 01 083E 00500000500000000000000000000000]
20:55:03,261    DEBUG [ReceiverListener:hidraw1] logitech_receiver.settings: reprogrammable-keys: settings prepare map write(81,81) => b'\x00Q'
20:55:03,262    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) <= w[11 01 083C 00510000510000000000000000000000]
20:55:03,285    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) => r[11 01 083C 00510000510000000000000000000000]
20:55:03,285    DEBUG [ReceiverListener:hidraw1] logitech_receiver.settings: reprogrammable-keys: settings prepare map write(82,82) => b'\x00R'
20:55:03,287    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) <= w[11 01 0838 00520000520000000000000000000000]
20:55:03,309    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) => r[11 01 0838 00520000520000000000000000000000]
20:55:03,309    DEBUG [ReceiverListener:hidraw1] logitech_receiver.settings: reprogrammable-keys: settings prepare map write(83,83) => b'\x00S'
20:55:03,309    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) <= w[11 01 083B 00530000530000000000000000000000]
20:55:03,333    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) => r[11 01 083B 00530000530000000000000000000000]
20:55:03,334    DEBUG [ReceiverListener:hidraw1] logitech_receiver.settings: reprogrammable-keys: settings prepare map write(86,86) => b'\x00V'
20:55:03,335    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) <= w[11 01 083D 00560000560000000000000000000000]
20:55:03,357    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) => r[11 01 083D 00560000560000000000000000000000]
20:55:03,357    DEBUG [ReceiverListener:hidraw1] logitech_receiver.settings: divert-keys: apply {'82': 0, '83': 0, '86': 1} (<Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>)
20:55:03,357    DEBUG [ReceiverListener:hidraw1] logitech_receiver.settings: divert-keys: settings read {'82': 0, '83': 0, '86': 1} from <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>
20:55:03,357    DEBUG [ReceiverListener:hidraw1] logitech_receiver.settings: divert-keys: settings write {'82': 0, '83': 0, '86': 1} to <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>
20:55:03,357    DEBUG [ReceiverListener:hidraw1] logitech_receiver.settings: divert-keys: settings prepare map write(82,0) => b'\x00'
20:55:03,357    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) <= w[11 01 0838 00520200000000000000000000000000]
20:55:03,362  WARNING [ReceiverListener:hidraw0] logitech_receiver.base: read failed, assuming handle <_ThreadedHandle(/dev/hidraw0)> no longer available
20:55:03,362    DEBUG [ReceiverListener:hidraw0] logitech_receiver.listener: <_ThreadedHandle(/dev/hidraw0)> closing [22]
20:55:03,362  WARNING [ReceiverListener:hidraw0] logitech_receiver.listener: receiver disconnected
20:55:03,363     INFO [ReceiverListener:hidraw0] solaar.listener: <Device(255,B027,ERGO M575 Trackball,)>: notifications listener has stopped
20:55:03,371    DEBUG [MainThread] solaar.ui: status changed: <Device(255,B027,ERGO M575 Trackball,)> (NONE) None
20:55:03,376    DEBUG [MainThread] solaar.ui.tray: picked device with lowest battery: ('/dev/hidraw1', 1, 'ERGO M575 Trackball', {'BATTERY LEVEL': 65, 'LINK ENCRYPTED': False, 'BATTERY STATUS': NamedInt(0, 'discharging'), 'BATTERY NEXT LEVEL': None, 'BATTERY VOLTAGE': None, 'BATTERY CHARGING': False, 'ERROR': None})
20:55:03,376    DEBUG [MainThread] solaar.ui.icons: battery icon for 65:False = battery-good
20:55:03,388    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) => r[11 01 0838 00520200000000000000000000000000]
20:55:03,388    DEBUG [ReceiverListener:hidraw1] logitech_receiver.settings: divert-keys: settings prepare map write(83,0) => b'\x00'
20:55:03,388    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) <= w[11 01 083F 00530200000000000000000000000000]
20:55:03,414    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) => r[11 01 083F 00530200000000000000000000000000]
20:55:03,414    DEBUG [ReceiverListener:hidraw1] logitech_receiver.settings: divert-keys: settings prepare map write(86,1) => b'\x01'
20:55:03,414    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) <= w[11 01 083E 00560300000000000000000000000000]
20:55:03,439    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (20) => r[11 01 083E 00560300000000000000000000000000]
20:55:03,444     INFO [ReceiverListener:hidraw1] solaar.listener: status_changed <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>: paired online, {'BATTERY LEVEL': 65, 'LINK ENCRYPTED': False, 'BATTERY STATUS': NamedInt(0, 'discharging'), 'BATTERY NEXT LEVEL': None, 'BATTERY VOLTAGE': None, 'BATTERY CHARGING': False, 'ERROR': None} (0) powered on
20:55:03,445    DEBUG [MainThread] solaar.ui: status changed: <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)> (NONE) powered on
20:55:03,445    DEBUG [MainThread] solaar.ui.icons: battery icon for 65:False = battery-good
20:55:03,445    DEBUG [MainThread] solaar.ui.tray: picked device with lowest battery: ('/dev/hidraw1', 1, 'ERGO M575 Trackball', {'BATTERY LEVEL': 65, 'LINK ENCRYPTED': False, 'BATTERY STATUS': NamedInt(0, 'discharging'), 'BATTERY NEXT LEVEL': None, 'BATTERY VOLTAGE': None, 'BATTERY CHARGING': False, 'ERROR': None})
20:55:03,446    DEBUG [MainThread] solaar.ui.icons: battery icon for 65:False = battery-good
20:55:03,447    DEBUG [MainThread] solaar.ui.icons: battery icon for 65:False = battery-good
20:55:03,448    DEBUG [MainThread] solaar.ui.icons: battery icon for 65:False = battery-good
20:55:03,452    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[11 01 0700 41080000000000000000000000000000]
20:55:03,453    DEBUG [ReceiverListener:hidraw1] logitech_receiver.notifications: <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>: notification for feature UNIFIED BATTERY, report 0, data 41080000000000000000000000000000
20:55:03,453    DEBUG [ReceiverListener:hidraw1] logitech_receiver.hidpp20: battery 65% charged, level 8, charging discharging
20:55:03,453    DEBUG [ReceiverListener:hidraw1] logitech_receiver.status: <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>: battery 65, discharging
20:55:03,457    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[11 01 0710 41080000000000000000000000000000]
20:55:03,458    DEBUG [ReceiverListener:hidraw1] logitech_receiver.notifications: <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>: notification for feature UNIFIED BATTERY, report 0, data 41080000000000000000000000000000
20:55:03,458  WARNING [ReceiverListener:hidraw1] logitech_receiver.notifications: <Device(1,4096,ERGO M575 Trackball,D9AEB5A5)>: unknown UNIFIED BATTERY Notification(11,1,07,10,41080000000000000000000000000000)
20:55:03,460    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[11 01 071E 41080000000000000000000000000000]
20:55:03,460    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[11 01 000B 04000000000000000000000000000000]
20:55:03,460    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[11 01 093B 00000000000000000000000000000000]
20:55:03,461    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[11 01 0838 00560300000000000000000000000000]
20:55:03,461    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[11 01 083E 00563000000000000000000000000000]
20:55:03,461    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[11 01 083E 00500000500000000000000000000000]
20:55:03,461    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[11 01 083C 00510000510000000000000000000000]
20:55:03,461    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[11 01 0838 00520000520000000000000000000000]
20:55:03,461    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[11 01 083B 00530000530000000000000000000000]
20:55:03,461    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[11 01 083D 00560000560000000000000000000000]
20:55:03,461    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[11 01 0838 00520200000000000000000000000000]
20:55:03,461    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[11 01 083F 00530200000000000000000000000000]
20:55:03,461    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (19) => r[11 01 083E 00560300000000000000000000000000]
```
</details>
I have the business version of this trackball.  It appears to have a bug in how it implements adjustable DPI, which is needed for DPI sliding.  I'll add a patch to Solaar to handle this bug, which may help you as well.

Resolving patch:
diff --git a/lib/logitech_receiver/settings_templates.py b/lib/logitech_receiver/settings_templates.py
--- a/lib/logitech_receiver/settings_templates.py
+++ b/lib/logitech_receiver/settings_templates.py
@@ -493,6 +493,14 @@ def build(cls, setting_class, device):
                 dpi_list = range(dpi_list[0], dpi_list[1] + 1, step)
             return cls(choices=_NamedInts.list(dpi_list), byte_count=3) if dpi_list else None
 
+        def validate_read(self, reply_bytes):  # special validator to use default DPI if needed
+            reply_value = _bytes2int(reply_bytes[1:3])
+            if reply_value == 0:  # use default value instead
+                reply_value = _bytes2int(reply_bytes[3:5])
+            valid_value = self.choices[reply_value]
+            assert valid_value is not None, '%s: failed to validate read value %02X' % (self.__class__.__name__, reply_value)
+            return valid_value
+
 
 class SpeedChange(_Setting):
     """Implements the ability to switch Sensitivity by clicking on the DPI_Change button."""
@@ -621,7 +629,7 @@ class validator_class(_ChoicesV):
         def build(cls, setting_class, device):
             # need _F.REPROG_CONTROLS_V4 feature and a DPI Switch that can send raw XY
             # and _F.ADJUSTABLE_DPI so that the DPI can be adjusted
-            if device.kind == _DK.mouse and _F.ADJUSTABLE_DPI in device.features:
+            if _F.ADJUSTABLE_DPI in device.features:
                 keys = []
                 for key in cls.sliding_keys:
                     key_index = device.keys.index(key)


Test patch: