Repository: pwr-Solaar/Solaar

Issue:
Logitech M325, Scroll Wheel High Resolution, Read/write operation failed.
**Information**
- Solaar version: solaar 1.1.10
- Distribution: Fedora 39
- Kernel version (ex. `uname -srmo`): Linux 6.6.4-200.fc39.x86_64 x86_64 GNU/Linux
- Output of `solaar show`:

<details>

$ solaar show

```
solaar version 1.1.10

USB and Bluetooth Devices

  1: Bluetooth Multi-Device Keyboard K380
     Device path  : /dev/hidraw7
     USB id       : 046d:B342
     Codename     : Keyboard K380
     Kind         : ?
     Protocol     : HID++ 4.5
     Serial number: 
     Model ID:      B34200000000
     Unit ID:       DC000000
          Firmware: RBK 42.01.B0017
          Hardware: 72
     Supports 15 HID++ 2.0 features:
         0: ROOT                   {0000} V0     
         1: FEATURE SET            {0001} V0     
         2: DEVICE FW VERSION      {0003} V1     
            Firmware: Firmware RBK 42.01.B0017 B342C18DBFDD
            Firmware: Hardware  72 
            Unit ID: DC000000  Model ID: B34200000000  Transport IDs: {'btid': 'B342'}
         3: DEVICE NAME            {0005} V0     
            Name: Bluetooth Multi-Device Keyboard K380
            Kind: keyboard
         4: DEVICE FRIENDLY NAME   {0007} V0     
            Friendly Name: Keyboard K380
         5: CONFIG CHANGE          {0020} V0     
         6: BATTERY STATUS         {1000} V0     
            Battery: 50%, discharging, next level 20%.
         7: CHANGE HOST            {1814} V1     
            Change Host        : 1:m90q
         8: HOSTS INFO             {1815} V0     
            Host 0 (paired): m90q
            Host 1 (paired): Chromebox_1C91
            Host 2 (paired): Chromebook_4747
         9: REPROG CONTROLS V4     {1B04} V0     
            Key/Button Diversion (saved): {Volume Up:Regular, Volume Down:Regular, Mute:Regular, Play/Pause:Regular, Next:Regular, Previous:Regular, Search:Regular, Multiplatform App Switch:Regular, Multiplatform Home:Regular, Multiplatform Menu:Regular, Multiplatform Back:Regular, Multiplatform Insert:Regular, Screen Capture/Print Screen:Regular, Fn Down:Regular, Fn Up:Regular, Multiplatform Lock:Regular}
            Key/Button Diversion        : {Volume Up:Regular, Volume Down:Regular, Mute:Regular, Play/Pause:Regular, Next:Regular, Previous:Regular, Search:Regular, Multiplatform App Switch:Regular, Multiplatform Home:Regular, Multiplatform Menu:Regular, Multiplatform Back:Regular, Multiplatform Insert:Regular, Screen Capture/Print Screen:Regular, Fn Down:Regular, Fn Up:Regular, Multiplatform Lock:Regular}
        10: unknown:1E00           {1E00} V0    hidden 
        11: NEW FN INVERSION       {40A2} V0     
            Fn-swap: disabled
            Fn-swap default: enabled
            Swap Fx function (saved): False
            Swap Fx function        : False
        12: LOCK KEY STATE         {4220} V0     
        13: KEYBOARD DISABLE KEYS  {4521} V0     
            Disable keys (saved): {Caps Lock:False, Scroll Lock:False, Insert:False, Win:False}
            Disable keys        : {Caps Lock:False, Scroll Lock:False, Insert:False, Win:False}
        14: MULTIPLATFORM          {4531} V0     
            Set OS (saved): Linux
            Set OS        : Linux
     Has 16 reprogrammable keys:
         0: Multiplatform Home        , default: MultiPlatform Home          => MultiPlatform Home        
             is FN, FN sensitive, reprogrammable, divertable, pos:4, group:0, group mask:empty
             reporting: default
         1: Multiplatform App Switch  , default: MultiPlatform App Switch    => MultiPlatform App Switch  
             is FN, FN sensitive, reprogrammable, divertable, pos:5, group:0, group mask:empty
             reporting: default
         2: Multiplatform Menu        , default: MultiPlatform Menu          => MultiPlatform Menu        
             is FN, FN sensitive, reprogrammable, divertable, pos:6, group:0, group mask:empty
             reporting: default
         3: Multiplatform Back        , default: MultiPlatform Back          => MultiPlatform Back        
             is FN, FN sensitive, reprogrammable, divertable, pos:7, group:0, group mask:empty
             reporting: default
         4: Previous                  , default: Previous                    => Previous                  
             is FN, FN sensitive, divertable, pos:8, group:0, group mask:empty
             reporting: default
         5: Play/Pause                , default: Play/Pause                  => Play/Pause                
             is FN, FN sensitive, divertable, pos:9, group:0, group mask:empty
             reporting: default
         6: Next                      , default: Next                        => Next                      
             is FN, FN sensitive, divertable, pos:10, group:0, group mask:empty
             reporting: default
         7: Mute                      , default: Mute                        => Mute                      
             is FN, FN sensitive, divertable, pos:11, group:0, group mask:empty
             reporting: default
         8: Volume Down               , default: Volume Down                 => Volume Down               
             is FN, FN sensitive, divertable, pos:12, group:0, group mask:empty
             reporting: default
         9: Volume Up                 , default: Volume Up                   => Volume Up                 
             is FN, FN sensitive, divertable, pos:0, group:0, group mask:empty
             reporting: default
        10: Multiplatform Insert      , default: Switch Language             => Switch Language           
             FN sensitive, reprogrammable, divertable, pos:0, group:0, group mask:empty
             reporting: default
        11: Fn Up                     , default: unknown:0070                => unknown:0070              
             is FN, divertable, pos:0, group:0, group mask:empty
             reporting: default
        12: Fn Down                   , default: unknown:006F                => unknown:006F              
             is FN, divertable, pos:0, group:0, group mask:empty
             reporting: default
        13: Screen Capture/Print Screen, default: Screen Capture              => Screen Capture            
             is FN, reprogrammable, divertable, pos:0, group:0, group mask:empty
             reporting: default
        14: Search                    , default: Search Files                => Search Files              
             is FN, reprogrammable, divertable, pos:0, group:0, group mask:empty
             reporting: default
        15: Multiplatform Lock        , default: WindowsLock                 => WindowsLock               
             is FN, reprogrammable, divertable, pos:0, group:0, group mask:empty
             reporting: default
     Battery: 50%, discharging, next level 20%.
Unifying Receiver
  Device path  : /dev/hidraw0
  USB id       : 046d:C52B
  Serial       : 0FC696D6
    Firmware   : 24.10.B0036
    Bootloader : 00.06
  Has 1 paired device(s) out of a maximum of 6.
  Notifications: wireless (0x000100)
  Device activity counters: 1=233

  1: Wireless Mouse M325
     Device path  : /dev/hidraw4
     WPID         : 400A
     Codename     : M325
     Kind         : mouse
     Protocol     : HID++ 2.0
     Polling rate : 8 ms (125Hz)
     Serial number: D72D97E9
     Model ID:      000000000000
     Unit ID:       00000000
          Firmware: RQM 40.01.B0018
     The power switch is located on the base.
     Supports 22 HID++ 2.0 features:
         0: ROOT                   {0000} V0     
         1: FEATURE SET            {0001} V0     
         2: DEVICE FW VERSION      {0003} V0     
            Firmware: Firmware RQM 40.01.B0018 400A
            Unit ID: 00000000  Model ID: 000000000000  Transport IDs: {}
         3: DEVICE NAME            {0005} V0     
            Name: Wireless Mouse M325
            Kind: mouse
         4: BATTERY STATUS         {1000} V0     
            Battery: 70%, discharging, next level 5%.
         5: unknown:1830           {1830} V0    internal, hidden 
         6: unknown:1850           {1850} V0    internal, hidden 
         7: unknown:1860           {1860} V0    internal, hidden 
         8: unknown:1890           {1890} V0    internal, hidden 
         9: unknown:18A0           {18A0} V0    internal, hidden 
        10: unknown:18C0           {18C0} V0    internal, hidden 
        11: WIRELESS DEVICE STATUS {1D4B} V0     
        12: unknown:1DF3           {1DF3} V0    internal, hidden 
        13: REPROG CONTROLS        {1B00} V0     
        14: REMAINING PAIRING      {1DF0} V0    hidden 
            Remaining Pairings: 117
        15: unknown:1E00           {1E00} V0    hidden 
        16: unknown:1E80           {1E80} V0    internal, hidden 
        17: unknown:1E90           {1E90} V0    internal, hidden 
        18: unknown:1F03           {1F03} V0    internal, hidden 
        19: VERTICAL SCROLLING     {2100} V0     
            Roller type: micro
            Ratchet per turn: 36
            Scroll lines: 0
        20: MOUSE POINTER          {2200} V0     
            DPI: 800
            Acceleration: low
            Override OS ballistics
            No vertical tuning, standard mice
        21: unknown:18B0           {18B0} V0    internal, hidden 
     Battery: 70%, discharging, next level 5%.
```

