pwr-Solaar / Solaar

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

Equalizer doesn't do anything #2546

Open KubaCeTe opened 2 days ago

KubaCeTe commented 2 days ago

Information

G733 Gaming Headset
     Device path  : /dev/hidraw5
     USB id       : 046d:0AB5
     Codename     : G733 Headset
     Kind         : headset
     Protocol     : HID++ 4.2
     Serial number: 
     Model ID:      0AB500000000
     Unit ID:       FFFFFFFF
          Firmware: U1  37.00.B0131
     Supports 9 HID++ 2.0 features:
         0: ROOT                   {0000} V0     
         1: FEATURE SET            {0001} V0     
         2: DEVICE FW VERSION      {0003} V2     
            Firmware: Firmware U1  37.00.B0131 0AB5
            Unit ID: FFFFFFFF  Model ID: 0AB500000000  Transport IDs: {'usbid': '0AB5'}
         3: DEVICE NAME            {0005} V0     
            Name: G733 Gaming Headset
            Kind: None
         4: COLOR LED EFFECTS      {8070} V3     
            LED Control (saved): Solaar
            LED Control        : Device
            LEDs Logo (saved): !LEDEffectSetting {ID: 0x0}
            LEDs Logo        : !LEDEffectSetting {ID: 0}
            LEDs Primary (saved): !LEDEffectSetting {ID: 0x0, color: 0xffa500, intensity: 0x0, period: 0x64, ramp: 0x0, speed: 0x0}
            LEDs Primary        : !LEDEffectSetting {ID: 1, color: 0x0, ramp: 0x0}
         5: GKEY                   {8010} V0     
            Divert G and M Keys (saved): False
            Divert G and M Keys        : False
         6: EQUALIZER              {8310} V1     
            Equalizer (saved): {0: 10, 1: 9, 2: 8, 3: 6, 4: 5, 5: 4, 6: 2, 7: 0, 8: -1, 9: 2}
            Equalizer        : {0: 10, 1: 9, 2: 8, 3: 6, 4: 5, 5: 4, 6: 2, 7: 0, 8: -1, 9: 2}
         7: SIDETONE               {8300} V0     
            Sidetone (saved): 0
            Sidetone        : 0
         8: ADC MEASUREMENT        {1F20} V4     
            Battery: 90% 4127mV , discharging.
            Power Management (saved): 74
            Power Management        : 74
     Battery: 90% 4127mV , discharging.

KubaCeTe commented 2 days ago

TMP 2024-07-03 15:13:27,486,486 WARNING [MainThread] logitech_receiver.diversion: rules cannot access modifier keys in Wayland, accessing process only works on GNOME with Solaar Gnome extension installed 2024-07-03 15:13:28,102,102 WARNING [MainThread] hidapi.udev: Report Descriptor not processed for DEVICE /dev/hidraw0 BID 0003 VID 00001532 PID 0000008A: Expecting 2 usages but got 1 2024-07-03 15:13:28,116,116 WARNING [MainThread] hidapi.udev: Report Descriptor not processed for DEVICE /dev/hidraw3 BID 0003 VID 00000C45 PID 00005004: Expecting 64 usages but got 1 2024-07-03 15:13:28,117,117 WARNING [MainThread] hidapi.udev: Report Descriptor not processed for DEVICE /dev/hidraw4 BID 0003 VID 00000C45 PID 00005004: Expecting 120 usages but got 109 2024-07-03 15:13:28,117,117 WARNING [MainThread] hidapi.udev: Report Descriptor not processed for DEVICE /dev/hidraw5 BID 0003 VID 0000046D PID 00000AB5: unpack requires a buffer of 2 bytes

pfps commented 2 days ago

I'm assuming that you have changed some of the settings and nothing has happened to the sound from your headset.

Those warnings are from other devices that have unexpected HID report descriptors and do not affect Solaar.

It looks as if Solaar is changing the equalizer values correctly, given the output from solaar show. Try changing a value and then run solaar show again to see if any of the non-saved values change.

Then run solaar -ddd and post the output as you change the equalizer settings.

pfps commented 2 days ago