</details>

- Contents of `~/.config/solaar/config.yaml` (or `~/.config/solaar/config.json` if `~/.config/solaar/config.yaml` not present):

<details>

```
$ cat ~/.config/solaar/config.yaml
- 1.1.10
- _NAME: Wireless Mouse M325
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _serial: D72D97E9
  _wpid: '0440'
- _NAME: Performance Mouse MX
  _sensitive: {dpi-old: false, smooth-scroll: true}
  _serial: 45ACA9D5
  _wpid: 101A
  dpi-old: 136
  side-scroll: true
  smooth-scroll: true
- _NAME: Wireless Mouse M305
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _serial: A0A182F5
  _wpid: 101F
  side-scroll: true
- _NAME: Wireless Mouse M305
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _serial: D52463E9
  _wpid: 101F
  side-scroll: true
- _NAME: Wireless Mouse M305
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _serial: D72D97E9
  _wpid: 101F
- _NAME: Wireless Mouse M510
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _serial: 742A3088
  _wpid: '1025'
  side-scroll: true
- _NAME: Wireless Illuminated Keyboard K800
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _serial: 9CD726D0
  _wpid: '2010'
  fn-swap: false
  hand-detection: true
- _NAME: Wireless Mouse M325
  _absent: [lowres-scroll-mode, hires-smooth-invert, hires-smooth-resolution, hires-scroll-mode, scroll-ratchet, smart-shift, thumb-scroll-invert, thumb-scroll-mode,
    onboard_profiles, report_rate, pointer_speed, dpi, speed-change, backlight, backlight-timed, fn-swap, reprogrammable-keys, persistent-remappable-keys,
    divert-keys, disable-keyboard-keys, crown-smooth, divert-crown, divert-gkeys, m-key-leds, mr-key-led, multiplatform, change-host, gesture2-gestures,
    gesture2-divert, gesture2-params, sidetone, equalizer, adc_power_management]
  _battery: 4096
  _modelId: Wireless Mouse M325
  _sensitive: {hi-res-scroll: true}
  _serial: D72D97E9
  _unitId: '00000000'
  _wpid: 400A
  hi-res-scroll: true
- _NAME: Wireless Mouse M510
  _modelId: '405100000000'
  _sensitive: {lowres-smooth-scroll: true}
  _serial: 1328F9E8
  _unitId: 1328F9E8
  _wpid: '4051'
  divert-keys: {80: 0, 81: 0, 82: 0, 83: 0, 86: 0, 91: 0, 93: 0}
  lowres-smooth-scroll: false
  pointer_speed: 256
  reprogrammable-keys: {80: 80, 81: 81, 82: 82, 83: 83, 86: 86, 91: 91, 93: 93}
- _NAME: MX Master 3 Wireless Mouse
  _modelId: B02340820000
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _serial: 34A6AAD6
  _unitId: 34A6AAD6
  _wpid: '4082'
  divert-keys: {82: 0, 83: 0, 86: 0, 195: 0, 196: 0}
  dpi: 1000
  hires-smooth-invert: false
  hires-smooth-resolution: true
  reprogrammable-keys: {80: 80, 81: 81, 82: 82, 83: 83, 86: 86, 195: 195, 196: 196}
  smart-shift: 0
  thumb-scroll-invert: false
  thumb-scroll-mode: false
- _NAME: K580
  _modelId: B35D408C0000
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _serial: 17AAF9A7
  _unitId: 31AD4E28
  _wpid: 408C
  disable-keyboard-keys: {1: false, 2: false, 4: false, 8: false, 16: false}
  fn-swap: false
  multiplatform: 0
- _NAME: K780 Multi-Device Wireless Keyboard
  _modelId: B33B405B0000
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _serial: 704AA4EF
  _unitId: 704AA4EF
  _wpid: B33B405B0000
  disable-keyboard-keys: {1: false, 2: false, 4: false, 8: false, 16: false}
  divert-keys: {1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 189: 0, 190: 0, 191: 0, 192: 0, 193: 0, 194: 0, 209: 0, 210: 0, 211: 0, 212: 0, 213: 0, 214: 0}
  fn-swap: true
  multiplatform: 0
- _NAME: Bluetooth Multi-Device Keyboard K380
  _modelId: B34200000000
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _serial: 0C010100
  _unitId: 0C010100
  _wpid: B34200000000
  disable-keyboard-keys: {1: false, 4: false, 8: false, 16: false}
  divert-keys: {1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 62: 0, 186: 0, 187: 0, 188: 0, 189: 0, 190: 0, 191: 0, 192: 0, 193: 0, 194: 0}
  fn-swap: true
  multiplatform: 1
- _NAME: Bluetooth Multi-Device Keyboard K380
  _modelId: B34200000000
  _sensitive: {fn-swap: false}
  _serial: 5C000000
  _unitId: 5C000000
  _wpid: B34200000000
  change-host: null
  disable-keyboard-keys: {1: false, 4: false, 8: false, 16: false}
  divert-keys: {1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 62: 0, 186: 0, 187: 0, 188: 0, 189: 0, 190: 0, 191: 0, 192: 0, 193: 0, 194: 0}
  fn-swap: false
  multiplatform: 1
- _NAME: Bluetooth Multi-Device Keyboard K380
  _modelId: B34200000000
  _sensitive: {change-host: ignore, fn-swap: false}
  _serial: 5C000100
  _unitId: 5C000100
  _wpid: B34200000000
  disable-keyboard-keys: {1: false, 4: false, 8: false, 16: false}
  divert-keys: {1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 62: 0, 186: 0, 187: 0, 188: 0, 189: 0, 190: 0, 191: 0, 192: 0, 193: 0, 194: 0}
  fn-swap: false
  multiplatform: 1
- _NAME: Bluetooth Multi-Device Keyboard K380
  _absent: [hi-res-scroll, lowres-scroll-mode, hires-smooth-invert, hires-smooth-resolution, hires-scroll-mode, scroll-ratchet, smart-shift, thumb-scroll-invert,
    thumb-scroll-mode, onboard_profiles, report_rate, pointer_speed, dpi, speed-change, backlight, backlight-timed, reprogrammable-keys, persistent-remappable-keys,
    crown-smooth, divert-crown, divert-gkeys, m-key-leds, mr-key-led, gesture2-gestures, gesture2-divert, gesture2-params, sidetone, equalizer, adc_power_management]
  _battery: 4096
  _modelId: B34200000000
  _sensitive: {change-host: false, divert-keys: false, fn-swap: false, multiplatform: false}
  _serial: DC000000
  _unitId: DC000000
  _wpid: B34200000000
  change-host: null
  disable-keyboard-keys: {1: false, 4: false, 8: false, 16: false}
  divert-keys: {1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 62: 0, 186: 0, 187: 0, 188: 0, 189: 0, 190: 0, 191: 0, 192: 0, 193: 0, 194: 0}
  fn-swap: false
  multiplatform: 1
- _NAME: Bluetooth Multi-Device Keyboard K380
  _modelId: B34200000000
  _sensitive: {fn-swap: false}
  _serial: DC000100
  _unitId: DC000100
  _wpid: B34200000000
  disable-keyboard-keys: {1: false, 4: false, 8: false, 16: false}
  divert-keys: {1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 62: 0, 186: 0, 187: 0, 188: 0, 189: 0, 190: 0, 191: 0, 192: 0, 193: 0, 194: 0}
  fn-swap: false
  multiplatform: 1
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: M720 Triathlon Multi-Device Mouse
  _modelId: B015405E0000
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _serial: B73C97D9
  _unitId: 5648447B
  _wpid: 405E
  divert-keys: {82: 0, 83: 0, 86: 0, 91: 0, 93: 0, 208: 0}
  hires-scroll-mode: false
  hires-smooth-invert: false
  hires-smooth-resolution: true
  pointer_speed: 256
  reprogrammable-keys: {80: 80, 81: 81, 82: 82, 83: 83, 86: 86, 91: 91, 93: 93, 208: 208}
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {fn-swap: false}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Wireless Mouse M525
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _serial: A708D10F
  _unitId: '00000000'
  _wpid: '4013'
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _modelId: '000000000000'
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: Illuminated Keyboard K810
  _absent: [hi-res-scroll, lowres-scroll-mode, hires-smooth-invert, hires-smooth-resolution, hires-scroll-mode, scroll-ratchet, smart-shift, thumb-scroll-invert,
    thumb-scroll-mode, onboard_profiles, report_rate, pointer_speed, dpi, speed-change, backlight, backlight-timed, reprogrammable-keys, persistent-remappable-keys,
    divert-keys, disable-keyboard-keys, crown-smooth, divert-crown, divert-gkeys, m-key-leds, mr-key-led, multiplatform, change-host, gesture2-gestures,
    gesture2-divert, gesture2-params, sidetone, equalizer, adc_power_management]
  _battery: 4096
  _modelId: Illuminated Keyboard K810
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _unitId: '00000000'
  fn-swap: false
- _NAME: MX Keys Keyboard
  _modelId: B35B408A0000
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _serial: 222936BA
  _unitId: 222936BA
  _wpid: 408A
  backlight: true
  change-host: null
  disable-keyboard-keys: {1: false, 2: false, 4: false, 8: false, 16: false}
  divert-keys: {10: 0, 110: 0, 111: 0, 191: 0, 199: 0, 200: 0, 209: 0, 210: 0, 211: 0, 224: 0, 225: 0, 226: 0, 227: 0, 228: 0, 229: 0, 230: 0, 231: 0, 232: 0,
    233: 0, 234: 0, 235: 0, 236: 0}
  fn-swap: true
  multiplatform: 0
- _NAME: Wireless Mouse M325
  _modelId: 400A00000000
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _serial: 5EEF66AB
  _unitId: 5EEF66AB
  _wpid: 400A
  hi-res-scroll: null
- _NAME: 'Wireless Mouse  '
  _modelId: 'Wireless Mouse  '
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _serial: '00000000'
  _unitId: '00000000'
  _wpid: '4091'
- _NAME: Wireless Keyboard MK270
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _serial: '00000000'
  _wpid: '4023'
  fn-swap: null
- _NAME: Wireless Mouse M305
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _serial: A708D10F
  _wpid: 101F
  side-scroll: null
- _NAME: Performance Mouse MX
  _sensitive: {hires-scroll-mode: ignore, hires-smooth-invert: ignore, hires-smooth-resolution: ignore}
  _serial: 444F3E5B
  _wpid: 101A
  dpi-old: 137
  side-scroll: true
  smooth-scroll: true
```