The next step would be to use hidconsole to send commands to the device to see whether the equalizer settings make any difference, but I'll have to tell you exactly what commands to send so do the above steps first.

KubaCeTe commented 2 days ago

With solaar show the values change after I move the slider. Here is the solaar -ddd

024-07-03 15:41:00,447,447    DEBUG [AsyncUI] logitech_receiver.settings: equalizer: range field setting write key 0 value 11 to <Device(255,0AB5,G733 Gaming Headset,)>
2024-07-03 15:41:00,447,447    DEBUG [AsyncUI] logitech_receiver.settings: equalizer: range field setting write {0: 11, 1: -12, 2: -12, 3: -12, 4: -12, 5: -12, 6: -12, 7: -12, 8: -12, 9: -12} to <Device(255,0AB5,G733 Gaming Headset,)>
2024-07-03 15:41:00,447,447    DEBUG [AsyncUI] logitech_receiver.settings: equalizer: range field setting prepare map write({0: 11, 1: -12, 2: -12, 3: -12, 4: -12, 5: -12, 6: -12, 7: -12, 8: -12, 9: -12}) => b'\x02\x0b\xf4\xf4\xf4\xf4\xf4\xf4\xf4\xf4\xf4'
2024-07-03 15:41:00,448,448     INFO [AsyncUI] hidapi.udev: OPEN PATH /dev/hidraw5
2024-07-03 15:41:00,448,448    DEBUG [AsyncUI] logitech_receiver.base: (26) <= w[11 FF 0638 020BF4F4F4F4F4F4F4F4F40000000000]
2024-07-03 15:41:00,505,505    DEBUG [AsyncUI] logitech_receiver.base: (26) => r[11 FF 0638 020BF4F4F4F4F4F4F4F4F40000000000]
2024-07-03 15:41:00,505,505    DEBUG [ReceiverListener:hidraw5] logitech_receiver.base: (22) => r[11 FF 0638 020BF4F4F4F4F4F4F4F4F40000000000]
2024-07-03 15:41:01,360,360    DEBUG [AsyncUI] logitech_receiver.settings: equalizer: range field setting write key 1 value 12 to <Device(255,0AB5,G733 Gaming Headset,)>
2024-07-03 15:41:01,361,361    DEBUG [AsyncUI] logitech_receiver.settings: equalizer: range field setting write {0: 11, 1: 12, 2: -12, 3: -12, 4: -12, 5: -12, 6: -12, 7: -12, 8: -12, 9: -12} to <Device(255,0AB5,G733 Gaming Headset,)>
2024-07-03 15:41:01,361,361    DEBUG [AsyncUI] logitech_receiver.settings: equalizer: range field setting prepare map write({0: 11, 1: 12, 2: -12, 3: -12, 4: -12, 5: -12, 6: -12, 7: -12, 8: -12, 9: -12}) => b'\x02\x0b\x0c\xf4\xf4\xf4\xf4\xf4\xf4\xf4\xf4'
2024-07-03 15:41:01,361,361    DEBUG [AsyncUI] logitech_receiver.base: (26) <= w[11 FF 0638 020B0CF4F4F4F4F4F4F4F40000000000]
2024-07-03 15:41:01,418,418    DEBUG [ReceiverListener:hidraw5] logitech_receiver.base: (22) => r[11 FF 0638 020B0CF4F4F4F4F4F4F4F40000000000]
2024-07-03 15:41:01,418,418    DEBUG [AsyncUI] logitech_receiver.base: (26) => r[11 FF 0638 020B0CF4F4F4F4F4F4F4F40000000000]
2024-07-03 15:41:02,228,228    DEBUG [AsyncUI] logitech_receiver.settings: equalizer: range field setting write key 2 value 12 to <Device(255,0AB5,G733 Gaming Headset,)>
2024-07-03 15:41:02,228,228    DEBUG [AsyncUI] logitech_receiver.settings: equalizer: range field setting write {0: 11, 1: 12, 2: 12, 3: -12, 4: -12, 5: -12, 6: -12, 7: -12, 8: -12, 9: -12} to <Device(255,0AB5,G733 Gaming Headset,)>
2024-07-03 15:41:02,228,228    DEBUG [AsyncUI] logitech_receiver.settings: equalizer: range field setting prepare map write({0: 11, 1: 12, 2: 12, 3: -12, 4: -12, 5: -12, 6: -12, 7: -12, 8: -12, 9: -12}) => b'\x02\x0b\x0c\x0c\xf4\xf4\xf4\xf4\xf4\xf4\xf4'
2024-07-03 15:41:02,229,229    DEBUG [AsyncUI] logitech_receiver.base: (26) <= w[11 FF 063A 020B0C0CF4F4F4F4F4F4F40000000000]
2024-07-03 15:41:02,286,286    DEBUG [AsyncUI] logitech_receiver.base: (26) => r[11 FF 063A 020B0C0CF4F4F4F4F4F4F40000000000]
2024-07-03 15:41:02,286,286    DEBUG [ReceiverListener:hidraw5] logitech_receiver.base: (22) => r[11 FF 063A 020B0C0CF4F4F4F4F4F4F40000000000]
2024-07-03 15:41:03,731,731    DEBUG [AsyncUI] logitech_receiver.settings: equalizer: range field setting write key 3 value 12 to <Device(255,0AB5,G733 Gaming Headset,)>
2024-07-03 15:41:03,731,731    DEBUG [AsyncUI] logitech_receiver.settings: equalizer: range field setting write {0: 11, 1: 12, 2: 12, 3: 12, 4: -12, 5: -12, 6: -12, 7: -12, 8: -12, 9: -12} to <Device(255,0AB5,G733 Gaming Headset,)>
2024-07-03 15:41:03,731,731    DEBUG [AsyncUI] logitech_receiver.settings: equalizer: range field setting prepare map write({0: 11, 1: 12, 2: 12, 3: 12, 4: -12, 5: -12, 6: -12, 7: -12, 8: -12, 9: -12}) => b'\x02\x0b\x0c\x0c\x0c\xf4\xf4\xf4\xf4\xf4\xf4'
2024-07-03 15:41:03,731,731    DEBUG [AsyncUI] logitech_receiver.base: (26) <= w[11 FF 0639 020B0C0C0CF4F4F4F4F4F40000000000]
2024-07-03 15:41:03,791,791    DEBUG [AsyncUI] logitech_receiver.base: (26) => r[11 FF 0639 020B0C0C0CF4F4F4F4F4F40000000000]
2024-07-03 15:41:03,791,791    DEBUG [ReceiverListener:hidraw5] logitech_receiver.base: (22) => r[11 FF 0639 020B0C0C0CF4F4F4F4F4F40000000000]
2024-07-03 15:41:04,733,733    DEBUG [AsyncUI] logitech_receiver.settings: equalizer: range field setting write key 4 value 12 to <Device(255,0AB5,G733 Gaming Headset,)>
2024-07-03 15:41:04,733,733    DEBUG [AsyncUI] logitech_receiver.settings: equalizer: range field setting write {0: 11, 1: 12, 2: 12, 3: 12, 4: 12, 5: -12, 6: -12, 7: -12, 8: -12, 9: -12} to <Device(255,0AB5,G733 Gaming Headset,)>
2024-07-03 15:41:04,733,733    DEBUG [AsyncUI] logitech_receiver.settings: equalizer: range field setting prepare map write({0: 11, 1: 12, 2: 12, 3: 12, 4: 12, 5: -12, 6: -12, 7: -12, 8: -12, 9: -12}) => b'\x02\x0b\x0c\x0c\x0c\x0c\xf4\xf4\xf4\xf4\xf4'
2024-07-03 15:41:04,733,733    DEBUG [AsyncUI] logitech_receiver.base: (26) <= w[11 FF 063F 020B0C0C0C0CF4F4F4F4F40000000000]
2024-07-03 15:41:04,790,790    DEBUG [ReceiverListener:hidraw5] logitech_receiver.base: (22) => r[11 FF 063F 020B0C0C0C0CF4F4F4F4F40000000000]
2024-07-03 15:41:04,790,790    DEBUG [AsyncUI] logitech_receiver.base: (26) => r[11 FF 063F 020B0C0C0C0CF4F4F4F4F40000000000]
2024-07-03 15:41:05,449,449     INFO [MainThread] solaar.configuration: saved ['1.1.11', {'_NAME': 'G733 Gaming Headset', '_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', 'report_rate_extended', 'pointer_speed', 'dpi', 'speed-change', 'backlight', 'backlight_level', 'backlight_duration_hands_out', 'backlight_duration_hands_in', 'backlight_duration_powered', 'backlight-timed', 'fn-swap', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params'], '_battery': 7968, '_modelId': '0AB500000000', '_sensitive': {'adc_power_management': False, 'divert-gkeys': False, 'equalizer': True, 'hires-scroll-mode': 'ignore', 'hires-smooth-invert': 'ignore', 'hires-smooth-resolution': 'ignore', 'led_control': False, 'led_zone_1': False, 'sidetone': False}, '_unitId': 'FFFFFFFF', 'adc_power_management': 74, 'divert-gkeys': False, 'equalizer': {0: 11, 1: 12, 2: 12, 3: 12, 4: 12, 5: -12, 6: -12, 7: -12, 8: -12, 9: -12}, 'led_control': 1, 'led_zone_1': <logitech_receiver.hidpp20.LEDEffectSetting object at 0x7f4dfeb5c440>, 'led_zone_2': <logitech_receiver.hidpp20.LEDEffectSetting object at 0x7f4dfeb5c470>, 'sidetone': 0}] to /home/kubacete/.config/solaar/config.yaml
2024-07-03 15:41:05,665,665    DEBUG [AsyncUI] logitech_receiver.settings: equalizer: range field setting write key 5 value 12 to <Device(255,0AB5,G733 Gaming Headset,)>
2024-07-03 15:41:05,665,665    DEBUG [AsyncUI] logitech_receiver.settings: equalizer: range field setting write {0: 11, 1: 12, 2: 12, 3: 12, 4: 12, 5: 12, 6: -12, 7: -12, 8: -12, 9: -12} to <Device(255,0AB5,G733 Gaming Headset,)>
2024-07-03 15:41:05,665,665    DEBUG [AsyncUI] logitech_receiver.settings: equalizer: range field setting prepare map write({0: 11, 1: 12, 2: 12, 3: 12, 4: 12, 5: 12, 6: -12, 7: -12, 8: -12, 9: -12}) => b'\x02\x0b\x0c\x0c\x0c\x0c\x0c\xf4\xf4\xf4\xf4'
2024-07-03 15:41:05,666,666    DEBUG [AsyncUI] logitech_receiver.base: (26) <= w[11 FF 063F 020B0C0C0C0C0CF4F4F4F40000000000]
2024-07-03 15:41:05,725,725    DEBUG [ReceiverListener:hidraw5] logitech_receiver.base: (22) => r[11 FF 063F 020B0C0C0C0C0CF4F4F4F40000000000]
2024-07-03 15:41:05,725,725    DEBUG [AsyncUI] logitech_receiver.base: (26) => r[11 FF 063F 020B0C0C0C0C0CF4F4F4F40000000000]
2024-07-03 15:41:06,562,562    DEBUG [AsyncUI] logitech_receiver.settings: equalizer: range field setting write key 6 value 12 to <Device(255,0AB5,G733 Gaming Headset,)>
2024-07-03 15:41:06,562,562    DEBUG [AsyncUI] logitech_receiver.settings: equalizer: range field setting write {0: 11, 1: 12, 2: 12, 3: 12, 4: 12, 5: 12, 6: 12, 7: -12, 8: -12, 9: -12} to <Device(255,0AB5,G733 Gaming Headset,)>
2024-07-03 15:41:06,562,562    DEBUG [AsyncUI] logitech_receiver.settings: equalizer: range field setting prepare map write({0: 11, 1: 12, 2: 12, 3: 12, 4: 12, 5: 12, 6: 12, 7: -12, 8: -12, 9: -12}) => b'\x02\x0b\x0c\x0c\x0c\x0c\x0c\x0c\xf4\xf4\xf4'
2024-07-03 15:41:06,562,562    DEBUG [AsyncUI] logitech_receiver.base: (26) <= w[11 FF 063E 020B0C0C0C0C0C0CF4F4F40000000000]
2024-07-03 15:41:06,616,616    DEBUG [AsyncUI] logitech_receiver.base: (26) => r[11 FF 063E 020B0C0C0C0C0C0CF4F4F40000000000]
2024-07-03 15:41:06,616,616    DEBUG [ReceiverListener:hidraw5] logitech_receiver.base: (22) => r[11 FF 063E 020B0C0C0C0C0C0CF4F4F40000000000]
2024-07-03 15:41:07,403,403    DEBUG [AsyncUI] logitech_receiver.settings: equalizer: range field setting write key 7 value 12 to <Device(255,0AB5,G733 Gaming Headset,)>
2024-07-03 15:41:07,403,403    DEBUG [AsyncUI] logitech_receiver.settings: equalizer: range field setting write {0: 11, 1: 12, 2: 12, 3: 12, 4: 12, 5: 12, 6: 12, 7: 12, 8: -12, 9: -12} to <Device(255,0AB5,G733 Gaming Headset,)>
2024-07-03 15:41:07,403,403    DEBUG [AsyncUI] logitech_receiver.settings: equalizer: range field setting prepare map write({0: 11, 1: 12, 2: 12, 3: 12, 4: 12, 5: 12, 6: 12, 7: 12, 8: -12, 9: -12}) => b'\x02\x0b\x0c\x0c\x0c\x0c\x0c\x0c\x0c\xf4\xf4'
2024-07-03 15:41:07,403,403    DEBUG [AsyncUI] logitech_receiver.base: (26) <= w[11 FF 063D 020B0C0C0C0C0C0C0CF4F40000000000]
2024-07-03 15:41:07,457,457    DEBUG [ReceiverListener:hidraw5] logitech_receiver.base: (22) => r[11 FF 063D 020B0C0C0C0C0C0C0CF4F40000000000]
2024-07-03 15:41:07,457,457    DEBUG [AsyncUI] logitech_receiver.base: (26) => r[11 FF 063D 020B0C0C0C0C0C0C0CF4F40000000000]
2024-07-03 15:41:08,324,324    DEBUG [AsyncUI] logitech_receiver.settings: equalizer: range field setting write key 8 value 11 to <Device(255,0AB5,G733 Gaming Headset,)>
2024-07-03 15:41:08,324,324    DEBUG [AsyncUI] logitech_receiver.settings: equalizer: range field setting write {0: 11, 1: 12, 2: 12, 3: 12, 4: 12, 5: 12, 6: 12, 7: 12, 8: 11, 9: -12} to <Device(255,0AB5,G733 Gaming Headset,)>
2024-07-03 15:41:08,324,324    DEBUG [AsyncUI] logitech_receiver.settings: equalizer: range field setting prepare map write({0: 11, 1: 12, 2: 12, 3: 12, 4: 12, 5: 12, 6: 12, 7: 12, 8: 11, 9: -12}) => b'\x02\x0b\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0b\xf4'
2024-07-03 15:41:08,324,324    DEBUG [AsyncUI] logitech_receiver.base: (26) <= w[11 FF 0638 020B0C0C0C0C0C0C0C0BF40000000000]
2024-07-03 15:41:08,379,379    DEBUG [AsyncUI] logitech_receiver.base: (26) => r[11 FF 0638 020B0C0C0C0C0C0C0C0BF40000000000]
2024-07-03 15:41:08,379,379    DEBUG [ReceiverListener:hidraw5] logitech_receiver.base: (22) => r[11 FF 0638 020B0C0C0C0C0C0C0C0BF40000000000]
2024-07-03 15:41:09,165,165    DEBUG [AsyncUI] logitech_receiver.settings: equalizer: range field setting write key 9 value 12 to <Device(255,0AB5,G733 Gaming Headset,)>
2024-07-03 15:41:09,165,165    DEBUG [AsyncUI] logitech_receiver.settings: equalizer: range field setting write {0: 11, 1: 12, 2: 12, 3: 12, 4: 12, 5: 12, 6: 12, 7: 12, 8: 11, 9: 12} to <Device(255,0AB5,G733 Gaming Headset,)>
2024-07-03 15:41:09,166,166    DEBUG [AsyncUI] logitech_receiver.settings: equalizer: range field setting prepare map write({0: 11, 1: 12, 2: 12, 3: 12, 4: 12, 5: 12, 6: 12, 7: 12, 8: 11, 9: 12}) => b'\x02\x0b\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0b\x0c'
2024-07-03 15:41:09,166,166    DEBUG [AsyncUI] logitech_receiver.base: (26) <= w[11 FF 063C 020B0C0C0C0C0C0C0C0B0C0000000000]
2024-07-03 15:41:09,219,219    DEBUG [ReceiverListener:hidraw5] logitech_receiver.base: (22) => r[11 FF 063C 020B0C0C0C0C0C0C0C0B0C0000000000]
2024-07-03 15:41:09,219,219    DEBUG [AsyncUI] logitech_receiver.base: (26) => r[11 FF 063C 020B0C0C0C0C0C0C0C0B0C0000000000]
pfps commented 2 days ago

It may be that the command that Solaar is sending only changes the persistent values, not the current ones. It should be possible to check this by turning the headset off and on and seeing whether the sound changes. Please try that.

pfps commented 2 days ago

PR #2547 should fix your problem, assuming that the problem is as described above. Please try it out after doing the above.

To clone and use Solar from its GitHub repository

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

Run Solaar as bin/solaar from this directory.

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

git fetch origin pull/2547/head:pull_2547
git checkout pull_2547

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

git checkout pull_2547
git fetch origin pull/2547/head
git reset --hard FETCH_HEAD
KubaCeTe commented 2 days ago

I did exactly all of that and it still doesn't work image there is the ! next to equlizer read/write operation failed

pfps commented 2 days ago

Please post output of bin/solaar -ddd as you make changes.

KubaCeTe commented 2 days ago
Traceback (most recent call last):
  File "/home/kubacete/Solaar/lib/solaar/ui/config_panel.py", line 59, in _do_write
    v = setting.write(v)
        ^^^^^^^^^^^^^^^^
  File "/home/kubacete/Solaar/lib/logitech_receiver/settings.py", line 582, in write
    reply = self._rw.write(self._device, data_bytes)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/kubacete/Solaar/lib/logitech_receiver/settings.py", line 646, in write
    reply = device.feature_request(self.feature, self.write_fnid, write_bytes, no_reply=self.no_reply)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/kubacete/Solaar/lib/logitech_receiver/device.py", line 527, in feature_request
    return hidpp20.feature_request(self, feature, function, *params, no_reply=no_reply)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/kubacete/Solaar/lib/logitech_receiver/hidpp20.py", line 1378, in feature_request
    return device.request((feature_index << 8) + (function & 0xFF), *params, no_reply=no_reply)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/kubacete/Solaar/lib/logitech_receiver/device.py", line 515, in request
    return self.low_level.request(
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/kubacete/Solaar/lib/logitech_receiver/base.py", line 492, in request
    raise exceptions.FeatureCallError(number=devnumber, request=request_id, error=error, params=params)
logitech_receiver.exceptions.FeatureCallError: {'number': 255, 'request': 1595, 'error': 2, 'params': b'\x01\x0c\x0c\x08\x05\x03\x06\x04\x05\xf4\xf4'}
Traceback (most recent call last):
  File "/home/kubacete/Solaar/lib/solaar/ui/config_panel.py", line 61, in _do_write
    v = setting.write_key_value(key, v)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/kubacete/Solaar/lib/logitech_receiver/settings.py", line 599, in write_key_value
    self.write(map, save)
  File "/home/kubacete/Solaar/lib/logitech_receiver/settings.py", line 582, in write
    reply = self._rw.write(self._device, data_bytes)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/kubacete/Solaar/lib/logitech_receiver/settings.py", line 646, in write
    reply = device.feature_request(self.feature, self.write_fnid, write_bytes, no_reply=self.no_reply)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/kubacete/Solaar/lib/logitech_receiver/device.py", line 527, in feature_request
    return hidpp20.feature_request(self, feature, function, *params, no_reply=no_reply)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/kubacete/Solaar/lib/logitech_receiver/hidpp20.py", line 1378, in feature_request
    return device.request((feature_index << 8) + (function & 0xFF), *params, no_reply=no_reply)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/kubacete/Solaar/lib/logitech_receiver/device.py", line 515, in request
    return self.low_level.request(
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/kubacete/Solaar/lib/logitech_receiver/base.py", line 492, in request
    raise exceptions.FeatureCallError(number=devnumber, request=request_id, error=error, params=params)
logitech_receiver.exceptions.FeatureCallError: {'number': 255, 'request': 1594, 'error': 2, 'params': b'\x01\xfc\x0c\x08\x05\x03\x06\x04\x05\xf4\xf4'}
Traceback (most recent call last):
  File "/home/kubacete/Solaar/lib/solaar/ui/config_panel.py", line 61, in _do_write
    v = setting.write_key_value(key, v)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/kubacete/Solaar/lib/logitech_receiver/settings.py", line 599, in write_key_value
    self.write(map, save)
  File "/home/kubacete/Solaar/lib/logitech_receiver/settings.py", line 582, in write
    reply = self._rw.write(self._device, data_bytes)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/kubacete/Solaar/lib/logitech_receiver/settings.py", line 646, in write
    reply = device.feature_request(self.feature, self.write_fnid, write_bytes, no_reply=self.no_reply)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/kubacete/Solaar/lib/logitech_receiver/device.py", line 527, in feature_request
    return hidpp20.feature_request(self, feature, function, *params, no_reply=no_reply)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/kubacete/Solaar/lib/logitech_receiver/hidpp20.py", line 1378, in feature_request
    return device.request((feature_index << 8) + (function & 0xFF), *params, no_reply=no_reply)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/kubacete/Solaar/lib/logitech_receiver/device.py", line 515, in request
    return self.low_level.request(
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/kubacete/Solaar/lib/logitech_receiver/base.py", line 492, in request
    raise exceptions.FeatureCallError(number=devnumber, request=request_id, error=error, params=params)
logitech_receiver.exceptions.FeatureCallError: {'number': 255, 'request': 1596, 'error': 2, 'params': b'\x01\x0c\x0c\x08\x05\x03\x06\x04\x05\xf4\xf4'}
pfps commented 2 days ago

OK, on to using the tool to directly send commands to the device. In the Solaar download area there is a command ./tools/hidconsole. Run it as cat - | ./tools/hidconsole /dev/hidraw5 to capture input and output that can be posted here. (You may have to change the hidraw5 to whatever solaar show shows as the device path.)

Then try the following commands. Determine whether any make any change to the sound on the device. Post the output to show how the device responds and say what changes occur on the device. A successful command should be echoed back and an unsuccessful command should have a response that is different from the command.

11 FF 0638 0204F4F4F4F4F4F4F4F4F40000000000
11 FF 0638 0204F4F4F4F4F4F40C0C0C0000000000

11 FF 0638 0004F4F4F4F4F4F4F4F4F40000000000
11 FF 0638 0004F4F4F4F4F4F40C0C0C0000000000

11 FF 0638 0104F4F4F4F4F4F4F4F4F40000000000
11 FF 0638 0104F4F4F4F4F4F40C0C0C0000000000

The first of each pair should reduce the volume of the higher frequencies and the second should increase their volume. The difference between the pairs is whether they affect the settings in RAM, in EEPROM, or both.

KubaCeTe commented 2 days ago
11 FF 0638 0204F4F4F4F4F4F4F4F4F40000000000
<< (  37.359) [11 FF 0638 0204F4F4F4F4F4F4F4F4F40000000000] b'\x11\xff\x068\x02\x04\xf4\xf4\xf4\xf4\xf4\xf4\xf4\xf4\xf4\x00\x00\x00\x00\x00'
>> (  37.417) [11 FF 0638 0204F4F4F4F4F4F4F4F4F40000000000] b'\x11\xff\x068\x02\x04\xf4\xf4\xf4\xf4\xf4\xf4\xf4\xf4\xf4\x00\x00\x00\x00\x00'
11 FF 0638 0204F4F4F4F4F4F40C0C0C0000000000
<< (  41.874) [11 FF 0638 0204F4F4F4F4F4F40C0C0C0000000000] b'\x11\xff\x068\x02\x04\xf4\xf4\xf4\xf4\xf4\xf4\x0c\x0c\x0c\x00\x00\x00\x00\x00'
>> (  41.932) [11 FF 0638 0204F4F4F4F4F4F40C0C0C0000000000] b'\x11\xff\x068\x02\x04\xf4\xf4\xf4\xf4\xf4\xf4\x0c\x0c\x0c\x00\x00\x00\x00\x00'
11 FF 0638 0004F4F4F4F4F4F4F4F4F40000000000
<< (  46.345) [11 FF 0638 0004F4F4F4F4F4F4F4F4F40000000000] b'\x11\xff\x068\x00\x04\xf4\xf4\xf4\xf4\xf4\xf4\xf4\xf4\xf4\x00\x00\x00\x00\x00'
>> (  46.389) [11 FF FF06 38020000000000000000000000000000] b'\x11\xff\xff\x068\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
11 FF 0638 0004F4F4F4F4F4F40C0C0C0000000000
<< (  50.596) [11 FF 0638 0004F4F4F4F4F4F40C0C0C0000000000] b'\x11\xff\x068\x00\x04\xf4\xf4\xf4\xf4\xf4\xf4\x0c\x0c\x0c\x00\x00\x00\x00\x00'
>> (  50.638) [11 FF FF06 38020000000000000000000000000000] b'\x11\xff\xff\x068\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
11 FF 0638 0104F4F4F4F4F4F4F4F4F40000000000
<< (  54.858) [11 FF 0638 0104F4F4F4F4F4F4F4F4F40000000000] b'\x11\xff\x068\x01\x04\xf4\xf4\xf4\xf4\xf4\xf4\xf4\xf4\xf4\x00\x00\x00\x00\x00'
>> (  54.900) [11 FF FF06 38020000000000000000000000000000] b'\x11\xff\xff\x068\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
11 FF 0638 0104F4F4F4F4F4F40C0C0C0000000000
<< (  60.017) [11 FF 0638 0104F4F4F4F4F4F40C0C0C0000000000] b'\x11\xff\x068\x01\x04\xf4\xf4\xf4\xf4\xf4\xf4\x0c\x0c\x0c\x00\x00\x00\x00\x00'
>> (  60.062) [11 FF FF06 38020000000000000000000000000000] b'\x11\xff\xff\x068\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
11 FF 0638 0104F4F4F4F4F4F4F4F4F40000000000
<< (  66.516) [11 FF 0638 0104F4F4F4F4F4F4F4F4F40000000000] b'\x11\xff\x068\x01\x04\xf4\xf4\xf4\xf4\xf4\xf4\xf4\xf4\xf4\x00\x00\x00\x00\x00'
>> (  66.557) [11 FF FF06 38020000000000000000000000000000] b'\x11\xff\xff\x068\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
11 FF 0638 0104F4F4F4F4F4F40C0C0C0000000000
<< (  70.037) [11 FF 0638 0104F4F4F4F4F4F40C0C0C0000000000] b'\x11\xff\x068\x01\x04\xf4\xf4\xf4\xf4\xf4\xf4\x0c\x0c\x0c\x00\x00\x00\x00\x00'
>> (  70.078) [11 FF FF06 38020000000000000000000000000000] b'\x11\xff\xff\x068\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'

that's the output. I can't really tell if it makes any difference. It is either very subtle or I just can't hear it. If it would be low frequencies it would be easier for me to tell the difference

pfps commented 2 days ago

OK, the only commands that succeeded appear to be the ones that change the EEPROM. That's strange, as it may be that there is no way to change the equalizer values without turning the headset off and on.

The result appears to be that Solaar was doing the only thing that it could do. If that doesn't have any effect then there doesn't appear to be anything that can be done.

My suggestion is to switch to the current version of Solaar by using git checkout master. Then try changing the equalizer settings. If that doesn't have any effect then you are probably out of luck.