</details>


- Errors or warrnings from Solaar:
Output of solaar -ddd when selecting the M325, then clicking on the icon next to the switch for hi res scrolling:

<details>

```
2023-12-13 10:38:26,482,482    DEBUG [MainThread] solaar.ui.icons: battery icon for 70:False = battery-good
2023-12-13 10:38:26,483,483    DEBUG [AsyncUI] logitech_receiver.settings: hi-res-scroll: cached value False on <Device(1,400A,Wireless Mouse M325,D72D97E9)>
2023-12-13 10:38:31,622,622    DEBUG [AsyncUI] logitech_receiver.settings: hi-res-scroll: write False to <Device(1,400A,Wireless Mouse M325,D72D97E9)>
2023-12-13 10:38:31,623,623    DEBUG [AsyncUI] logitech_receiver.settings: BooleanValidator: prepare_write(False, None) => b'\x00'
2023-12-13 10:38:31,623,623    DEBUG [AsyncUI] logitech_receiver.settings: hi-res-scroll: prepare write(False) => b'\x00'
2023-12-13 10:38:31,624,624    DEBUG [AsyncUI] logitech_receiver.base: (23) <= w[11 01 000A 21200000000000000000000000000000]
2023-12-13 10:38:31,725,725    DEBUG [AsyncUI] logitech_receiver.base: (23) => r[11 01 000A 00000000000000000000000000000000]
2023-12-13 10:38:31,725,725    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (20) => r[11 01 000A 00000000000000000000000000000000]
```

</details>

**Describe the bug**
Cannot toggle "Scroll Wheel High Resolution" on the M325

**To Reproduce**
Steps to reproduce the behavior:
- Try to toggle "Scroll Wheel High Resolution"
- An exclamation mark appears, and a tooltip on mouse over says "Read/write operation failed"

**Screenshots**
![image](https://github.com/pwr-Solaar/Solaar/assets/5856745/27e9292d-b1fa-4dfc-868d-131c4040d5d8)


**Additional context**
The mouse works fine otherwise.



Discussion:
Is this error repeatable?  The debug output you provided doesn't seem to have an error in it.
Yes this is very easily repeatable. I also noticed there was nothing in the console with `-dd`, let alone an error, so I tried with `-ddd` to at least get something.
If there is an error, there should be some messages in the output of `solaar -ddd`, but the interaction with the device shown above appears to be fine.   That said, maybe there is a bug in the Solaar code that is misinterpreting the interaction.

Please try `solaar -ddd` again and capture the debug output when you switch the resolution.   Also, try switching the resolution several times as that may produce more debug output.
Your config.yaml file is very big, with lots of devices.    Do you have (or had) lots of devices?   There are multiple messages for a K810, which appears to be a bug so I've opened #2202 for that.
The output of `solaar -ddd` I provided was with a toggle of the 'lock' button. Here's another output but with multiple toggles:

<details>

```
2023-12-13 12:37:56,964,964    DEBUG [MainThread] solaar.ui.icons: battery icon for 70:False = battery-good
2023-12-13 12:37:56,966,966    DEBUG [AsyncUI] logitech_receiver.settings: hi-res-scroll: cached value False on <Device(1,400A,Wireless Mouse M325,D72D97E9)>
2023-12-13 12:37:58,563,563    DEBUG [AsyncUI] logitech_receiver.settings: hi-res-scroll: write False to <Device(1,400A,Wireless Mouse M325,D72D97E9)>
2023-12-13 12:37:58,563,563    DEBUG [AsyncUI] logitech_receiver.settings: BooleanValidator: prepare_write(False, None) => b'\x00'
2023-12-13 12:37:58,563,563    DEBUG [AsyncUI] logitech_receiver.settings: hi-res-scroll: prepare write(False) => b'\x00'
2023-12-13 12:37:58,564,564    DEBUG [AsyncUI] logitech_receiver.base: (23) <= w[11 01 000F 21200000000000000000000000000000]
2023-12-13 12:37:58,578,578    DEBUG [ReceiverListener:hidraw0] logitech_receiver.base: (20) => r[11 01 000F 00000000000000000000000000000000]
2023-12-13 12:37:58,578,578    DEBUG [AsyncUI] logitech_receiver.base: (23) => r[11 01 000F 00000000000000000000000000000000]
2023-12-13 12:37:59,028,028    DEBUG [AsyncUI] logitech_receiver.settings: hi-res-scroll: write False to <Device(1,400A,Wireless Mouse M325,D72D97E9)>
2023-12-13 12:37:59,028,028    DEBUG [AsyncUI] logitech_receiver.settings: BooleanValidator: prepare_write(False, None) => b'\x00'
2023-12-13 12:37:59,028,028    DEBUG [AsyncUI] logitech_receiver.settings: hi-res-scroll: prepare write(False) => b'\x00'
2023-12-13 12:37:59,339,339    DEBUG [AsyncUI] logitech_receiver.settings: hi-res-scroll: write False to <Device(1,400A,Wireless Mouse M325,D72D97E9)>
2023-12-13 12:37:59,339,339    DEBUG [AsyncUI] logitech_receiver.settings: BooleanValidator: prepare_write(False, None) => b'\x00'
2023-12-13 12:37:59,340,340    DEBUG [AsyncUI] logitech_receiver.settings: hi-res-scroll: prepare write(False) => b'\x00'
2023-12-13 12:37:59,641,641    DEBUG [AsyncUI] logitech_receiver.settings: hi-res-scroll: write False to <Device(1,400A,Wireless Mouse M325,D72D97E9)>
2023-12-13 12:37:59,641,641    DEBUG [AsyncUI] logitech_receiver.settings: BooleanValidator: prepare_write(False, None) => b'\x00'
2023-12-13 12:37:59,641,641    DEBUG [AsyncUI] logitech_receiver.settings: hi-res-scroll: prepare write(False) => b'\x00'
2023-12-13 12:37:59,946,946    DEBUG [AsyncUI] logitech_receiver.settings: hi-res-scroll: write False to <Device(1,400A,Wireless Mouse M325,D72D97E9)>
2023-12-13 12:37:59,946,946    DEBUG [AsyncUI] logitech_receiver.settings: BooleanValidator: prepare_write(False, None) => b'\x00'
2023-12-13 12:37:59,946,946    DEBUG [AsyncUI] logitech_receiver.settings: hi-res-scroll: prepare write(False) => b'\x00'
2023-12-13 12:38:00,262,262    DEBUG [AsyncUI] logitech_receiver.settings: hi-res-scroll: write False to <Device(1,400A,Wireless Mouse M325,D72D97E9)>
2023-12-13 12:38:00,262,262    DEBUG [AsyncUI] logitech_receiver.settings: BooleanValidator: prepare_write(False, None) => b'\x00'
2023-12-13 12:38:00,262,262    DEBUG [AsyncUI] logitech_receiver.settings: hi-res-scroll: prepare write(False) => b'\x00'
2023-12-13 12:38:00,557,557    DEBUG [AsyncUI] logitech_receiver.settings: hi-res-scroll: write False to <Device(1,400A,Wireless Mouse M325,D72D97E9)>
2023-12-13 12:38:00,557,557    DEBUG [AsyncUI] logitech_receiver.settings: BooleanValidator: prepare_write(False, None) => b'\x00'
2023-12-13 12:38:00,557,557    DEBUG [AsyncUI] logitech_receiver.settings: hi-res-scroll: prepare write(False) => b'\x00'
2023-12-13 12:38:00,866,866    DEBUG [AsyncUI] logitech_receiver.settings: hi-res-scroll: write False to <Device(1,400A,Wireless Mouse M325,D72D97E9)>
2023-12-13 12:38:00,866,866    DEBUG [AsyncUI] logitech_receiver.settings: BooleanValidator: prepare_write(False, None) => b'\x00'
2023-12-13 12:38:00,866,866    DEBUG [AsyncUI] logitech_receiver.settings: hi-res-scroll: prepare write(False) => b'\x00'
```

</details>
Something weird is definitely going on here.   Is that first toggle (of the resolution, not the "lock", I assume) when you see the error?
Yes, before the first toggle, there is no error:

![image](https://github.com/pwr-Solaar/Solaar/assets/5856745/4d87ad6c-85a8-4c6b-891e-6bfed9bc03e4)

The toggle switch is disabled now for some reason so I can't use it. I remember it wasn't before. It must have gotten disabled when I fiddled with the lock button next to it. anyways, as soon as I hut the lock button, the exclamation mark appears:

![image](https://github.com/pwr-Solaar/Solaar/assets/5856745/d635c22b-1b9d-4be3-bb7f-7ec67d573d8b)

And the lock button cycles through only "lock" and "ignore".
The odd thing is that the M325 doesn't have a feature that supports high resolution as far as I can tell.   I suspect that your config.yaml file has some incorrect information.   Please stop Solaar, remove that file (which will remove any current settings for your devices), and try Solaar again.
I have stopped Solaar, removed the config file, started Solaar again. The toggle switch is visible, and enabled:

![image](https://github.com/pwr-Solaar/Solaar/assets/5856745/e7112ec0-edc4-4315-a40c-b958442bcd0b)

If I  toggle the switch, the same error occurs (no change).

![image](https://github.com/pwr-Solaar/Solaar/assets/5856745/a72c4985-a733-4a31-a787-c315fffe5a5b)

Here's the output of `-ddd`:

<details>

```
2023-12-13 14:26:02,719,719    DEBUG [AsyncUI] logitech_receiver.settings: hi-res-scroll: cached value True on <Device(1,400A,Wireless Mouse M325,D72D97E9)>
2023-12-13 14:26:08,917,917    DEBUG [AsyncUI] logitech_receiver.settings: hi-res-scroll: write False to <Device(1,400A,Wireless Mouse M325,D72D97E9)>
2023-12-13 14:26:08,918,918    DEBUG [AsyncUI] logitech_receiver.settings: BooleanValidator: prepare_write(False, None) => b'\x00'
2023-12-13 14:26:08,918,918    DEBUG [AsyncUI] logitech_receiver.settings: hi-res-scroll: prepare write(False) => b'\x00'
```
</details>

Anyways, if the M325 does not support hi res scrolling, then I guess it's just a display problem and nothing in Solaar will fix my real underlying problem: the scrolling is way too fast ;)
Strange.  Please try that again and then quit out of Solaar.    Post the entire output of `solaar -ddd` and the contents of your config.yaml file.
`solaar -ddd > stdout.txt 2> stderr.txt`
[stderr.txt](https://github.com/pwr-Solaar/Solaar/files/13664925/stderr.txt)
[stdout.txt](https://github.com/pwr-Solaar/Solaar/files/13664926/stdout.txt)
[config.zip](https://github.com/pwr-Solaar/Solaar/files/13664943/config.zip)
(sorry I had to zip the yaml file. Github doesn't like yaml files...)

- Launch solaar
- Select M325
- Click on the hi res scrolling toggle switch
- Close Solaar window
- CTRL+c
Your problem occurs because Solaar has an incorrect feature for the M325.   

A line in lib/logitech_receiver/descriptors.py should read
```
_D('Wireless Mouse M325', codename='M325', protocol=2.0, wpid='400A')
```
but instead it lists a setting the M325 does not have.

You can make this change yourself if you can access the Solaar code.   I'll put in a PR as well.


Resolving patch:
diff --git a/lib/logitech_receiver/descriptors.py b/lib/logitech_receiver/descriptors.py
--- a/lib/logitech_receiver/descriptors.py
+++ b/lib/logitech_receiver/descriptors.py
@@ -266,7 +266,7 @@ class _PerformanceMXDpi(_ST.RegisterDpi):
     registers=(_R.battery_status, _R.three_leds,), settings=[_ST.RegisterSmoothScroll, _ST.RegisterSideScroll])
 _D('Couch Mouse M515', codename='M515', protocol=2.0, wpid='4007')
 _D('Wireless Mouse M175', codename='M175', protocol=2.0, wpid='4008')
-_D('Wireless Mouse M325', codename='M325', protocol=2.0, wpid='400A', settings=[_ST.HiResScroll])
+_D('Wireless Mouse M325', codename='M325', protocol=2.0, wpid='400A')
 _D('Wireless Mouse M525', codename='M525', protocol=2.0, wpid='4013')
 _D('Wireless Mouse M345', codename='M345', protocol=2.0, wpid='4017')
 _D('Wireless Mouse M187', codename='M187', protocol=2.0, wpid='4019')


Test patch: