Solaar: Logitech Mouse G602/C537 Receiver support

Created on 28 Sep 2013  ·  53Comments  ·  Source: pwr-Solaar/Solaar

Just got my preordered Logitech G602 mouse. Its shipping with a new receiver, the C537 which isn't being recognized by Solaar or ltunify so I can't even try the mouse settings.

The mouse itself works using the default settings, including changing the DPI through the hardware buttons and going back and forward when browsing.

enhancement

Most helpful comment

I'd love support for this mouse as well.

All 53 comments

With ltunify, you can try specifying the hidraw path which always works even if the receiver ID is not recognized:

sudo ltunify -d /dev/hidraw0 info

If you have other HID devices (such as a mouse or keyboard), try other values for the device path such as /dev/hidraw1. Would you mind posting lsusb -d046d: and ls -ld /sys/bus/hid/drivers/logitech-dj*/*:*

The C537 uses that as its USB device ID so the hid_logitech_dj kernel module never autoloads.

# lsusb -d046d:
Bus 002 Device 003: ID 046d:0821 Logitech, Inc. HD Webcam C910
Bus 002 Device 009: ID 046d:c537 Logitech, Inc.

Even when I manually load it the kernel module doesn't list any devices

# ls -ld /sys/bus/hid/drivers/logitech-dj*
drwxr-xr-x 2 root root 0 Sep 28 01:46 /sys/bus/hid/drivers/logitech-djdevice
drwxr-xr-x 2 root root 0 Sep 28 01:46 /sys/bus/hid/drivers/logitech-djreceiver

I tried to patch in the device ID but it just caused the system to no longer create an /dev/hidraw2 or link it to /dev/input/mice. This is what I tired

diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
index 5956445..a33e312 100644
--- a/drivers/hid/hid-core.c
+++ b/drivers/hid/hid-core.c
@@ -1644,6 +1644,7 @@ static const struct hid_device_id hid_have_special_driver[] = {
 #if IS_ENABLED(CONFIG_HID_LOGITECH_DJ)
        { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_UNIFYING_RECEIVER) },
        { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_UNIFYING_RECEIVER_2) },
+       { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_UNIFYING_RECEIVER_3) },
 #endif
        { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_WII_WHEEL) },
        { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_RUMBLEPAD2) },
diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
index 22134d4..253fc1c 100644
--- a/drivers/hid/hid-ids.h
+++ b/drivers/hid/hid-ids.h
@@ -564,6 +564,7 @@
 #define USB_DEVICE_ID_MX3000_RECEIVER  0xc513
 #define USB_DEVICE_ID_LOGITECH_UNIFYING_RECEIVER       0xc52b
 #define USB_DEVICE_ID_LOGITECH_UNIFYING_RECEIVER_2     0xc532
+#define USB_DEVICE_ID_LOGITECH_UNIFYING_RECEIVER_3     0xc537
 #define USB_DEVICE_ID_SPACETRAVELLER   0xc623
 #define USB_DEVICE_ID_SPACENAVIGATOR   0xc626
 #define USB_DEVICE_ID_DINOVO_DESKTOP   0xc704
diff --git a/drivers/hid/hid-logitech-dj.c b/drivers/hid/hid-logitech-dj.c
index cd33084..542aec8 100644
--- a/drivers/hid/hid-logitech-dj.c
+++ b/drivers/hid/hid-logitech-dj.c
@@ -906,6 +906,8 @@ static const struct hid_device_id logi_dj_receivers[] = {
                USB_DEVICE_ID_LOGITECH_UNIFYING_RECEIVER)},
        {HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH,
                USB_DEVICE_ID_LOGITECH_UNIFYING_RECEIVER_2)},
+       {HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH,
+               USB_DEVICE_ID_LOGITECH_UNIFYING_RECEIVER_3)},
        {}
 };

@@ -928,6 +930,8 @@ static const struct hid_device_id logi_dj_devices[] = {
                USB_DEVICE_ID_LOGITECH_UNIFYING_RECEIVER)},
        {HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH,
                USB_DEVICE_ID_LOGITECH_UNIFYING_RECEIVER_2)},
+       {HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH,
+               USB_DEVICE_ID_LOGITECH_UNIFYING_RECEIVER_3)},
        {}
 };

I tried a similar patch to Solaar which recognizes a receiver when I'm not using my kernel patch but fails to do anything with it. I think this receiver uses a new protocol because

# ./ltunify -d /dev/hidraw2 -D list

wr: 10 ff 81 00 00 00 00
rd: 10 ff 81 00 00 09 00
Reporting Flags (Receiver) = 09
Wireless notifications     = yes
Software Present           = no
wr: 10 ff 81 02 00 00 00
rd: 10 ff 81 02 00 01 00
Devices count: 1
wr: 10 ff 80 02 02 00 00
rd: 10 01 41 07 12 2c 40
Unknown protocol 0x07 in devcon notif
rd: 10 ff 80 02 00 00 00
Connected devices:

wr: 10 ff 81 00 00 00 00
rd: 10 ff 81 00 00 09 00
Reporting Flags (Receiver) = 09
Wireless notifications     = yes
Software Present           = no

Spec sheet from Logitech. It looks like its using

Ok I used the following patch to ltunify to get it to read my mouse data, not sure how correct the patch is

diff --git a/ltunify.c b/ltunify.c
index d8f301e..cf5a9ac 100644
--- a/ltunify.c
+++ b/ltunify.c
@@ -44,7 +44,7 @@ static bool debug_enabled;
 typedef unsigned char u8;

 #define VID_LOGITECH           0x046d
-#define PID_NANO_RECEIVER      0xc52f
+#define PID_NANO_RECEIVER      0xc537

 #define HEADER_SIZE            3
 #define SHORT_MESSAGE           0x10
@@ -134,6 +134,7 @@ struct msg_dev_name {

 struct notif_devcon {
 #define DEVCON_PROT_UNIFYING   0x04
+#define DEVCON_PROT_UNIFYING2   0x07
        u8 prot_type; // bits 0..2 is protocol type (4 for unifying), 3..7 is reserved
 #define DEVCON_DEV_TYPE_MASK   0x0f
 // Link status: 0 is established (in range), 1 is not established (out of range)
@@ -381,7 +382,8 @@ bool process_notif_dev_connect(struct hidpp_message *msg, u8 *device_index,
                        "%#04x instead\n", msg->report_id);
                return false;
        }
-       if (dcon->prot_type != DEVCON_PROT_UNIFYING) {
+       if (dcon->prot_type != DEVCON_PROT_UNIFYING &&
+           dcon->prot_type != DEVCON_PROT_UNIFYING2) {
                fprintf(stderr, "Unknown protocol %#04x in devcon notif\n",
                        dcon->prot_type);
                return false;

G602 data

# ./ltunify -d /dev/hidraw2 receiver-info
Serial number: 771A95D7
Firmware version: 034.000.00002
Bootloader version: BL.002.014
# ./ltunify -d /dev/hidraw2 info 1
HID++ version: 2.0
Device index 1
Mouse
Name: G602
Wireless Product ID: 402C
Serial number: BF11CA66
Device was unavailable, version information not available.
Total number of HID++ 2.0 features: 22
  0: [0000]     IRoot
  1: [0001]     IFeatureSet
  2: [0003]     IFirmwareInfo
  3: [0005]     GetDeviceNameType
  4: [00C0]     DFUControl
  5: [1000]     batteryLevelStatus
  6: [1D4B]     WirelessDeviceStatus
  7: [1DF3]  HI unknown
  8: [1E00]  H  unknown
  9: [1E80]  HI unknown
 10: [1F03]  HI unknown
 11: [2100]     VerticalScrolling
 12: [2200]     MousePointer
 13: [2201]     unknown
 14: [8080]     unknown
 15: [8060]     unknown
 16: [8070]     unknown
 17: [1810]  HI unknown
 18: [1830]  HI unknown
 19: [1850]  HI unknown
 20: [1860]  HI unknown
 21: [1890]  HI unknown
 22: [18A0]  HI unknown
(O = obsolete feature; H = SW hidden feature;
 I = reserved for internal use)

Is there any other information you need? I could look at patching support in but I have a couple of questions

  1. Should the hid_logitech_dj kernel module detect and support this model? If so, I think the reason why my original patch didn't work was because of this, thoughts?
  2. One of the big issues here is that the protocol type changed from 4(supported) to 7(unsupported and marked reserved). Does anyone know anything about protocol type 7 and how it compares to the other versions? I was thinking of writing a similar patch for Solaar as I did for ltunify.
  1. I don't know, it is possible that that interface is indeed used by your receiver. See https://lekensteyn.nl/files/logitech/Unifying_receiver_DJ_collection_specification_draft.pdf for the structure for the Unifying DJ protocol.
  2. I don't know what protocol 7 is and cannot tell you for sure whether all unifying protocol operations are valid for your device. You can try to ask Nestor from Logitech for some specs.

Otherwise, you can also try to find out what reports are exchanged with the mouse by using QEMU + USB pass-through + windows, see https://lekensteyn.nl/logitech-unifying.html. If you need a 2.3G winxp QEMU image, mail me.

I haven't had much time to work on this lately but I've confirmed with Nestor that this mouse does not need any kernel modification or use the logitech_dj kmod. This patch below will allow ltunify to properly detect the mouse and display its basic information

diff --git a/ltunify.c b/ltunify.c
index ee99a17..4f22f3c 100644
--- a/ltunify.c
+++ b/ltunify.c
@@ -46,7 +46,8 @@ static bool debug_enabled;
 typedef unsigned char u8;

 #define VID_LOGITECH           0x046d
-#define PID_NANO_RECEIVER      0xc52f
+#define PID_NANO_RECEIVER_1     0xc52f
+#define PID_NANO_RECEIVER_2    0xc537

 #define HEADER_SIZE            3
 #define SHORT_MESSAGE           0x10
@@ -135,7 +136,8 @@ struct msg_dev_name {
 };

 struct notif_devcon {
-#define DEVCON_PROT_UNIFYING   0x04
+#define DEVCON_PROT_UNIFYING_1 0x04  // unifying
+#define DEVCON_PROT_UNIFYING_2  0x07  // gaming? G602
        u8 prot_type; // bits 0..2 is protocol type (4 for unifying), 3..7 is reserved
 #define DEVCON_DEV_TYPE_MASK   0x0f
 // Link status: 0 is established (in range), 1 is not established (out of range)
@@ -413,7 +415,8 @@ bool process_notif_dev_connect(struct hidpp_message *msg, u8 *device_index,
                        "%#04x instead\n", msg->report_id);
                return false;
        }
-       if (dcon->prot_type != DEVCON_PROT_UNIFYING) {
+       if (dcon->prot_type != DEVCON_PROT_UNIFYING_1 &&
+           dcon->prot_type != DEVCON_PROT_UNIFYING_2) {
                fprintf(stderr, "Unknown protocol %#04x in devcon notif\n",
                        dcon->prot_type);
                return false;
@@ -1184,7 +1187,7 @@ int open_hidraw(void) {
                                        fclose(fp);
                                }

-                               if (vid != VID_LOGITECH || pid != PID_NANO_RECEIVER) {
+                               if (vid != VID_LOGITECH || pid != PID_NANO_RECEIVER_1 || pid != PID_NANO_RECEIVER_2) {
                                        continue;
                                }
                        } else { /* unknown driver */

So when digging a little deeper I see whats causing Solaar to not work is that the mouse sends a new message type

Exception in thread ReceiverListener:hidraw2:
Traceback (most recent call last):
  File "/usr/lib64/python2.7/threading.py", line 808, in __bootstrap_inner
    self.run()
  File "~/Solaar/lib/logitech_receiver/listener.py", line 169, in run
    n = _base.read(ihandle, _EVENT_READ_TIMEOUT)
  File "~/Solaar/lib/logitech_receiver/base.py", line 189, in read
    reply = _read(handle, timeout)
  File "~/Solaar/lib/logitech_receiver/base.py", line 219, in _read
    "unexpected message size: report_id %02X message %s" % (report_id, _strhex(data))
AssertionError: unexpected message size: report_id 80 message 8001000000

@ltrager This condition:

pid != PID_NANO_RECEIVER_1 || pid != PID_NANO_RECEIVER_2

must become:

(pid != PID_NANO_RECEIVER_1 && pid != PID_NANO_RECEIVER_2)

Can you try that? With that corrected, can you create a patch with git-format-patch? I'll then apply it to ltunify.

@ltrager
Did you get the mouse working with the patch you gave?

Can anyone actually confirm the mouse is working with Linux and Solaar in any way? I consider buying it as it is the only real Logitech gaming mouse I could find in my pricing category and hand size (I need big mice :) ).

Hi, got a G602 and I can't get it to work with ltunify. I used the patch @ltrager posted with the diff @Lekensteyn posted. ltunify can get info on receiver and mouse but I can't use it in xorg.
Can somebody please post some more info?

@TimB87 Can you get a list of devices then, and show information about the non-functioning device?

@Lekensteyn sorry for getting back at you so late. But while doing a distro upgrade I repulled git and applied above patches. It is working now :-) Must have been my fault.

I also applied the patch and changed the device from C537 to C531 and now ltunify can get information on receivers for Logitech G700 and G700s.
Pairing new devices works flawlessly. Unpairing a device gives me the error "Failed to send unpair 0x01 request" although it was successful.

Over two years later - any update? I have a G602 and I'm willing to provide any information needed - just let me know. Has anyone found a work-a-round at least? I'd rather not run a windows vm every time I want to change the mapping for my extra buttons.

No update from this side

Is there a reason these patches never made it into master? It seems like multiple people got it working locally and no-one bothered to submit a pull request?

I'd love support for this mouse as well.

sudo ./ltunify -d /dev/hidraw2 pair

Worked on Ubuntu 18.10 for me.

Don't know how to configure any of the buttons, but left, right and scroll wheel work.

Wasn't recognized on Solaar or ltunify automatically.

@Lekensteyn I've created patch for ltunify based on previous one.

PATCH

There have been quite a few changes to solaar over the past few years so this issue may have already been addressed. If you are still using solaar and this issue has not been resolved please download and run the current version from this github repository. If the problem still persists add a new comment here, providing the output of solaar -V and solaar show and any new information about the issue.

If you are still running solaar you should be able to download and run its current version (in Linux) as follows:

  1. Install git on your machine if it is not already installed. This is generally done via sudo apt install git or sudo dnf install git
  2. Change to a directory where you want the code.
  3. Download solaar via git clone https://github.com/pwr-Solaar/Solaar.git
  4. Run solaar via Solaar/bin/solaar

For more information on installing solaar from github see https://github.com/pwr-Solaar/Solaar/blob/master/docs/installation.md

Still an issue,

using the git PPA on linux mint 19.2/ubuntu 18.0.4

$ uname -srmo
Linux 5.0.0-37-generic x86_64 GNU/Linux

$ solaar -V
solaar 1.0.1

$ apt show solaar
Package: solaar
Version: 1.0.1+dfsg-1+git864-91bcfa2-202001220517~ubuntu18.04.1

$ solaar show
solaar: error: Logitech receiver not found

$ lsmod | grep logitech
hid_logitech_hidpp     40960  0
hid_logitech_dj        20480  0
hid                   126976  4 usbhid,hid_generic,hid_logitech_dj,hid_logitech_hidpp

$ sudo lsusb -vd 046d:c537
Bus 003 Device 037: ID 046d:c537 Logitech, Inc. 
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0         8
  idVendor           0x046d Logitech, Inc.
  idProduct          0xc537 
  bcdDevice           34.00
  iManufacturer           1 Logitech
  iProduct                2 USB Receiver
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           59
    bNumInterfaces          2
    bConfigurationValue     1
    iConfiguration          4 RQR34.00_B0002
    bmAttributes         0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower               98mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      1 Boot Interface Subclass
      bInterfaceProtocol      2 Mouse
      iInterface              0 
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.11
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      67
         Report Descriptors: 
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      0 No Subclass
      bInterfaceProtocol      0 None
      iInterface              0 
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.11
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength     169
         Report Descriptors: 
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0014  1x 20 bytes
        bInterval               1
Device Status:     0x0000
  (Bus Powered)

Need anything else?

You should be able to make a couple of patches to check that the receiver and mouse do something useful in solaar. They are similar to the patches above. If the receiver and mouse work for you you can either submit a pull request or I can do one for you. I'm assuming that you have a nano receiver.

In lib/logitech_receiver/base_usb.py add

NANO_RECEIVER_C537        = _nano_receiver(0xc537)

and

        NANO_RECEIVER_C537,

in the obvious places.

The run solaar and see if it complains. Report back on success or failure. If you have problems run solaar -dd and attach the debugging output. Some failures might be easy to fix, but others might not.

@pfps it now detects the reciever (with the changes, I'll make the PR). But I am getting error output

sudo bin/solaar -dd
10:36:39,217     INFO [MainThread] root: language en_ZA (UTF-8), translations path None
10:36:39,645    DEBUG [MainThread] solaar.ui.tray: using AppIndicator3
10:36:39,740     INFO [MainThread] solaar.upower: connected to system dbus, watching for suspend/resume events
10:36:39,816    DEBUG [MainThread] solaar.ui: startup registered=True, remote=False
10:36:39,817    DEBUG [AsyncUI] solaar.tasks: started
10:36:39,839    DEBUG [MainThread] solaar.ui.icons: sys.path[0] = /Data/OpenSource/Solaar/lib
10:36:39,839    DEBUG [MainThread] solaar.ui.icons: looking for icons in /Data/OpenSource/Solaar/icons
10:36:39,839    DEBUG [MainThread] solaar.ui.icons: looking for icons in /Data/OpenSource/Solaar/share/solaar/icons
10:36:39,840    DEBUG [MainThread] solaar.ui.icons: looking for icons in /home/rijnhard/.local/share/solaar/icons
10:36:39,840    DEBUG [MainThread] solaar.ui.icons: looking for icons in /Data/OpenSource/Solaar/share/solaar/icons
10:36:39,840    DEBUG [MainThread] solaar.ui.icons: looking for icons in /usr/local/share/solaar/icons
10:36:39,840    DEBUG [MainThread] solaar.ui.icons: looking for icons in /usr/share/solaar/icons
10:36:39,840    DEBUG [MainThread] solaar.ui.icons: icon theme paths: ['/usr/share/solaar/icons', '/Data/OpenSource/Solaar/share/solaar/icons', '/Data/OpenSource/Solaar/share/solaar/icons', '/home/rijnhard/.local/share/icons', '/home/rijnhard/.icons', '/usr/local/share/icons', '/usr/share/icons', '/usr/local/share/pixmaps', '/usr/share/pixmaps']
10:36:39,873    DEBUG [MainThread] solaar.ui.icons: detected icon sets: Mint True, gpm True, oxygen True, gnome True, elementary True
10:36:40,147     INFO [MainThread] solaar.listener: starting receiver listening threads
10:36:40,193     INFO [MainThread] solaar.listener: receiver event add DeviceInfo(path=u'/dev/hidraw1', vendor_id=u'046d', product_id=u'c537', serial=u'', release='3400', manufacturer='Logitech', product='USB Receiver', interface=1, driver=u'hid-generic')
10:36:40,198    DEBUG [MainThread] logitech_receiver.base: (13) <= w[10 FF 83B5 030000]
10:36:40,200    DEBUG [MainThread] logitech_receiver.base: (13) => r[11 FF 83B5 0384E398F30101070000000000000000]
10:36:40,201    DEBUG [MainThread] logitech_receiver.base: (13) <= w[10 FF 80B2 000000]
10:36:40,202    DEBUG [MainThread] logitech_receiver.base: (13) => r[10 FF 8F80 B20300]
10:36:40,202    DEBUG [MainThread] logitech_receiver.base: (13) device 0xFF error on request {80B2}: 3 = invalid value
10:36:40,203     INFO [ReceiverListener:hidraw1] logitech_receiver.listener: started with <NanoReceiver(/dev/hidraw1,13)> (13)
10:36:40,203     INFO [ReceiverListener:hidraw1] solaar.listener: <NanoReceiver(/dev/hidraw1,13)>: notifications listener has started (13)
10:36:40,203    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (13) <= w[10 FF 8000 100900]
10:36:40,204    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (13) => r[10 FF 8000 000000]
10:36:40,204    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (13) <= w[10 FF 8100 000000]
10:36:40,206    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (13) => r[10 FF 8100 000900]
10:36:40,206     INFO [ReceiverListener:hidraw1] logitech_receiver.receiver: <NanoReceiver(/dev/hidraw1,13)>: receiver notifications enabled => ('wireless', 'software present')
10:36:40,206    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (13) <= w[10 FF 8002 020000]
10:36:40,207    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (13) => r[10 01 4107 122C40]
10:36:40,208    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (13) => r[10 FF 8002 000000]
10:36:40,208     INFO [ReceiverListener:hidraw1] solaar.listener: status_changed <NanoReceiver(/dev/hidraw1,13)>: present, No paired devices. (0) 
10:36:40,209    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (13) <= w[10 FF 83B5 400000]
10:36:40,211    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (13) => r[11 FF 83B5 40044736303200000000000000000000]
10:36:40,211     INFO [ReceiverListener:hidraw1] logitech_receiver.receiver: <NanoReceiver(/dev/hidraw1,13)>: found new device 1 (402C)
10:36:40,211     INFO [ReceiverListener:hidraw1] solaar.listener: Notification(1,41,07,122C40) triggered new device <PairedDevice(1,402C,G602)> (mouse)
10:36:40,211    DEBUG [ReceiverListener:hidraw1] solaar.configuration: load => {}
10:36:40,211    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (13) <= w[10 FF 83B5 300000]
10:36:40,212    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (13) => r[11 FF 83B5 308D13D0BD0E00000001000000000000]
10:36:40,212    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (13) pinging device 1
10:36:40,212    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (13) <= w[10 01 0019 0000AD]
10:36:40,220    DEBUG [MainThread] solaar.ui: activate
10:36:40,222    DEBUG [MainThread] solaar.ui: status changed: <NanoReceiver(/dev/hidraw1,13)> (NONE) None
10:36:40,225    DEBUG [MainThread] solaar.ui.window: new receiver row (u'/dev/hidraw1', 0, True, u'Nano Receiver', u'preferences-desktop-peripherals', None, None, <NanoReceiver(/dev/hidraw1,13)>)
10:36:40,241    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (13) => r[11 01 0019 0200AD00000000000000000000000000]
10:36:40,241    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (13) <= w[10 01 0009 000100]
10:36:40,337    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (13) => r[11 01 0009 01000000000000000000000000000000]
10:36:40,338    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (13) <= w[10 01 010D 000000]
10:36:40,440    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (13) => r[11 01 010D 16000000000000000000000000000000]
10:36:40,441    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (13) <= w[10 01 000D 000500]
10:36:40,544    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (13) => r[11 01 000D 03000000000000000000000000000000]
10:36:40,544    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (13) <= w[10 01 030D 000000]

(solaar:14653): Gdk-CRITICAL **: 10:36:40.630: gdk_window_thaw_toplevel_updates: assertion 'window->update_and_descendants_freeze_count > 0' failed
10:36:40,639    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (13) => r[11 01 030D 15000000000000000000000000000000]
10:36:40,640    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (13) <= w[10 01 031E 000000]
10:36:40,743    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (13) => r[11 01 031E 576972656C6573732047616D696E6720]
10:36:40,744    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (13) <= w[10 01 0319 100000]
10:36:40,847    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (13) => r[11 01 0319 4D6F7573650000000000000000000000]
10:36:40,848     INFO [ReceiverListener:hidraw1] solaar.listener: status_changed <NanoReceiver(/dev/hidraw1,13)>: present, 1 paired device. (0) 
10:36:40,848    DEBUG [ReceiverListener:hidraw1] logitech_receiver.notifications: <PairedDevice(1,402C,G602)>: eQUAD step 4 Gaming connection notification: software=True, encrypted=False, link=True, payload=False
10:36:40,849    DEBUG [MainThread] solaar.ui: status changed: <NanoReceiver(/dev/hidraw1,13)> (NONE) None
10:36:40,849    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (13) <= w[10 01 000B 212000]
10:36:40,942    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (13) => r[11 01 000B 00000000000000000000000000000000]
10:36:40,942    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (13) <= w[10 01 000E 213000]
10:36:41,046    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (13) => r[11 01 000E 00000000000000000000000000000000]
10:36:41,047    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (13) <= w[10 01 000C 212100]
10:36:41,142    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (13) => r[11 01 000C 00000000000000000000000000000000]
10:36:41,143    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (13) <= w[10 01 0008 212100]
10:36:41,245    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (13) => r[11 01 0008 00000000000000000000000000000000]
10:36:41,245    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (13) <= w[10 01 000E 40A000]
10:36:41,285    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (13) => r[11 01 000E 00000000000000000000000000000000]
10:36:41,286    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (13) <= w[10 01 000D 40A200]
10:36:41,301    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (13) => r[11 01 000D 00000000000000000000000000000000]
10:36:41,302    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (13) <= w[10 01 000F 40A300]
10:36:41,317    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (13) => r[11 01 000F 00000000000000000000000000000000]
10:36:41,318    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (13) <= w[10 01 000B 220100]
10:36:41,333    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (13) => r[11 01 000B 0D000000000000000000000000000000]
10:36:41,334    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (13) <= w[10 01 0D1E 000000]
10:36:41,349    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (13) => r[11 01 FF0D 1E020000000000000000000000000000]
10:36:41,350    ERROR [ReceiverListener:hidraw1] logitech_receiver.base: (13) device 1 error on feature request {0D1E}: 2 = invalid argument
10:36:41,350    ERROR [ReceiverListener:hidraw1] logitech_receiver.listener: processing Notification(1,41,07,122C40)
Traceback (most recent call last):
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/listener.py", line 185, in run
    self._notifications_callback(n)
  File "/Data/OpenSource/Solaar/lib/solaar/listener.py", line 220, in _notifications_handler
    _notifications.process(dev, n)
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/notifications.py", line 54, in process
    return _process_device_notification(device, status, notification)
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/notifications.py", line 97, in _process_device_notification
    return _process_hidpp10_notification(device, status, n)
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/notifications.py", line 183, in _process_hidpp10_notification
    status.changed(active=link_established)
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/status.py", line 265, in changed
    for s in d.settings:
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/receiver.py", line 254, in settings
    _check_feature_settings(self, self._settings)
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/settings_templates.py", line 403, in check_feature_settings
    check_feature(_DPI[0],           _F.ADJUSTABLE_DPI)
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/settings_templates.py", line 394, in check_feature
    already_known.append(feature(device))
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/settings_templates.py", line 96, in instantiate
    choices = choices_callback(device)
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/settings_templates.py", line 264, in _feature_adjustable_dpi_choices
    reply = device.feature_request(_F.ADJUSTABLE_DPI, 0x10)
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/receiver.py", line 288, in feature_request
    return _hidpp20.feature_request(self, feature, function, *params)
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/hidpp20.py", line 443, in feature_request
    return device.request((feature_index << 8) + (function & 0xFF), *params)
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/receiver.py", line 281, in request
    return _base.request(self.receiver.handle, self.number, request_id, *params)
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/base.py", line 374, in request
    raise _hidpp20.FeatureCallError(number=devnumber, request=request_id, error=error, params=params)
FeatureCallError: {'params': '', 'request': 3358L, 'number': 1, 'error': 2}
Exception in thread ReceiverListener:hidraw1:
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 801, in __bootstrap_inner
    self.run()
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/listener.py", line 169, in run
    n = _base.read(ihandle, _EVENT_READ_TIMEOUT)
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/base.py", line 187, in read
    reply = _read(handle, timeout)
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/base.py", line 217, in _read
    "unexpected message size: report_id %02X message %s" % (report_id, _strhex(data))
AssertionError: unexpected message size: report_id 80 message 8001008000

also solaar show output:

sudo bin/solaar show
Unifying Receiver
  Device path  : /dev/hidraw1
  USB id       : 046d:c537
  Serial       : 84E398F3
    Firmware   : 34.00.B0002
    Bootloader : 02.14
  Has 1 paired device(s) out of a maximum of 1.
  Notifications: wireless, software present (0x000900)

  1: Wireless Gaming Mouse
     Codename     : G602
     Kind         : mouse
     Wireless PID : 402C
     Protocol     : HID++ 2.0
     Polling rate : 8 ms (125Hz)
     Serial number: 8D13D0BD
          Firmware: RQM 47.00.B0010
        Bootloader: BL  02.00.B0001
          Hardware: 72
     The power switch is located on the base.
     Supports 23 HID++ 2.0 features:
         0: ROOT                   {0000}   
         1: FEATURE SET            {0001}   
         2: DEVICE FW VERSION      {0003}   
         3: DEVICE NAME            {0005}   
         4: DFUCONTROL LEGACY      {00C0}   
         5: BATTERY STATUS         {1000}   
         6: WIRELESS DEVICE STATUS {1D4B}   
         7: unknown:1DF3           {1DF3}   internal, hidden
         8: unknown:1E00           {1E00}   hidden
         9: unknown:1E80           {1E80}   internal, hidden
        10: unknown:1F03           {1F03}   internal, hidden
        11: VERTICAL SCROLLING     {2100}   
            Roller type: standard
            Ratchet per turn: 24
            Scroll lines: 0
        12: MOUSE POINTER          {2200}   
            DPI: 1000
            Acceleration: low
            Override OS ballistics
            No vertical tuning, standard mice
        13: ADJUSTABLE DPI         {2201}   
        14: PER KEY LIGHTING       {8080}   
        15: REPORT RATE            {8060}   
        16: COLOR LED EFFECTS      {8070}   
        17: unknown:1810           {1810}   internal, hidden
        18: unknown:1830           {1830}   internal, hidden
        19: unknown:1850           {1850}   internal, hidden
        20: unknown:1860           {1860}   internal, hidden
        21: unknown:1890           {1890}   internal, hidden
        22: unknown:18A0           {18A0}   internal, hidden
     Battery: 50%, discharging.

Can you attach output of solaar -dd show. I'm not sure why that gives a complete readout of the device but you are getting an error with the GUI.

A couple of comments

10:36:41,334 DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (13) <= w[10 01 0D1E 000000]
10:36:41,349 DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (13) => r[11 01 FF0D 1E020000000000000000000000000000]
10:36:41,350 ERROR [ReceiverListener:hidraw1] logitech_receiver.base: (13) device 1 error on feature request {0D1E}: 2 = invalid argument

This looks like something is going wrong when the parameters for ADJUSTABLE_DPI are being discovered
The code for this is in settings_templates.py, but this code is not easy to understand
The only effect should be that ADJUSTABLE_DPI support won't work

Message 8001008000 should never happen as far as I know. Is this repeatable? I guess not, as solaar show managed to complete. Try solaar -dd again and see whether you get the same error. You could also try to turn the assert into a test that just complains and drops the message (by simply returning, maybe, but that might have other probems).

The error is definitely repeatable, I'll post the output on Monday when I'm
back at that machine.

On Fri, 24 Jan 2020, 15:31 Peter F. Patel-Schneider, <
[email protected]> wrote:

Can you attach output of solaar -dd show. I'm not sure why that gives a
complete readout of the device but you are getting an error with the GUI.

A couple of comments

10:36:41,334 DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (13)
<= w[10 01 0D1E 000000]
10:36:41,349 DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (13)
=> r[11 01 FF0D 1E020000000000000000000000000000]
10:36:41,350 ERROR [ReceiverListener:hidraw1] logitech_receiver.base: (13)
device 1 error on feature request {0D1E}: 2 = invalid argument

This looks like something is going wrong when the parameters for
ADJUSTABLE_DPI are being discovered
The code for this is in settings_templates.py, but this code is not easy
to understand
The only effect should be that ADJUSTABLE_DPI support won't work

Message 8001008000 should never happen as far as I know. Is this
repeatable? I guess not, as solaar show managed to complete. Try solaar -dd
again and see whether you get the same error. You could also try to turn
the assert into a test that just complains and drops the message (by simply
returning, maybe, but that might have other probems).


You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/pwr-Solaar/Solaar/issues/128?email_source=notifications&email_token=ABAXP2DAEB3D32P2WSHL7PTQ7LUTZA5CNFSM4AILM4L2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEJ2ZGQY#issuecomment-578130755,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABAXP2FUCOMJHJHYTOFPC23Q7LUTZANCNFSM4AILM4LQ
.

@pfps

sudo solaar -dd show
09:47:46,976    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 FF 83B5 030000]
09:47:46,977    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 83B5 0384E398F30101070000000000000000]
09:47:46,978    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 FF 80B2 000000]
09:47:46,979    DEBUG [MainThread] logitech_receiver.base: (3) => r[10 FF 8F80 B20300]
09:47:46,979    DEBUG [MainThread] logitech_receiver.base: (3) device 0xFF error on request {80B2}: 3 = invalid value
09:47:46,979    DEBUG [MainThread] solaar.cli: [/dev/hidraw1] => <NanoReceiver(/dev/hidraw1,3)>
09:47:46,990    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 FF 8102 000000]
09:47:46,990    DEBUG [MainThread] logitech_receiver.base: (3) => r[10 FF 8102 000100]
Unifying Receiver
  Device path  : /dev/hidraw1
  USB id       : 046d:c537
  Serial       : 84E398F3
09:47:46,991    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 FF 81F1 010000]
09:47:46,991    DEBUG [MainThread] logitech_receiver.base: (3) => r[10 FF 81F1 013400]
09:47:46,992    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 FF 81F1 020000]
09:47:46,992    DEBUG [MainThread] logitech_receiver.base: (3) => r[10 FF 81F1 020002]
09:47:46,993    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 FF 81F1 040000]
09:47:46,994    DEBUG [MainThread] logitech_receiver.base: (3) => r[10 FF 81F1 040214]
09:47:46,994    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 FF 81F1 030000]
09:47:46,995    DEBUG [MainThread] logitech_receiver.base: (3) => r[10 FF 8F81 F10300]
09:47:46,995    DEBUG [MainThread] logitech_receiver.base: (3) device 0xFF error on request {81F1}: 3 = invalid value
    Firmware   : 34.00.B0002
    Bootloader : 02.14
  Has 1 paired device(s) out of a maximum of 1.
09:47:46,995    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 FF 8100 000000]
09:47:46,995    DEBUG [MainThread] logitech_receiver.base: (3) => r[10 FF 8100 000900]
  Notifications: wireless, software present (0x000900)
09:47:46,996    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 FF 83B3 000000]
09:47:46,996    DEBUG [MainThread] logitech_receiver.base: (3) => r[10 FF 8F83 B30200]
09:47:46,996    DEBUG [MainThread] logitech_receiver.base: (3) device 0xFF error on request {83B3}: 2 = invalid address
09:47:46,997    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 FF 8102 000000]
09:47:46,997    DEBUG [MainThread] logitech_receiver.base: (3) => r[10 FF 8102 000100]
09:47:46,998    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 FF 83B5 200000]
09:47:46,998    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 83B5 200708402C0701023200000000000000]
09:47:46,999    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 FF 83B5 400000]
09:47:46,999    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 83B5 40044736303200000000000000000000]
09:47:47,000     INFO [MainThread] logitech_receiver.receiver: <NanoReceiver(/dev/hidraw1,3)>: found new device 1 (402C)

09:47:47,000    DEBUG [MainThread] logitech_receiver.base: (3) pinging device 1
09:47:47,000    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 001D 0000DA]
09:47:47,030    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 001D 0200DA00000000000000000000000000]
09:47:47,030    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 0008 000100]
09:47:47,126    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 0008 01000000000000000000000000000000]
09:47:47,126    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 0108 000000]
09:47:47,230    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 0108 16000000000000000000000000000000]
09:47:47,230    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 000D 000500]
09:47:47,334    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 000D 03000000000000000000000000000000]
09:47:47,334    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 0308 000000]
09:47:47,430    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 0308 15000000000000000000000000000000]
09:47:47,430    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 031A 000000]
09:47:47,534    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 031A 576972656C6573732047616D696E6720]
09:47:47,534    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 0318 100000]
09:47:47,630    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 0318 4D6F7573650000000000000000000000]
  1: Wireless Gaming Mouse
     Codename     : G602
     Kind         : mouse
     Wireless PID : 402C
     Protocol     : HID++ 2.0
     Polling rate : 8 ms (125Hz)
09:47:47,630    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 FF 83B5 300000]
09:47:47,632    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 83B5 308D13D0BD0E00000001000000000000]
     Serial number: 8D13D0BD
09:47:47,632    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 000B 000300]
09:47:47,734    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 000B 02000000000000000000000000000000]
09:47:47,734    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 020C 000000]
09:47:47,838    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 020C 03000000000000000000000000000000]
09:47:47,838    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 021A 000000]
09:47:47,934    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 021A 0052514D4700001000402C0000000000]
09:47:47,934    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 021C 010000]
09:47:47,974    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 021C 01424C200200000100402C0000000000]
09:47:47,974    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 021D 020000]
09:47:47,990    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 021D 024857200200000000402C0000000000]
          Firmware: RQM 47.00.B0010
        Bootloader: BL  02.00.B0001
          Hardware: 72
     The power switch is located on the base.
     Supports 23 HID++ 2.0 features:
09:47:47,990    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 000A 000000]
09:47:48,006    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 000A 00000000000000000000000000000000]
         0: ROOT                   {0000}   
09:47:48,006    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 000A 000100]
09:47:48,022    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 000A 01000000000000000000000000000000]
         1: FEATURE SET            {0001}   
09:47:48,022    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 000C 000300]
09:47:48,038    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 000C 02000000000000000000000000000000]
         2: DEVICE FW VERSION      {0003}   
09:47:48,038    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 000E 000500]
09:47:48,054    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 000E 03000000000000000000000000000000]
         3: DEVICE NAME            {0005}   
09:47:48,054    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 011C 040000]
09:47:48,070    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 011C 00C00000000000000000000000000000]
09:47:48,070    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 000D 00C000]
09:47:48,086    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 000D 04000000000000000000000000000000]
         4: DFUCONTROL LEGACY      {00C0}   
09:47:48,086    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 011F 050000]
09:47:48,102    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 011F 10000000000000000000000000000000]
09:47:48,102    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 000F 100000]
09:47:48,118    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 000F 05000000000000000000000000000000]
         5: BATTERY STATUS         {1000}   
09:47:48,118    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 011E 060000]
09:47:48,134    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 011E 1D4B0000000000000000000000000000]
09:47:48,134    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 000B 1D4B00]
09:47:48,150    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 000B 06000000000000000000000000000000]
         6: WIRELESS DEVICE STATUS {1D4B}   
09:47:48,150    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 011E 070000]
09:47:48,166    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 011E 1DF36000000000000000000000000000]
09:47:48,166    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 0009 1DF300]
09:47:48,182    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 0009 07600000000000000000000000000000]
         7: unknown:1DF3           {1DF3}   internal, hidden
09:47:48,182    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 0119 080000]
09:47:48,198    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 0119 1E004000000000000000000000000000]
09:47:48,198    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 0009 1E0000]
09:47:48,214    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 0009 08400000000000000000000000000000]
         8: unknown:1E00           {1E00}   hidden
09:47:48,215    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 011D 090000]
09:47:48,230    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 011D 1E806000000000000000000000000000]
09:47:48,230    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 000B 1E8000]
09:47:48,246    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 000B 09600000000000000000000000000000]
         9: unknown:1E80           {1E80}   internal, hidden
09:47:48,247    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 011B 0A0000]
09:47:48,262    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 011B 1F036000000000000000000000000000]
09:47:48,262    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 000A 1F0300]
09:47:48,278    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 000A 0A600000000000000000000000000000]
        10: unknown:1F03           {1F03}   internal, hidden
09:47:48,278    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 011C 0B0000]
09:47:48,294    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 011C 21000000000000000000000000000000]
09:47:48,294    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 000B 210000]
09:47:48,310    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 000B 0B000000000000000000000000000000]
        11: VERTICAL SCROLLING     {2100}   
09:47:48,310    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 0B0F 000000]
09:47:48,326    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 0B0F 01180000000000000000000000000000]
            Roller type: standard
            Ratchet per turn: 24
            Scroll lines: 0
09:47:48,326    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 011B 0C0000]
09:47:48,342    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 011B 22000000000000000000000000000000]
09:47:48,342    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 000D 220000]
09:47:48,358    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 000D 0C000000000000000000000000000000]
        12: MOUSE POINTER          {2200}   
09:47:48,358    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 0C09 000000]
09:47:48,374    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 0C09 03E80100000000000000000000000000]
            DPI: 1000
            Acceleration: low
            Override OS ballistics
            No vertical tuning, standard mice
09:47:48,374    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 011A 0D0000]
09:47:48,390    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 011A 22010000000000000000000000000000]
09:47:48,390    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 000E 220100]
09:47:48,406    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 000E 0D000000000000000000000000000000]
        13: ADJUSTABLE DPI         {2201}   
09:47:48,406    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 0119 0E0000]
09:47:48,422    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 0119 80800000000000000000000000000000]
09:47:48,422    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 000B 808000]
09:47:48,438    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 000B 0E000000000000000000000000000000]
        14: PER KEY LIGHTING       {8080}   
09:47:48,438    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 011B 0F0000]
09:47:48,454    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 011B 80600000000000000000000000000000]
09:47:48,454    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 000E 806000]
09:47:48,470    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 000E 0F000000000000000000000000000000]
        15: REPORT RATE            {8060}   
09:47:48,470    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 011F 100000]
09:47:48,486    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 011F 80700000000000000000000000000000]
09:47:48,486    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 0008 807000]
09:47:48,502    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 0008 10000000000000000000000000000000]
        16: COLOR LED EFFECTS      {8070}   
09:47:48,502    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 0118 110000]
09:47:48,518    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 0118 18106000000000000000000000000000]
09:47:48,518    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 000D 181000]
09:47:48,534    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 000D 11600000000000000000000000000000]
        17: unknown:1810           {1810}   internal, hidden
09:47:48,534    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 011F 120000]
09:47:48,549    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 011F 18306000000000000000000000000000]
09:47:48,550    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 000C 183000]
09:47:48,566    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 000C 12600000000000000000000000000000]
        18: unknown:1830           {1830}   internal, hidden
09:47:48,566    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 011B 130000]
09:47:48,582    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 011B 18506000000000000000000000000000]
09:47:48,582    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 000B 185000]
09:47:48,598    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 000B 13600000000000000000000000000000]
        19: unknown:1850           {1850}   internal, hidden
09:47:48,598    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 011F 140000]
09:47:48,614    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 011F 18606000000000000000000000000000]
09:47:48,614    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 000F 186000]
09:47:48,630    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 000F 14600000000000000000000000000000]
        20: unknown:1860           {1860}   internal, hidden
09:47:48,630    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 011A 150000]
09:47:48,646    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 011A 18906000000000000000000000000000]
09:47:48,646    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 000D 189000]
09:47:48,662    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 000D 15600000000000000000000000000000]
        21: unknown:1890           {1890}   internal, hidden
09:47:48,662    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 011F 160000]
09:47:48,678    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 011F 18A06000000000000000000000000000]
09:47:48,678    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 0009 18A000]
09:47:48,693    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 0009 16600000000000000000000000000000]
        22: unknown:18A0           {18A0}   internal, hidden
09:47:48,694    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 050C 000000]
09:47:48,710    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 050C 32140000000000000000000000000000]
09:47:48,710    DEBUG [MainThread] logitech_receiver.hidpp20: device 1 battery 50% charged, next level 20% charge, status 0 = discharging
     Battery: 50%, discharging.

Moving error message 8001008000 to https://github.com/pwr-Solaar/Solaar/issues/661 to keep issues focussed

@pfps are there other changes I can make/test locally?

@rijnhard I don't think so. At least not right now. I don't think that the PRs that I've put in will materially affect your situation, although there are changes to the receiver code there. I don't even think that the changes I almost have ready will change your experience either, although they also make changes to the handling of receivers. If you have some time on your hands you could clone my Solaar repository from https://github.com/pfps/Solaar and try out the receivers and c534 branches, but I don't think that they will change anything for you.

The error that I find the most puzzling is the feature one that is on the other issue. It looks to me from the above solaar show log that your mouse implements the HID++ 2.0 features to spec.

@pfps @rijnhard "Message 8001008000 should never happen" in https://github.com/pwr-Solaar/Solaar/issues/128#issuecomment-578130755

Looks to me like an uncaught exception. What happens if we roll back to master, ensure python3, and make only the following change to Solaar/lib/logitech_receiver/listener.py?

                try:
                    # _log.debug("read next notification")
                    n = _base.read(ihandle, _EVENT_READ_TIMEOUT)
                except _base.NoReceiver:
                    _log.warning("receiver disconnected")
                    self.receiver.close()
                    break

becomes

                try:
                    # _log.debug("read next notification")
                    n = _base.read(ihandle, _EVENT_READ_TIMEOUT)
                except _base.NoReceiver:
                    _log.warning("receiver disconnected")
                    self.receiver.close()
                    break
                except: # allow unnamed errors to continue
                    _log.warning("unexpected read error: ", sys.exc_info()[0])
                    # break
                    # pass
                    continue


Whether we want continue/pass/break/or raise I'm not certain. We basically have raise in the current uncaught scenario. And here's some doc for the suggestion above https://docs.python.org/2/tutorial/errors.html and https://docs.python.org/2/library/sys.html

@mickleby changes made but i had to change the warning to _log.warning("unexpected read error: %s", traceback.format_exc())

solaar -dd show

sudo python3 ./bin/solaar -dd show
09:49:40,951    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 FF 83B5 030000]
09:49:40,953    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 83B5 0384E398F30101070000000000000000]
09:49:40,953    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 FF 80B2 000000]
09:49:40,953    DEBUG [MainThread] logitech_receiver.base: (3) => r[10 FF 8F80 B20300]
09:49:40,954    DEBUG [MainThread] logitech_receiver.base: (3) device 0xFF error on request {80B2}: 3 = invalid value
09:49:40,954    DEBUG [MainThread] solaar.cli: [/dev/hidraw3] => <NanoReceiver(/dev/hidraw3,3)>
09:49:40,967    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 FF 8102 000000]
09:49:40,969    DEBUG [MainThread] logitech_receiver.base: (3) => r[10 FF 8102 000100]
Nano Receiver
  Device path  : /dev/hidraw3
  USB id       : 046d:c537
  Serial       : 84E398F3
09:49:40,969    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 FF 81F1 010000]
09:49:40,969    DEBUG [MainThread] logitech_receiver.base: (3) => r[10 FF 81F1 013400]
09:49:40,970    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 FF 81F1 020000]
09:49:40,971    DEBUG [MainThread] logitech_receiver.base: (3) => r[10 FF 81F1 020002]
09:49:40,971    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 FF 81F1 040000]
09:49:40,972    DEBUG [MainThread] logitech_receiver.base: (3) => r[10 FF 81F1 040214]
09:49:40,972    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 FF 81F1 030000]
09:49:40,972    DEBUG [MainThread] logitech_receiver.base: (3) => r[10 FF 8F81 F10300]
09:49:40,972    DEBUG [MainThread] logitech_receiver.base: (3) device 0xFF error on request {81F1}: 3 = invalid value
    Firmware   : 34.00.B0002
    Bootloader : 02.14
  Has 1 paired device(s) out of a maximum of 1.
09:49:40,973    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 FF 8102 000000]
09:49:40,973    DEBUG [MainThread] logitech_receiver.base: (3) => r[10 FF 8102 000100]
09:49:40,973    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 FF 8100 000000]
09:49:40,974    DEBUG [MainThread] logitech_receiver.base: (3) => r[10 FF 8100 000900]
  Notifications: wireless, software present (0x000900)
09:49:40,975    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 FF 83B3 000000]
09:49:40,975    DEBUG [MainThread] logitech_receiver.base: (3) => r[10 FF 8F83 B30200]
09:49:40,975    DEBUG [MainThread] logitech_receiver.base: (3) device 0xFF error on request {83B3}: 2 = invalid address
09:49:40,976    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 FF 8102 000000]
09:49:40,976    DEBUG [MainThread] logitech_receiver.base: (3) => r[10 FF 8102 000100]
09:49:40,977    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 FF 83B5 200000]
09:49:40,977    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 83B5 200708402C0701023200000000000000]
09:49:40,978    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 FF 83B5 400000]
09:49:40,978    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 83B5 40044736303200000000000000000000]
09:49:40,979     INFO [MainThread] logitech_receiver.receiver: <NanoReceiver(/dev/hidraw3,3)>: found new device 1 (402C)

09:49:40,979    DEBUG [MainThread] logitech_receiver.base: (3) pinging device 1
09:49:40,979    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 001A 000070]
09:49:41,047    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 001A 02007000000000000000000000000000]
09:49:41,047    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 000A 000100]
09:49:41,151    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 000A 01000000000000000000000000000000]
09:49:41,151    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 010F 000000]
09:49:41,247    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 010F 16000000000000000000000000000000]
09:49:41,247    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 000F 000500]
09:49:41,351    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 000F 03000000000000000000000000000000]
09:49:41,351    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 030B 000000]
09:49:41,447    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 030B 15000000000000000000000000000000]
09:49:41,447    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 031A 000000]
09:49:41,551    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 031A 576972656C6573732047616D696E6720]
09:49:41,551    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 031B 100000]
09:49:41,655    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 031B 4D6F7573650000000000000000000000]
  1: Wireless Gaming Mouse
     Codename     : G602
     Kind         : mouse
     Wireless PID : 402C
     Protocol     : HID++ 2.0
     Polling rate : 8 ms (125Hz)
09:49:41,655    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 FF 83B5 300000]
09:49:41,657    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 FF 83B5 308D13D0BD0E00000001000000000000]
     Serial number: 8D13D0BD
09:49:41,657    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 000D 000300]
09:49:41,751    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 000D 02000000000000000000000000000000]
09:49:41,751    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 0208 000000]
09:49:41,854    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 0208 03000000000000000000000000000000]
09:49:41,855    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 021E 000000]
09:49:41,959    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 021E 0052514D4700001000402C0000000000]
09:49:41,959    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 021B 010000]
09:49:42,055    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 021B 01424C200200000100402C0000000000]
09:49:42,055    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 021C 020000]
09:49:42,159    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 021C 024857200200000000402C0000000000]
          Firmware: RQM 47.00.B0010
        Bootloader: BL  02.00.B0001
          Hardware: 72
     The power switch is located on the base.
     Supports 23 HID++ 2.0 features:
09:49:42,159    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 0009 000000]
09:49:42,255    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 0009 00000000000000000000000000000000]
         0: ROOT                   {0000}   
09:49:42,255    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 000E 000100]
09:49:42,343    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 000E 01000000000000000000000000000000]
         1: FEATURE SET            {0001}   
09:49:42,343    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 0008 000300]
09:49:42,359    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 0008 02000000000000000000000000000000]
         2: DEVICE FW VERSION      {0003}   
09:49:42,359    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 0008 000500]
09:49:42,375    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 0008 03000000000000000000000000000000]
         3: DEVICE NAME            {0005}   
09:49:42,375    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 011D 040000]
09:49:42,391    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 011D 00C00000000000000000000000000000]
09:49:42,391    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 000F 00C000]
09:49:42,407    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 000F 04000000000000000000000000000000]
         4: DFUCONTROL LEGACY      {00C0}   
09:49:42,407    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 0118 050000]
09:49:42,423    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 0118 10000000000000000000000000000000]
09:49:42,423    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 0008 100000]
09:49:42,439    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 0008 05000000000000000000000000000000]
         5: BATTERY STATUS         {1000}   
09:49:42,439    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 011C 060000]
09:49:42,454    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 011C 1D4B0000000000000000000000000000]
09:49:42,454    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 000E 1D4B00]
09:49:42,511    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 000E 06000000000000000000000000000000]
         6: WIRELESS DEVICE STATUS {1D4B}   
09:49:42,511    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 011F 070000]
09:49:42,527    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 011F 1DF36000000000000000000000000000]
09:49:42,527    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 000C 1DF300]
09:49:42,598    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 000C 07600000000000000000000000000000]
         7: unknown:1DF3           {1DF3}   internal, hidden
09:49:42,599    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 011E 080000]
09:49:42,614    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 011E 1E004000000000000000000000000000]
09:49:42,615    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 000B 1E0000]
09:49:42,719    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 000B 08400000000000000000000000000000]
         8: unknown:1E00           {1E00}   hidden
09:49:42,719    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 011C 090000]
09:49:42,823    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 011C 1E806000000000000000000000000000]
09:49:42,823    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 000D 1E8000]
09:49:42,879    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 000D 09600000000000000000000000000000]
         9: unknown:1E80           {1E80}   internal, hidden
09:49:42,879    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 0118 0A0000]
09:49:42,893    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 0118 1F036000000000000000000000000000]
09:49:42,894    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 000F 1F0300]
09:49:42,911    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 000F 0A600000000000000000000000000000]
        10: unknown:1F03           {1F03}   internal, hidden
09:49:42,911    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 011B 0B0000]
09:49:42,926    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 011B 21000000000000000000000000000000]
09:49:42,927    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 000B 210000]
09:49:42,943    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 000B 0B000000000000000000000000000000]
        11: VERTICAL SCROLLING     {2100}   
09:49:42,943    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 0B0F 000000]
09:49:42,959    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 0B0F 01180000000000000000000000000000]
            Roller type: standard
            Ratchet per turn: 24
            Scroll lines: 0
09:49:42,959    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 011C 0C0000]
09:49:42,974    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 011C 22000000000000000000000000000000]
09:49:42,974    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 0009 220000]
09:49:42,991    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 0009 0C000000000000000000000000000000]
        12: MOUSE POINTER          {2200}   
09:49:42,991    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 0C0C 000000]
09:49:43,078    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 0C0C 03E80100000000000000000000000000]
            DPI: 1000
            Acceleration: low
            Override OS ballistics
            No vertical tuning, standard mice
09:49:43,078    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 011D 0D0000]
09:49:43,183    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 011D 22010000000000000000000000000000]
09:49:43,183    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 000E 220100]
09:49:43,278    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 000E 0D000000000000000000000000000000]
        13: ADJUSTABLE DPI         {2201}   
09:49:43,278    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 011E 0E0000]
09:49:43,359    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 011E 80800000000000000000000000000000]
09:49:43,359    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 0009 808000]
09:49:43,374    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 0009 0E000000000000000000000000000000]
        14: PER KEY LIGHTING       {8080}   
09:49:43,375    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 011B 0F0000]
09:49:43,390    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 011B 80600000000000000000000000000000]
09:49:43,391    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 000D 806000]
09:49:43,406    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 000D 0F000000000000000000000000000000]
        15: REPORT RATE            {8060}   
09:49:43,407    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 0119 100000]
09:49:43,422    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 0119 80700000000000000000000000000000]
09:49:43,422    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 000F 807000]
09:49:43,439    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 000F 10000000000000000000000000000000]
        16: COLOR LED EFFECTS      {8070}   
09:49:43,439    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 011F 110000]
09:49:43,455    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 011F 18106000000000000000000000000000]
09:49:43,455    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 000A 181000]
09:49:43,471    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 000A 11600000000000000000000000000000]
        17: unknown:1810           {1810}   internal, hidden
09:49:43,471    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 011A 120000]
09:49:43,487    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 011A 18306000000000000000000000000000]
09:49:43,487    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 0009 183000]
09:49:43,502    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 0009 12600000000000000000000000000000]
        18: unknown:1830           {1830}   internal, hidden
09:49:43,503    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 011B 130000]
09:49:43,519    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 011B 18506000000000000000000000000000]
09:49:43,519    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 000F 185000]
09:49:43,534    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 000F 13600000000000000000000000000000]
        19: unknown:1850           {1850}   internal, hidden
09:49:43,535    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 011A 140000]
09:49:43,550    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 011A 18606000000000000000000000000000]
09:49:43,550    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 0009 186000]
09:49:43,567    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 0009 14600000000000000000000000000000]
        20: unknown:1860           {1860}   internal, hidden
09:49:43,567    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 011A 150000]
09:49:43,583    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 011A 18906000000000000000000000000000]
09:49:43,583    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 000E 189000]
09:49:43,599    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 000E 15600000000000000000000000000000]
        21: unknown:1890           {1890}   internal, hidden
09:49:43,599    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 011E 160000]
09:49:43,615    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 011E 18A06000000000000000000000000000]
09:49:43,615    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 000A 18A000]
09:49:43,631    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 000A 16600000000000000000000000000000]
        22: unknown:18A0           {18A0}   internal, hidden
09:49:43,631    DEBUG [MainThread] logitech_receiver.base: (3) <= w[10 01 050C 000000]
09:49:43,647    DEBUG [MainThread] logitech_receiver.base: (3) => r[11 01 050C 32140000000000000000000000000000]
09:49:43,647    DEBUG [MainThread] logitech_receiver.hidpp20: device 1 battery 50% charged, next level 20% charge, status 0 = discharging
     Battery: 50%, discharging.

Here is the standard run: sudo python3 ./bin/solaar -dd

sudo python3 ./bin/solaar -dd
10:43:33,913     INFO [MainThread] root: language en_ZA (UTF-8), translations path /Data/OpenSource/Solaar/share/locale
10:43:33,992    DEBUG [MainThread] solaar.ui.tray: using AppIndicator3
10:43:34,002     INFO [MainThread] solaar.upower: connected to system dbus, watching for suspend/resume events
10:43:34,166    DEBUG [MainThread] solaar.ui: startup registered=True, remote=False
10:43:34,167    DEBUG [AsyncUI] solaar.tasks: started
10:43:34,174    DEBUG [MainThread] solaar.ui.icons: sys.path[0] = /Data/OpenSource/Solaar/lib
10:43:34,175    DEBUG [MainThread] solaar.ui.icons: looking for icons in /Data/OpenSource/Solaar/icons
10:43:34,175    DEBUG [MainThread] solaar.ui.icons: looking for icons in /Data/OpenSource/Solaar/share/solaar/icons
10:43:34,175    DEBUG [MainThread] solaar.ui.icons: looking for icons in /home/rijnhard/.local/share/solaar/icons
10:43:34,175    DEBUG [MainThread] solaar.ui.icons: looking for icons in /Data/OpenSource/Solaar/share/solaar/icons
10:43:34,175    DEBUG [MainThread] solaar.ui.icons: looking for icons in /usr/local/share/solaar/icons
10:43:34,175    DEBUG [MainThread] solaar.ui.icons: looking for icons in /usr/share/solaar/icons
10:43:34,175    DEBUG [MainThread] solaar.ui.icons: icon theme paths: ['/usr/share/solaar/icons', '/Data/OpenSource/Solaar/share/solaar/icons', '/Data/OpenSource/Solaar/share/solaar/icons', '/home/rijnhard/.local/share/icons', '/home/rijnhard/.icons', '/usr/local/share/icons', '/usr/share/icons', '/usr/local/share/pixmaps', '/usr/share/pixmaps']
10:43:34,191    DEBUG [MainThread] solaar.ui.icons: detected icon sets: Mint True, gpm True, oxygen True, gnome True, elementary True
10:43:34,228     INFO [MainThread] solaar.listener: starting receiver listening threads
10:43:34,272     INFO [MainThread] solaar.listener: receiver event add DeviceInfo(path='/dev/hidraw3', vendor_id='046d', product_id='c537', serial='', release=b'3400', manufacturer=b'Logitech', product=b'USB Receiver', interface=1, driver='hid-generic')
10:43:34,272    DEBUG [MainThread] logitech_receiver.base: (12) <= w[10 FF 83B5 030000]
10:43:34,274    DEBUG [MainThread] logitech_receiver.base: (12) => r[11 FF 83B5 0384E398F30101070000000000000000]
10:43:34,274    DEBUG [MainThread] logitech_receiver.base: (12) <= w[10 FF 80B2 000000]
10:43:34,275    DEBUG [MainThread] logitech_receiver.base: (12) => r[10 FF 8F80 B20300]
10:43:34,275    DEBUG [MainThread] logitech_receiver.base: (12) device 0xFF error on request {80B2}: 3 = invalid value
10:43:34,275     INFO [ReceiverListener:hidraw3] logitech_receiver.listener: started with <NanoReceiver(/dev/hidraw3,12)> (12)
10:43:34,275     INFO [ReceiverListener:hidraw3] solaar.listener: <NanoReceiver(/dev/hidraw3,12)>: notifications listener has started (12)
10:43:34,275    DEBUG [ReceiverListener:hidraw3] logitech_receiver.base: (12) <= w[10 FF 8000 100900]
10:43:34,277    DEBUG [ReceiverListener:hidraw3] logitech_receiver.base: (12) => r[10 FF 8000 000000]
10:43:34,277    DEBUG [ReceiverListener:hidraw3] logitech_receiver.base: (12) <= w[10 FF 8100 000000]
10:43:34,279    DEBUG [ReceiverListener:hidraw3] logitech_receiver.base: (12) => r[10 FF 8100 000900]
10:43:34,279     INFO [ReceiverListener:hidraw3] logitech_receiver.receiver: <NanoReceiver(/dev/hidraw3,12)>: receiver notifications enabled => ('wireless', 'software present')
10:43:34,279    DEBUG [ReceiverListener:hidraw3] logitech_receiver.base: (12) <= w[10 FF 8002 020000]
10:43:34,280    DEBUG [ReceiverListener:hidraw3] logitech_receiver.base: (12) => r[10 01 4107 122C40]
10:43:34,280    DEBUG [ReceiverListener:hidraw3] logitech_receiver.base: (12) => r[10 FF 8002 000000]
10:43:34,281     INFO [ReceiverListener:hidraw3] solaar.listener: status_changed <NanoReceiver(/dev/hidraw3,12)>: present, No paired devices. (0) 
10:43:34,281    DEBUG [ReceiverListener:hidraw3] logitech_receiver.base: (12) <= w[10 FF 83B5 400000]
10:43:34,283    DEBUG [ReceiverListener:hidraw3] logitech_receiver.base: (12) => r[11 FF 83B5 40044736303200000000000000000000]
10:43:34,283     INFO [ReceiverListener:hidraw3] logitech_receiver.receiver: <NanoReceiver(/dev/hidraw3,12)>: found new device 1 (402C)
10:43:34,283    DEBUG [ReceiverListener:hidraw3] logitech_receiver.base: (12) <= w[10 FF 83B5 300000]
10:43:34,285    DEBUG [ReceiverListener:hidraw3] logitech_receiver.base: (12) => r[11 FF 83B5 308D13D0BD0E00000001000000000000]
10:43:34,283     INFO [ReceiverListener:hidraw3] solaar.listener: Notification(1,41,07,122C40) triggered new device <PairedDevice(1,402C,G602,8D13D0BD)> (mouse)
10:43:34,285    DEBUG [ReceiverListener:hidraw3] solaar.configuration: load => {'402C:8D13D0BD': {'_name': 'Wireless Gaming Mouse'}, '_version': '1.0.1'}
10:43:34,285    DEBUG [ReceiverListener:hidraw3] logitech_receiver.base: (12) pinging device 1
10:43:34,285    DEBUG [ReceiverListener:hidraw3] logitech_receiver.base: (12) <= w[10 01 001E 000090]
10:43:34,288    DEBUG [MainThread] solaar.ui: activate
10:43:34,289    DEBUG [MainThread] solaar.ui: status changed: <NanoReceiver(/dev/hidraw3,12)> (NONE) None
10:43:34,290    DEBUG [MainThread] solaar.ui.window: new receiver row ('/dev/hidraw3', 0, True, 'Nano Receiver', 'preferences-desktop-peripherals', None, None, <NanoReceiver(/dev/hidraw3,12)>)
10:43:34,391    DEBUG [ReceiverListener:hidraw3] logitech_receiver.base: (12) => r[11 01 001E 02009000000000000000000000000000]
10:43:34,391    DEBUG [ReceiverListener:hidraw3] logitech_receiver.base: (12) <= w[10 01 000B 000100]
10:43:34,495    DEBUG [ReceiverListener:hidraw3] logitech_receiver.base: (12) => r[11 01 000B 01000000000000000000000000000000]
10:43:34,495    DEBUG [ReceiverListener:hidraw3] logitech_receiver.base: (12) <= w[10 01 010B 000000]
10:43:34,599    DEBUG [ReceiverListener:hidraw3] logitech_receiver.base: (12) => r[11 01 010B 16000000000000000000000000000000]
10:43:34,599    DEBUG [ReceiverListener:hidraw3] logitech_receiver.base: (12) <= w[10 01 000B 000500]

(solaar:18510): Gdk-CRITICAL **: 10:43:34.690: gdk_window_thaw_toplevel_updates: assertion 'window->update_and_descendants_freeze_count > 0' failed
10:43:34,695    DEBUG [ReceiverListener:hidraw3] logitech_receiver.base: (12) => r[11 01 000B 03000000000000000000000000000000]
10:43:34,695    DEBUG [ReceiverListener:hidraw3] logitech_receiver.base: (12) <= w[10 01 0308 000000]
10:43:34,799    DEBUG [ReceiverListener:hidraw3] logitech_receiver.base: (12) => r[11 01 0308 15000000000000000000000000000000]
10:43:34,799    DEBUG [ReceiverListener:hidraw3] logitech_receiver.base: (12) <= w[10 01 031A 000000]
10:43:34,904    DEBUG [ReceiverListener:hidraw3] logitech_receiver.base: (12) => r[11 01 031A 576972656C6573732047616D696E6720]
10:43:34,904    DEBUG [ReceiverListener:hidraw3] logitech_receiver.base: (12) <= w[10 01 0318 100000]
10:43:35,000    DEBUG [ReceiverListener:hidraw3] logitech_receiver.base: (12) => r[11 01 0318 4D6F7573650000000000000000000000]
10:43:35,000     INFO [ReceiverListener:hidraw3] solaar.listener: status_changed <NanoReceiver(/dev/hidraw3,12)>: present, 1 paired device. (0) 
10:43:35,001    DEBUG [ReceiverListener:hidraw3] logitech_receiver.notifications: <PairedDevice(1,402C,G602,8D13D0BD)>: eQUAD step 4 Gaming connection notification: software=True, encrypted=False, link=True, payload=False
10:43:35,001    DEBUG [ReceiverListener:hidraw3] logitech_receiver.base: (12) <= w[10 01 000C 212000]
10:43:35,001    DEBUG [MainThread] solaar.ui: status changed: <NanoReceiver(/dev/hidraw3,12)> (NONE) None
10:43:35,104    DEBUG [ReceiverListener:hidraw3] logitech_receiver.base: (12) => r[11 01 000C 00000000000000000000000000000000]
10:43:35,104    DEBUG [ReceiverListener:hidraw3] logitech_receiver.base: (12) <= w[10 01 000B 213000]
10:43:35,200    DEBUG [ReceiverListener:hidraw3] logitech_receiver.base: (12) => r[11 01 000B 00000000000000000000000000000000]
10:43:35,200    DEBUG [ReceiverListener:hidraw3] logitech_receiver.base: (12) <= w[10 01 000A 212100]
10:43:35,296    DEBUG [ReceiverListener:hidraw3] logitech_receiver.base: (12) => r[11 01 000A 00000000000000000000000000000000]
10:43:35,296    DEBUG [ReceiverListener:hidraw3] logitech_receiver.base: (12) <= w[10 01 000A 212100]
10:43:35,312    DEBUG [ReceiverListener:hidraw3] logitech_receiver.base: (12) => r[11 01 000A 00000000000000000000000000000000]
10:43:35,313    DEBUG [ReceiverListener:hidraw3] logitech_receiver.base: (12) <= w[10 01 000A 40A000]
10:43:35,328    DEBUG [ReceiverListener:hidraw3] logitech_receiver.base: (12) => r[11 01 000A 00000000000000000000000000000000]
10:43:35,328    DEBUG [ReceiverListener:hidraw3] logitech_receiver.base: (12) <= w[10 01 000B 40A200]
10:43:35,344    DEBUG [ReceiverListener:hidraw3] logitech_receiver.base: (12) => r[11 01 000B 00000000000000000000000000000000]
10:43:35,345    DEBUG [ReceiverListener:hidraw3] logitech_receiver.base: (12) <= w[10 01 000A 40A300]
10:43:35,360    DEBUG [ReceiverListener:hidraw3] logitech_receiver.base: (12) => r[11 01 000A 00000000000000000000000000000000]
10:43:35,360    DEBUG [ReceiverListener:hidraw3] logitech_receiver.base: (12) <= w[10 01 000F 220100]
10:43:35,376    DEBUG [ReceiverListener:hidraw3] logitech_receiver.base: (12) => r[11 01 000F 0D000000000000000000000000000000]
10:43:35,376    DEBUG [ReceiverListener:hidraw3] logitech_receiver.base: (12) <= w[10 01 0D18 000000]
10:43:35,392    DEBUG [ReceiverListener:hidraw3] logitech_receiver.base: (12) => r[11 01 FF0D 18020000000000000000000000000000]
10:43:35,392    ERROR [ReceiverListener:hidraw3] logitech_receiver.base: (12) device 1 error on feature request {0D18}: 2 = invalid argument
10:43:35,393    ERROR [ReceiverListener:hidraw3] logitech_receiver.listener: processing Notification(1,41,07,122C40)
Traceback (most recent call last):
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/listener.py", line 193, in run
    self._notifications_callback(n)
  File "/Data/OpenSource/Solaar/lib/solaar/listener.py", line 232, in _notifications_handler
    _notifications.process(dev, n)
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/notifications.py", line 54, in process
    return _process_device_notification(device, status, notification)
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/notifications.py", line 97, in _process_device_notification
    return _process_hidpp10_notification(device, status, n)
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/notifications.py", line 183, in _process_hidpp10_notification
    status.changed(active=link_established)
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/status.py", line 264, in changed
    for s in d.settings:
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/receiver.py", line 255, in settings
    _check_feature_settings(self, self._settings)
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/settings_templates.py", line 403, in check_feature_settings
    check_feature(_DPI[0],           _F.ADJUSTABLE_DPI)
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/settings_templates.py", line 394, in check_feature
    already_known.append(feature(device))
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/settings_templates.py", line 96, in instantiate
    choices = choices_callback(device)
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/settings_templates.py", line 264, in _feature_adjustable_dpi_choices
    reply = device.feature_request(_F.ADJUSTABLE_DPI, 0x10)
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/receiver.py", line 289, in feature_request
    return _hidpp20.feature_request(self, feature, function, *params)
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/hidpp20.py", line 443, in feature_request
    return device.request((feature_index << 8) + (function & 0xFF), *params)
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/receiver.py", line 282, in request
    return _base.request(self.receiver.handle, self.number, request_id, *params)
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/base.py", line 374, in request
    raise _hidpp20.FeatureCallError(number=devnumber, request=request_id, error=error, params=params)
logitech_receiver.hidpp20.FeatureCallError: {'number': 1, 'request': 3352, 'error': 2, 'params': b''}
10:43:36,385  WARNING [ReceiverListener:hidraw3] logitech_receiver.listener: unexpected read error: Traceback (most recent call last):
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/listener.py", line 172, in run
    n = _base.read(ihandle, _EVENT_READ_TIMEOUT)
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/base.py", line 187, in read
    reply = _read(handle, timeout)
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/base.py", line 217, in _read
    "unexpected message size (%d): report_id %02X message %s" % (len(data), report_id, _strhex(data))
AssertionError: unexpected message size (5): report_id 80 message 8001008000

10:43:37,058  WARNING [ReceiverListener:hidraw3] logitech_receiver.listener: unexpected read error: Traceback (most recent call last):
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/listener.py", line 172, in run
    n = _base.read(ihandle, _EVENT_READ_TIMEOUT)
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/base.py", line 187, in read
    reply = _read(handle, timeout)
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/base.py", line 217, in _read
    "unexpected message size (%d): report_id %02X message %s" % (len(data), report_id, _strhex(data))
AssertionError: unexpected message size (5): report_id 80 message 8000008000

10:43:47,655  WARNING [ReceiverListener:hidraw3] logitech_receiver.listener: unexpected read error: Traceback (most recent call last):
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/listener.py", line 172, in run
    n = _base.read(ihandle, _EVENT_READ_TIMEOUT)
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/base.py", line 187, in read
    reply = _read(handle, timeout)
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/base.py", line 217, in _read
    "unexpected message size (%d): report_id %02X message %s" % (len(data), report_id, _strhex(data))
AssertionError: unexpected message size (5): report_id 80 message 8001008000

The assertion error spams the output, to note here that the message alternates between 8000008000 and 8001008000

This was interesting, when I commented out check_feature(_DPI[0], _F.ADJUSTABLE_DPI) in settings_templates.py then this happened. see check_feature(_HIRES_INV[0], _F.HIRES_WHEEL, "hires_smooth_invert")

10:38:04,199    DEBUG [ReceiverListener:hidraw3] logitech_receiver.base: (12) => r[11 01 0008 00000000000000000000000000000000]
Traceback (most recent call last):
  File "/Data/OpenSource/Solaar/lib/solaar/ui/window.py", line 380, in _device_selected
    _update_info_panel(device, full=True)
  File "/Data/OpenSource/Solaar/lib/solaar/ui/window.py", line 705, in _update_info_panel
    _update_device_panel(device, _info._device, _info._buttons, full)
  File "/Data/OpenSource/Solaar/lib/solaar/ui/window.py", line 676, in _update_device_panel
    _config_panel.update(device, is_online)
  File "/Data/OpenSource/Solaar/lib/solaar/ui/config_panel.py", line 206, in update
    for s in device.settings:
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/receiver.py", line 255, in settings
    _check_feature_settings(self, self._settings)
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/settings_templates.py", line 398, in check_feature_settings
    check_feature(_HIRES_INV[0],     _F.HIRES_WHEEL, "hires_smooth_invert")
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/settings_templates.py", line 386, in check_feature
    if not featureId in device.features:
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/hidpp20.py", line 324, in __contains__
    reply = self.device.request(0x0000, _pack('!H', ivalue))
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/receiver.py", line 282, in request
    return _base.request(self.receiver.handle, self.number, request_id, *params)
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/base.py", line 348, in request
    reply = _read(handle, timeout)
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/base.py", line 217, in _read
    "unexpected message size (%d): report_id %02X message %s" % (len(data), report_id, _strhex(data))
AssertionError: unexpected message size (5): report_id 80 message 8001008000

So this may be obvious but I discovered something: THe error message changes depending on the button I press, SO I tested all of them, here are the error codes and the buttons

  • 8001008000: Left mouse button Down
  • 8002008000: Right mouse button Down
  • 8008008000: G4 Down
  • 8010008000: G5 Down
  • 8020008000: G6 Down
  • 8040008000: G7 Down
  • 8080008000: G8 Down
  • 8000018000: G9 Down
  • 8000028000: G10 Down
  • 8000048000: G11 Down
  • 8000008000: Any mouse button Up

G11 Did also generate its own error (which was set to decrease mouse sensitivity)

10:58:45,929    DEBUG [ReceiverListener:hidraw3] logitech_receiver.base: (12) => r[11 01 0E00 06000000000000000000000000000000]
10:58:45,929  WARNING [ReceiverListener:hidraw3] logitech_receiver.notifications: <PairedDevice(1,402C,G602,8D13D0BD)>: unrecognized Notification(1,0E,00,06000000000000000000000000000000) for feature PER KEY LIGHTING (index 0E)
10:58:46,018  WARNING [ReceiverListener:hidraw3] logitech_receiver.listener: unexpected read error: Traceback (most recent call last):
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/listener.py", line 172, in run
    n = _base.read(ihandle, _EVENT_READ_TIMEOUT)
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/base.py", line 187, in read
    reply = _read(handle, timeout)
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/base.py", line 217, in _read
    "unexpected message size (%d): report_id %02X message %s" % (len(data), report_id, _strhex(data))
AssertionError: unexpected message size (5): report_id 80 message 8000048000

I added (report_id == 0x80 and len(data) == _VERY_SHORT_MESSAGE_SIZE) to base.py in the similar sections and added _VERY_SHORT_MESSAGE_SIZE = 5. Thsi started giving me some further down the rabbit hole errors.

11:39:37,168    DEBUG [ReceiverListener:hidraw3] logitech_receiver.base: (12) => r[80 01 0080 00]
11:39:37,169  WARNING [ReceiverListener:hidraw3] logitech_receiver.notifications: <PairedDevice(1,402C,G602,8D13D0BD)>: unrecognized Notification(1,00,80,00) for feature ROOT (index 00)
11:39:37,232    DEBUG [ReceiverListener:hidraw3] logitech_receiver.base: (12) => r[80 00 0080 00]
11:39:37,233    ERROR [ReceiverListener:hidraw3] logitech_receiver.listener: processing Notification(0,00,80,00)
Traceback (most recent call last):
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/listener.py", line 193, in run
    self._notifications_callback(n)
  File "/Data/OpenSource/Solaar/lib/solaar/listener.py", line 185, in _notifications_handler
    assert 0 < n.devnumber <= self.receiver.max_devices
AssertionError

So from my understanding it cant handle messages because they are shorter than expected, but the funny thing is the k800 keyboard also seems to print shorter messages.

@rijnhard I'll digest your posted output soon. You have listener.py set to continue? Did you do runs with break? I'm thinking something like, first trap the reads that cause exceptions then deliberately add processing for the reads specific to G602.

BTW do you notice failures specific to python2? I'm curious what that separate discussion is about. I get the idea some features fail with python2, but perhaps it's only that python2 is EOL.

@mickleby

You have listener.py set to continue

yes, but I tested now with break and the errors are the same

BTW do you notice failures specific to python2

Yup

11:16:17,739    ERROR [MainThread] logitech_receiver.receiver: open DeviceInfo(path=u'/dev/hidraw3', vendor_id=u'046d', product_id=u'c537', serial=u'', release='3400', manufacturer='Logitech', product='USB Receiver', interface=1, driver=u'hid-generic')
Traceback (most recent call last):
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/receiver.py", line 546, in open
    return Receiver(handle, device_info)
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/receiver.py", line 339, in __init__
    raise Exception("unknown receiver type", self.product_id)
Exception: (u'unknown receiver type', u'c537')
Exception AttributeError: "'Receiver' object has no attribute '_devices'" in <object repr() failed> ignored
11:16:17,739  WARNING [MainThread] solaar.listener: failed to open DeviceInfo(path=u'/dev/hidraw3', vendor_id=u'046d', product_id=u'c537', serial=u'', release='3400', manufacturer='Logitech', product='USB Receiver', interface=1, driver=u'hid-generic')

@rijnhard The assertion error you are seeing comes from Solaar trying to parse this report as an HID++ device notification where the device number is the second byte of the message. The 80xxxxxxxx reports don't conform to this setup. The quick-and-dirty solution for Solaar is to bail on these messages very early (in base.py), but that would preclude any further processing of them.

@rjinhard I made some minor additions to a branch of Solaar that is waiting to be merged that should handle the c537 and ignore the 80xxxxxxxx messages. As I don't have the hardware I can't check out how well they work.
To try out these changes, clone https://github.com/pfps/Solaar and check out the c537 branch. You can then run bin/solaar. If the permissions on the device have not been liberalized you will have to sudo bin/solaar.

@pfps the tl;dr of the output below is I can see your message ignoring, but there is still an _F.ADJUSTABLE_DPI error.

That said, solaar doesn't crash, and the receiver is detected (the mouse isn't). I would think this is sufficient for a merge at least, then we can carry on.

also silly question, but this receiver is 500Hz not 1000Hz as most of the other nano receivers, you think that could be a factor?

sudo python3 ./bin/solaar -dd
[sudo] password for rijnhard:          
18:57:35,156     INFO [MainThread] root: language en_ZA (UTF-8), translations path /Data/OpenSource/Solaar/share/locale
18:57:35,320    DEBUG [MainThread] solaar.ui.tray: using AppIndicator3
18:57:35,361     INFO [MainThread] solaar.upower: connected to system dbus, watching for suspend/resume events
18:57:35,675    DEBUG [MainThread] solaar.ui: startup registered=True, remote=False
18:57:35,680    DEBUG [AsyncUI] solaar.tasks: started
18:57:35,695    DEBUG [MainThread] solaar.ui.icons: sys.path[0] = /Data/OpenSource/Solaar/lib
18:57:35,695    DEBUG [MainThread] solaar.ui.icons: looking for icons in /Data/OpenSource/Solaar/icons
18:57:35,695    DEBUG [MainThread] solaar.ui.icons: looking for icons in /Data/OpenSource/Solaar/share/solaar/icons
18:57:35,695    DEBUG [MainThread] solaar.ui.icons: looking for icons in /home/rijnhard/.local/share/solaar/icons
18:57:35,695    DEBUG [MainThread] solaar.ui.icons: looking for icons in /Data/OpenSource/Solaar/share/solaar/icons
18:57:35,695    DEBUG [MainThread] solaar.ui.icons: looking for icons in /usr/local/share/solaar/icons
18:57:35,696    DEBUG [MainThread] solaar.ui.icons: looking for icons in /usr/share/solaar/icons
18:57:35,696    DEBUG [MainThread] solaar.ui.icons: icon theme paths: ['/usr/share/solaar/icons', '/Data/OpenSource/Solaar/share/solaar/icons', '/Data/OpenSource/Solaar/share/solaar/icons', '/home/rijnhard/.local/share/icons', '/home/rijnhard/.icons', '/usr/local/share/icons', '/usr/share/icons', '/usr/local/share/pixmaps', '/usr/share/pixmaps']
18:57:35,712    DEBUG [MainThread] solaar.ui.icons: detected icon sets: Mint True, gpm True, oxygen True, gnome True, elementary True
18:57:35,747     INFO [MainThread] solaar.listener: starting receiver listening threads
18:57:35,797     INFO [MainThread] solaar.listener: receiver event add DeviceInfo(path='/dev/hidraw1', vendor_id='046d', product_id='c537', serial='', release=b'3400', manufacturer=b'Logitech', product=b'USB Receiver', interface=1, driver='hid-generic')
18:57:35,798    DEBUG [MainThread] logitech_receiver.base: (12) <= w[10 FF 83B5 030000]
18:57:35,799    DEBUG [MainThread] logitech_receiver.base: (12) => r[11 FF 83B5 0384E398F30101070000000000000000]
18:57:35,799    DEBUG [MainThread] logitech_receiver.base: (12) <= w[10 FF 80B2 000000]
18:57:35,800    DEBUG [MainThread] logitech_receiver.base: (12) => r[10 FF 8F80 B20300]
18:57:35,800    DEBUG [MainThread] logitech_receiver.base: (12) device 0xFF error on request {80B2}: 3 = invalid value
18:57:35,801     INFO [ReceiverListener:hidraw1] logitech_receiver.listener: started with <NanoReceiver(/dev/hidraw1,12)> (12)
18:57:35,801     INFO [ReceiverListener:hidraw1] solaar.listener: <NanoReceiver(/dev/hidraw1,12)>: notifications listener has started (12)
18:57:35,801    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) <= w[10 FF 8000 100900]
18:57:35,802    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) => r[10 FF 8000 000000]
18:57:35,802    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) <= w[10 FF 8100 000000]
18:57:35,804    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) => r[10 FF 8100 000900]
18:57:35,804     INFO [ReceiverListener:hidraw1] logitech_receiver.receiver: <NanoReceiver(/dev/hidraw1,12)>: receiver notifications enabled => ('wireless', 'software present')
18:57:35,804    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) <= w[10 FF 8002 020000]
18:57:35,805    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) => r[10 01 4107 122C40]
18:57:35,806    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) => r[10 FF 8002 000000]
18:57:35,806     INFO [ReceiverListener:hidraw1] solaar.listener: status_changed <NanoReceiver(/dev/hidraw1,12)>: present, No paired devices. (0) 
18:57:35,807    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) <= w[10 FF 83B5 400000]
18:57:35,808    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) => r[11 FF 83B5 40044736303200000000000000000000]
18:57:35,808     INFO [ReceiverListener:hidraw1] logitech_receiver.receiver: <NanoReceiver(/dev/hidraw1,12)>: found new device 1 (402C)
18:57:35,808     INFO [ReceiverListener:hidraw1] solaar.listener: Notification(1,41,07,122C40) triggered new device <PairedDevice(1,402C,G602)> (mouse)
18:57:35,812    DEBUG [ReceiverListener:hidraw1] solaar.configuration: load => {'402C:8D13D0BD': {'_name': 'Wireless Gaming Mouse'}, '_version': '1.0.1'}
18:57:35,813    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) <= w[10 FF 83B5 300000]
18:57:35,814    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) => r[11 FF 83B5 308D13D0BD0E00000001000000000000]
18:57:35,814    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) pinging device 1
18:57:35,814    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) <= w[10 01 001E 0000CA]
18:57:35,817    DEBUG [MainThread] solaar.ui: activate
18:57:35,818    DEBUG [MainThread] solaar.ui: status changed: <NanoReceiver(/dev/hidraw1,12)> (NONE) None
18:57:35,819    DEBUG [MainThread] solaar.ui.window: new receiver row ('/dev/hidraw1', 0, True, 'Nano Receiver', 'preferences-desktop-peripherals', None, None, <NanoReceiver(/dev/hidraw1,12)>)

(solaar:22726): Gdk-CRITICAL **: 18:57:36.201: gdk_window_thaw_toplevel_updates: assertion 'window->update_and_descendants_freeze_count > 0' failed
18:57:37,091    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) => r[11 01 001E 0200CA00000000000000000000000000]
18:57:37,092    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) <= w[10 01 000B 000100]
18:57:37,166    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) => r[11 01 000B 01000000000000000000000000000000]
18:57:37,167    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) <= w[10 01 010E 000000]
18:57:37,182    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) => r[11 01 010E 16000000000000000000000000000000]
18:57:37,183    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) <= w[10 01 000D 000500]
18:57:37,270    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) => r[11 01 000D 03000000000000000000000000000000]
18:57:37,271    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) <= w[10 01 030B 000000]
18:57:37,286    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) => r[11 01 030B 15000000000000000000000000000000]
18:57:37,287    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) <= w[10 01 031A 000000]
18:57:37,302    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) => r[11 01 031A 576972656C6573732047616D696E6720]
18:57:37,303    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) <= w[10 01 031C 100000]
18:57:37,318    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) => r[11 01 031C 4D6F7573650000000000000000000000]
18:57:37,318     INFO [ReceiverListener:hidraw1] solaar.listener: status_changed <NanoReceiver(/dev/hidraw1,12)>: present, 1 paired device. (0) 
18:57:37,319    DEBUG [ReceiverListener:hidraw1] logitech_receiver.notifications: <PairedDevice(1,402C,G602)>: eQUAD step 4 Gaming connection notification: software=True, encrypted=False, link=True, payload=False
18:57:37,319    DEBUG [MainThread] solaar.ui: status changed: <NanoReceiver(/dev/hidraw1,12)> (NONE) None
18:57:37,319    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) <= w[10 01 0009 212000]
18:57:37,334    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) => r[11 01 0009 00000000000000000000000000000000]
18:57:37,334    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) <= w[10 01 000E 213000]
18:57:37,350    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) => r[11 01 000E 00000000000000000000000000000000]
18:57:37,351    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) <= w[10 01 0009 212100]
18:57:37,366    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) => r[11 01 0009 00000000000000000000000000000000]
18:57:37,367    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) <= w[10 01 000D 212100]
18:57:37,382    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) => r[11 01 000D 00000000000000000000000000000000]
18:57:37,383    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) <= w[10 01 0009 40A000]
18:57:37,398    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) => r[11 01 0009 00000000000000000000000000000000]
18:57:37,399    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) <= w[10 01 0009 40A200]
18:57:37,414    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) => r[11 01 0009 00000000000000000000000000000000]
18:57:37,414    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) <= w[10 01 0009 40A300]
18:57:37,430    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) => r[11 01 0009 00000000000000000000000000000000]
18:57:37,431    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) <= w[10 01 000F 220100]
18:57:37,446    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) => r[11 01 000F 0D000000000000000000000000000000]
18:57:37,446    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) <= w[10 01 0D1B 000000]
18:57:37,462    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) => r[11 01 FF0D 1B020000000000000000000000000000]
18:57:37,462    ERROR [ReceiverListener:hidraw1] logitech_receiver.base: (12) device 1 error on feature request {0D1B}: 2 = invalid argument
18:57:37,462    ERROR [ReceiverListener:hidraw1] logitech_receiver.listener: processing Notification(1,41,07,122C40)
Traceback (most recent call last):
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/listener.py", line 185, in run
    self._notifications_callback(n)
  File "/Data/OpenSource/Solaar/lib/solaar/listener.py", line 220, in _notifications_handler
    _notifications.process(dev, n)
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/notifications.py", line 55, in process
    return _process_device_notification(device, status, notification)
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/notifications.py", line 101, in _process_device_notification
    return _process_hidpp10_notification(device, status, n)
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/notifications.py", line 211, in _process_hidpp10_notification
    status.changed(active=link_established)
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/status.py", line 265, in changed
    for s in d.settings:
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/receiver.py", line 254, in settings
    _check_feature_settings(self, self._settings)
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/settings_templates.py", line 403, in check_feature_settings
    check_feature(_DPI[0],           _F.ADJUSTABLE_DPI)
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/settings_templates.py", line 394, in check_feature
    already_known.append(feature(device))
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/settings_templates.py", line 96, in instantiate
    choices = choices_callback(device)
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/settings_templates.py", line 264, in _feature_adjustable_dpi_choices
    reply = device.feature_request(_F.ADJUSTABLE_DPI, 0x10)
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/receiver.py", line 288, in feature_request
    return _hidpp20.feature_request(self, feature, function, *params)
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/hidpp20.py", line 443, in feature_request
    return device.request((feature_index << 8) + (function & 0xFF), *params)
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/receiver.py", line 281, in request
    return _base.request(self.receiver.handle, self.number, request_id, *params)
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/base.py", line 406, in request
    raise _hidpp20.FeatureCallError(number=devnumber, request=request_id, error=error, params=params)
logitech_receiver.hidpp20.FeatureCallError: {'number': 1, 'request': 3355, 'error': 2, 'params': b''}
18:57:38,384    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) => r[80 01008000] ignoring non-HID++ report
18:57:39,201    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) => r[80 00008000] ignoring non-HID++ report
18:57:43,576    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) => r[80 01008000] ignoring non-HID++ report
18:57:45,956    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) => r[80 00008000] ignoring non-HID++ report
18:57:55,742    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) => r[80 01008000] ignoring non-HID++ report
18:57:55,862    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) => r[80 00008000] ignoring non-HID++ report
18:58:05,631    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) => r[80 01008000] ignoring non-HID++ report
18:58:05,752    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) => r[80 00008000] ignoring non-HID++ report
18:58:10,585    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) => r[80 01008000] ignoring non-HID++ report

Yes, the G602 does not comply with the spec. https://github.com/libratbag/libratbag/commit/d4d971231678ed7ca5730256a84d0e3ce36f98e3 might be useful.

@rjinhard I put together a branch in my repository with all my changes relevant to this receiver and mouse. With any luck this branch will work without any issues related to the messages that the G602 produces. To try it out clone or pull https://github.com/pfps/Solaar and check out the test branch. Then run Solaar with -dd. Please report back with your experiences.

Tested with branch https://github.com/pfps/Solaar/tree/test
Tested with c537 and G602

Results:

  • known (out of scope) GTK Error Gdk-CRITICAL **: 15:28:03.203: gdk_window_thaw_toplevel_updates: assertion 'window->update_and_descendants_freeze_count > 0' failed
  • known (out of scope) G602 feature request error _F.ADJUSTABLE_DPI
  • known (out of scope, but not logged?) G602 error [AsyncUI] logitech_receiver.base: (14) device 0xFF error on request {81F1}: 3 = invalid value when clicking the info button

Solaar runs, and detects the c537 but not G602 and does not crash on any errors, and successfully ignores report_id = 80 mouse button press events

sudo python3 ./bin/solaar -dd[sudo] password for rijnhard:          
15:28:02,325     INFO [MainThread] root: language en_ZA (UTF-8), translations path /Data/OpenSource/Solaar/share/locale
15:28:02,541    DEBUG [MainThread] solaar.ui.tray: using AppIndicator3
15:28:02,632     INFO [MainThread] solaar.upower: connected to system dbus, watching for suspend/resume events
15:28:02,680    DEBUG [MainThread] solaar.ui: startup registered=True, remote=False
15:28:02,689    DEBUG [AsyncUI] solaar.tasks: started
15:28:02,707    DEBUG [MainThread] solaar.ui.icons: sys.path[0] = /Data/OpenSource/Solaar/lib
15:28:02,707    DEBUG [MainThread] solaar.ui.icons: looking for icons in /Data/OpenSource/Solaar/icons
15:28:02,707    DEBUG [MainThread] solaar.ui.icons: looking for icons in /Data/OpenSource/Solaar/share/solaar/icons
15:28:02,707    DEBUG [MainThread] solaar.ui.icons: looking for icons in /home/rijnhard/.local/share/solaar/icons
15:28:02,708    DEBUG [MainThread] solaar.ui.icons: looking for icons in /Data/OpenSource/Solaar/share/solaar/icons
15:28:02,708    DEBUG [MainThread] solaar.ui.icons: looking for icons in /usr/local/share/solaar/icons
15:28:02,708    DEBUG [MainThread] solaar.ui.icons: looking for icons in /usr/share/solaar/icons
15:28:02,711    DEBUG [MainThread] solaar.ui.icons: icon theme paths: ['/usr/share/solaar/icons', '/Data/OpenSource/Solaar/share/solaar/icons', '/Data/OpenSource/Solaar/share/solaar/icons', '/home/rijnhard/.local/share/icons', '/home/rijnhard/.icons', '/usr/local/share/icons', '/usr/share/icons', '/usr/local/share/pixmaps', '/usr/share/pixmaps']
15:28:02,729    DEBUG [MainThread] solaar.ui.icons: detected icon sets: Mint True, gpm True, oxygen True, gnome True, elementary True
15:28:02,765     INFO [MainThread] solaar.listener: starting receiver listening threads
15:28:02,807     INFO [MainThread] solaar.listener: receiver event add DeviceInfo(path='/dev/hidraw1', vendor_id='046d', product_id='c537', serial='', release=b'3400', manufacturer=b'Logitech', product=b'USB Receiver', interface=1, driver='hid-generic')
15:28:02,807    DEBUG [MainThread] logitech_receiver.base: (12) <= w[10 FF 83B5 030000]
15:28:02,809    DEBUG [MainThread] logitech_receiver.base: (12) => r[11 FF 83B5 0384E398F30101070000000000000000]
15:28:02,809    DEBUG [MainThread] logitech_receiver.base: (12) <= w[10 FF 80B2 000000]
15:28:02,810    DEBUG [MainThread] logitech_receiver.base: (12) => r[10 FF 8F80 B20300]
15:28:02,810    DEBUG [MainThread] logitech_receiver.base: (12) device 0xFF error on request {80B2}: 3 = invalid value
15:28:02,810     INFO [ReceiverListener:hidraw1] logitech_receiver.listener: started with <NanoReceiver(/dev/hidraw1,12)> (12)
15:28:02,810     INFO [ReceiverListener:hidraw1] solaar.listener: <NanoReceiver(/dev/hidraw1,12)>: notifications listener has started (12)
15:28:02,810    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) <= w[10 FF 8000 100900]
15:28:02,812    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) => r[10 FF 8000 000000]
15:28:02,812    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) <= w[10 FF 8100 000000]
15:28:02,813    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) => r[10 FF 8100 000900]
15:28:02,813     INFO [ReceiverListener:hidraw1] logitech_receiver.receiver: <NanoReceiver(/dev/hidraw1,12)>: receiver notifications enabled => ('wireless', 'software present')
15:28:02,813    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) <= w[10 FF 8002 020000]
15:28:02,814    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) => r[10 01 4107 122C40]
15:28:02,815    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) => r[10 FF 8002 000000]
15:28:02,815     INFO [ReceiverListener:hidraw1] solaar.listener: status_changed <NanoReceiver(/dev/hidraw1,12)>: present, No paired devices. (0) 
15:28:02,816    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) <= w[10 FF 83B5 400000]
15:28:02,817    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) => r[11 FF 83B5 40044736303200000000000000000000]
15:28:02,817     INFO [ReceiverListener:hidraw1] logitech_receiver.receiver: <NanoReceiver(/dev/hidraw1,12)>: found new device 1 (402C)
15:28:02,817    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) <= w[10 FF 83B5 300000]
15:28:02,818    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) => r[11 FF 83B5 308D13D0BD0E00000001000000000000]
15:28:02,817     INFO [ReceiverListener:hidraw1] solaar.listener: Notification(1,41,07,122C40) triggered new device <PairedDevice(1,402C,G602,8D13D0BD)> (mouse)
15:28:02,821    DEBUG [MainThread] solaar.ui: activate
15:28:02,822    DEBUG [MainThread] solaar.ui: status changed: <NanoReceiver(/dev/hidraw1,12)> (NONE) None
15:28:02,823    DEBUG [ReceiverListener:hidraw1] solaar.configuration: load => {'402C:8D13D0BD': {'_name': 'Wireless Gaming Mouse'}, '_version': '1.0.1'}
15:28:02,823    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) pinging device 1
15:28:02,823    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) <= w[10 01 001E 0000E3]
15:28:02,824    DEBUG [MainThread] solaar.ui.window: new receiver row ('/dev/hidraw1', 0, True, 'Nano Receiver', 'preferences-desktop-peripherals', None, None, <NanoReceiver(/dev/hidraw1,12)>)

(solaar:20897): Gdk-CRITICAL **: 15:28:03.203: gdk_window_thaw_toplevel_updates: assertion 'window->update_and_descendants_freeze_count > 0' failed
15:28:03,616    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) => r[11 01 001E 0200E300000000000000000000000000]
15:28:03,616    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) <= w[10 01 000F 000100]
15:28:03,631    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) => r[11 01 000F 01000000000000000000000000000000]
15:28:03,632    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) <= w[10 01 010F 000000]
15:28:03,648    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) => r[11 01 010F 16000000000000000000000000000000]
15:28:03,649    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) <= w[10 01 000B 000500]
15:28:03,736    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) => r[11 01 000B 03000000000000000000000000000000]
15:28:03,736    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) <= w[10 01 030D 000000]
15:28:03,839    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) => r[11 01 030D 15000000000000000000000000000000]
15:28:03,840    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) <= w[10 01 031D 000000]
15:28:03,911    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) => r[11 01 031D 576972656C6573732047616D696E6720]
15:28:03,912    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) <= w[10 01 031E 100000]
15:28:03,927    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) => r[11 01 031E 4D6F7573650000000000000000000000]
15:28:03,927     INFO [ReceiverListener:hidraw1] solaar.listener: status_changed <NanoReceiver(/dev/hidraw1,12)>: present, 1 paired device. (0) 
15:28:03,928    DEBUG [ReceiverListener:hidraw1] logitech_receiver.notifications: <PairedDevice(1,402C,G602,8D13D0BD)>: eQUAD step 4 Gaming connection notification: software=True, encrypted=False, link=True, payload=False
15:28:03,928    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) <= w[10 01 000F 212000]
15:28:03,929    DEBUG [MainThread] solaar.ui: status changed: <NanoReceiver(/dev/hidraw1,12)> (NONE) None
15:28:03,943    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) => r[11 01 000F 00000000000000000000000000000000]
15:28:03,943    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) <= w[10 01 000E 213000]
15:28:03,959    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) => r[11 01 000E 00000000000000000000000000000000]
15:28:03,959    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) <= w[10 01 000A 212100]
15:28:03,975    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) => r[11 01 000A 00000000000000000000000000000000]
15:28:03,975    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) <= w[10 01 000C 212100]
15:28:03,991    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) => r[11 01 000C 00000000000000000000000000000000]
15:28:03,991    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) <= w[10 01 000D 40A000]
15:28:04,007    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) => r[11 01 000D 00000000000000000000000000000000]
15:28:04,007    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) <= w[10 01 000B 40A200]
15:28:04,023    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) => r[11 01 000B 00000000000000000000000000000000]
15:28:04,023    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) <= w[10 01 000D 40A300]
15:28:04,039    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) => r[11 01 000D 00000000000000000000000000000000]
15:28:04,040    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) <= w[10 01 000D 220100]
15:28:04,055    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) => r[11 01 000D 0D000000000000000000000000000000]
15:28:04,056    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) <= w[10 01 0D19 000000]
15:28:04,071    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) => r[11 01 FF0D 19020000000000000000000000000000]
15:28:04,071    ERROR [ReceiverListener:hidraw1] logitech_receiver.base: (12) device 1 error on feature request {0D19}: 2 = invalid argument
15:28:04,071    ERROR [ReceiverListener:hidraw1] logitech_receiver.listener: processing Notification(1,41,07,122C40)
Traceback (most recent call last):
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/listener.py", line 185, in run
    self._notifications_callback(n)
  File "/Data/OpenSource/Solaar/lib/solaar/listener.py", line 232, in _notifications_handler
    _notifications.process(dev, n)
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/notifications.py", line 55, in process
    return _process_device_notification(device, status, notification)
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/notifications.py", line 101, in _process_device_notification
    return _process_hidpp10_notification(device, status, n)
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/notifications.py", line 211, in _process_hidpp10_notification
    status.changed(active=link_established)
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/status.py", line 265, in changed
    for s in d.settings:
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/receiver.py", line 255, in settings
    _check_feature_settings(self, self._settings)
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/settings_templates.py", line 403, in check_feature_settings
    check_feature(_DPI[0],           _F.ADJUSTABLE_DPI)
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/settings_templates.py", line 394, in check_feature
    already_known.append(feature(device))
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/settings_templates.py", line 96, in instantiate
    choices = choices_callback(device)
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/settings_templates.py", line 264, in _feature_adjustable_dpi_choices
    reply = device.feature_request(_F.ADJUSTABLE_DPI, 0x10)
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/receiver.py", line 289, in feature_request
    return _hidpp20.feature_request(self, feature, function, *params)
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/hidpp20.py", line 443, in feature_request
    return device.request((feature_index << 8) + (function & 0xFF), *params)
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/receiver.py", line 282, in request
    return _base.request(self.receiver.handle, self.number, request_id, *params)
  File "/Data/OpenSource/Solaar/lib/logitech_receiver/base.py", line 391, in request
    raise _hidpp20.FeatureCallError(number=devnumber, request=request_id, error=error, params=params)
logitech_receiver.hidpp20.FeatureCallError: {'number': 1, 'request': 3353, 'error': 2, 'params': b''}
15:28:04,470  WARNING [ReceiverListener:hidraw1] logitech_receiver.base: unexpected message or size: report_id 80 message 8001008000
15:28:05,230  WARNING [ReceiverListener:hidraw1] logitech_receiver.base: unexpected message or size: report_id 80 message 8000008000
15:28:06,868  WARNING [ReceiverListener:hidraw1] logitech_receiver.base: unexpected message or size: report_id 80 message 8001008000
15:28:06,871    DEBUG [MainThread] logitech_receiver.base: (13) <= w[10 FF 8102 000000]
15:28:06,872    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) => r[10 FF 8102 000100]
15:28:06,873    DEBUG [MainThread] logitech_receiver.base: (13) => r[10 FF 8102 000100]
15:28:06,947  WARNING [ReceiverListener:hidraw1] logitech_receiver.base: unexpected message or size: report_id 80 message 8000008000
15:28:09,257  WARNING [ReceiverListener:hidraw1] logitech_receiver.base: unexpected message or size: report_id 80 message 8001008000
15:28:09,361  WARNING [ReceiverListener:hidraw1] logitech_receiver.base: unexpected message or size: report_id 80 message 8000008000
15:28:09,377    DEBUG [AsyncUI] logitech_receiver.base: (14) <= w[10 FF 81F1 010000]
15:28:09,378    DEBUG [AsyncUI] logitech_receiver.base: (14) => r[10 FF 81F1 013400]
15:28:09,378    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) => r[10 FF 81F1 013400]
15:28:09,378    DEBUG [AsyncUI] logitech_receiver.base: (14) <= w[10 FF 81F1 020000]
15:28:09,380    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) => r[10 FF 81F1 020002]
15:28:09,380    DEBUG [AsyncUI] logitech_receiver.base: (14) => r[10 FF 81F1 020002]
15:28:09,380    DEBUG [AsyncUI] logitech_receiver.base: (14) <= w[10 FF 81F1 040000]
15:28:09,382    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) => r[10 FF 81F1 040214]
15:28:09,382    DEBUG [AsyncUI] logitech_receiver.base: (14) => r[10 FF 81F1 040214]
15:28:09,382    DEBUG [AsyncUI] logitech_receiver.base: (14) <= w[10 FF 81F1 030000]
15:28:09,384    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) => r[10 FF 8F81 F10300]
15:28:09,384    DEBUG [AsyncUI] logitech_receiver.base: (14) => r[10 FF 8F81 F10300]
15:28:09,384    DEBUG [AsyncUI] logitech_receiver.base: (14) device 0xFF error on request {81F1}: 3 = invalid value
15:28:12,429  WARNING [ReceiverListener:hidraw1] logitech_receiver.base: unexpected message or size: report_id 80 message 8001008000
15:28:14,003  WARNING [ReceiverListener:hidraw1] logitech_receiver.base: unexpected message or size: report_id 80 message 8000008000
15:28:23,625  WARNING [ReceiverListener:hidraw1] logitech_receiver.base: unexpected message or size: report_id 80 message 8001008000
15:28:23,777  WARNING [ReceiverListener:hidraw1] logitech_receiver.base: unexpected message or size: report_id 80 message 8000008000
15:28:25,103  WARNING [ReceiverListener:hidraw1] logitech_receiver.base: unexpected message or size: report_id 80 message 8001008000
15:28:25,215  WARNING [ReceiverListener:hidraw1] logitech_receiver.base: unexpected message or size: report_id 80 message 8000008000
15:28:25,262    DEBUG [MainThread] solaar.ui.pair_window: prepare <Gtk.Assistant object at 0x7f21002b9168 (GtkAssistant at 0x2d9e890)> 0 <Gtk.VBox object at 0x7f21002b9480 (GtkVBox at 0x2e2a8a0)>
15:28:25,262  WARNING [MainThread] logitech_receiver.base: unexpected message or size: report_id 80 message 8000008000
15:28:25,262  WARNING [MainThread] logitech_receiver.base: unexpected message or size: report_id 80 message 8001008000
15:28:25,262  WARNING [MainThread] logitech_receiver.base: unexpected message or size: report_id 80 message 8000008000
15:28:25,262  WARNING [MainThread] logitech_receiver.base: unexpected message or size: report_id 80 message 8001008000
15:28:25,262  WARNING [MainThread] logitech_receiver.base: unexpected message or size: report_id 80 message 8000008000
15:28:25,263  WARNING [MainThread] logitech_receiver.base: unexpected message or size: report_id 80 message 8001008000
15:28:25,263  WARNING [MainThread] logitech_receiver.base: unexpected message or size: report_id 80 message 8000008000
15:28:25,263  WARNING [MainThread] logitech_receiver.base: unexpected message or size: report_id 80 message 8001008000
15:28:25,263  WARNING [MainThread] logitech_receiver.base: unexpected message or size: report_id 80 message 8000008000
15:28:25,263    DEBUG [MainThread] logitech_receiver.base: (13) <= w[10 FF 80B2 01001E]
15:28:25,265    DEBUG [MainThread] logitech_receiver.base: (13) => r[10 FF 4A01 000000]
15:28:25,265    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) => r[10 FF 4A01 000000]
15:28:25,265     INFO [ReceiverListener:hidraw1] logitech_receiver.notifications: <NanoReceiver(/dev/hidraw1,12)>: pairing lock is open
15:28:25,266     INFO [ReceiverListener:hidraw1] solaar.listener: status_changed <NanoReceiver(/dev/hidraw1,12)>: present, 1 paired device. (1) pairing lock is open
15:28:25,266    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) => r[10 FF 80B2 000000]
15:28:25,266    DEBUG [MainThread] logitech_receiver.base: (13) => r[10 FF 80B2 000000]
15:28:25,281    DEBUG [MainThread] solaar.ui: status changed: <NanoReceiver(/dev/hidraw1,12)> (NOTIFICATION) pairing lock is open
15:28:25,282    DEBUG [MainThread] logitech_receiver.base: (13) <= w[10 FF 8102 000000]
15:28:25,284    DEBUG [MainThread] logitech_receiver.base: (13) => r[10 FF 8102 000100]
15:28:25,284    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) => r[10 FF 8102 000100]
15:28:29,283  WARNING [ReceiverListener:hidraw1] logitech_receiver.base: unexpected message or size: report_id 80 message 8001008000
15:28:29,363  WARNING [ReceiverListener:hidraw1] logitech_receiver.base: unexpected message or size: report_id 80 message 8000008000
15:28:29,376    DEBUG [MainThread] solaar.ui.pair_window: finish <Gtk.Assistant object at 0x7f21002b9168 (GtkAssistant at 0x2d9e890)>
15:28:29,379  WARNING [MainThread] logitech_receiver.base: unexpected message or size: report_id 80 message 8001008000
15:28:29,379  WARNING [MainThread] logitech_receiver.base: unexpected message or size: report_id 80 message 8000008000
15:28:29,379    DEBUG [MainThread] logitech_receiver.base: (13) <= w[10 FF 80B2 020000]
15:28:29,380    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) => r[10 FF 80B2 000000]
15:28:29,380    DEBUG [MainThread] logitech_receiver.base: (13) => r[10 FF 80B2 000000]
15:28:29,678    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) => r[10 FF 4A00 010000]
15:28:29,679     INFO [ReceiverListener:hidraw1] logitech_receiver.notifications: <NanoReceiver(/dev/hidraw1,12)>: pairing lock is closed
15:28:29,679  WARNING [ReceiverListener:hidraw1] logitech_receiver.notifications: pairing error 1: device timeout
15:28:29,679     INFO [ReceiverListener:hidraw1] solaar.listener: status_changed <NanoReceiver(/dev/hidraw1,12)>: present, 1 paired device. (1) pairing lock is closed
15:28:29,679    DEBUG [MainThread] solaar.ui: status changed: <NanoReceiver(/dev/hidraw1,12)> (NOTIFICATION) pairing lock is closed
15:28:29,681    DEBUG [MainThread] logitech_receiver.base: (13) <= w[10 FF 8102 000000]
15:28:29,682    DEBUG [ReceiverListener:hidraw1] logitech_receiver.base: (12) => r[10 FF 8102 000100]
15:28:29,682    DEBUG [MainThread] logitech_receiver.base: (13) => r[10 FF 8102 000100]
15:28:29,771    DEBUG [MainThread] solaar.ui.pair_window: assistant <Gtk.Assistant object at 0x7f21002b9168 (GtkAssistant at 0x2d9e890)> destroyed, bailing out
15:28:30,506  WARNING [ReceiverListener:hidraw1] logitech_receiver.base: unexpected message or size: report_id 80 message 8001008000
15:28:30,634  WARNING [ReceiverListener:hidraw1] logitech_receiver.base: unexpected message or size: report_id 80 message 8000008000
15:28:31,577  WARNING [ReceiverListener:hidraw1] logitech_receiver.base: unexpected message or size: report_id 80 message 8001008000
15:28:31,705  WARNING [ReceiverListener:hidraw1] logitech_receiver.base: unexpected message or size: report_id 80 message 8000008000
15:28:32,896  WARNING [ReceiverListener:hidraw1] logitech_receiver.base: unexpected message or size: report_id 80 message 8002008000
15:28:33,040  WARNING [ReceiverListener:hidraw1] logitech_receiver.base: unexpected message or size: report_id 80 message 8000008000
15:28:33,727  WARNING [ReceiverListener:hidraw1] logitech_receiver.base: unexpected message or size: report_id 80 message 8001008000
15:28:33,783  WARNING [ReceiverListener:hidraw1] logitech_receiver.base: unexpected message or size: report_id 80 message 8000008000
15:28:37,132  WARNING [ReceiverListener:hidraw1] logitech_receiver.base: unexpected message or size: report_id 80 message 8001008000
15:28:37,236  WARNING [ReceiverListener:hidraw1] logitech_receiver.base: unexpected message or size: report_id 80 message 8000008000
15:28:39,593  WARNING [ReceiverListener:hidraw1] logitech_receiver.base: unexpected message or size: report_id 80 message 8001008000
15:28:39,961  WARNING [ReceiverListener:hidraw1] logitech_receiver.base: unexpected message or size: report_id 80 message 8000008000
15:28:40,248  WARNING [ReceiverListener:hidraw1] logitech_receiver.base: unexpected message or size: report_id 80 message 8001008000
15:28:40,352  WARNING [ReceiverListener:hidraw1] logitech_receiver.base: unexpected message or size: report_id 80 message 8000008000
15:28:41,008  WARNING [ReceiverListener:hidraw1] logitech_receiver.base: unexpected message or size: report_id 80 message 8001008000
15:28:41,119  WARNING [ReceiverListener:hidraw1] logitech_receiver.base: unexpected message or size: report_id 80 message 8000008000

PR #646 now has a change that ignores unknown report ids. So the 80... messages should be silently ignored after this PR is merged.

OK things are looking better. There is a PR that will silently ignore unknown messages. I've created a c537 branch in my repository that has those commits and adds in the c537 as a nano receiver. Please use this branch for now.

known (out of scope) GTK Error Gdk-CRITICAL **: 15:28:03.203: gdk_window_thaw_toplevel_updates: assertion 'window->update_and_descendants_freeze_count > 0' failed

YES - this message is annoying but seems benign and can be ignored

known (out of scope) G602 feature request error _F.ADJUSTABLE_DPI

PROBABLY - this may require some more work

known (out of scope, but not logged?) G602 error [AsyncUI] logitech_receiver.base: (14) device 0xFF error on request {81F1}: 3 = invalid value when clicking the info button

PROBABLY - this looks like the receiver or mouse doesn't report firmware. Can you attach a screenshot of the main window after clicking the info button?

Also please attach output of solaar show (no debugging output).

Thanks.

Tested with branch https://github.com/pfps/Solaar/tree/c537
Tested with c537 and G602

Changes from the previous test:

  • No longer displays report_id = 80 warnings at all, even when running solaar -dd

As for [AsyncUI] logitech_receiver.base: (14) device 0xFF error on request {81F1}: 3 = invalid value

sudo python3 ./bin/solaar show
Nano Receiver
  Device path  : /dev/hidraw1
  USB id       : 046d:c537
  Serial       : 84E398F3
    Firmware   : 34.00.B0002
    Bootloader : 02.14
  Has 1 paired device(s) out of a maximum of 1.
  Notifications: wireless, software present (0x000900)

  1: Wireless Gaming Mouse
     Codename     : G602
     Kind         : mouse
     Wireless PID : 402C
     Protocol     : HID++ 2.0
     Polling rate : 8 ms (125Hz)
     Serial number: 8D13D0BD
          Firmware: RQM 47.00.B0010
        Bootloader: BL  02.00.B0001
          Hardware: 72
     The power switch is located on the base.
     Supports 23 HID++ 2.0 features:
         0: ROOT                   {0000}   
         1: FEATURE SET            {0001}   
         2: DEVICE FW VERSION      {0003}   
         3: DEVICE NAME            {0005}   
         4: DFUCONTROL LEGACY      {00C0}   
         5: BATTERY STATUS         {1000}   
         6: WIRELESS DEVICE STATUS {1D4B}   
         7: unknown:1DF3           {1DF3}   internal, hidden
         8: unknown:1E00           {1E00}   hidden
         9: unknown:1E80           {1E80}   internal, hidden
        10: unknown:1F03           {1F03}   internal, hidden
        11: VERTICAL SCROLLING     {2100}   
            Roller type: standard
            Ratchet per turn: 24
            Scroll lines: 0
        12: MOUSE POINTER          {2200}   
            DPI: 1000
            Acceleration: low
            Override OS ballistics
            No vertical tuning, standard mice
        13: ADJUSTABLE DPI         {2201}   
        14: PER KEY LIGHTING       {8080}   
        15: REPORT RATE            {8060}   
        16: COLOR LED EFFECTS      {8070}   
        17: unknown:1810           {1810}   internal, hidden
        18: unknown:1830           {1830}   internal, hidden
        19: unknown:1850           {1850}   internal, hidden
        20: unknown:1860           {1860}   internal, hidden
        21: unknown:1890           {1890}   internal, hidden
        22: unknown:18A0           {18A0}   internal, hidden
     Battery: 50%, discharging.

Screenshot from 2020-02-18 10-33-24

@pfps I think known (out of scope) G602 feature request error _F.ADJUSTABLE_DPI should be a separate ticket, I may just give it a stab with my rusty python (no pun intended). I did get it working when I was screwing around a while back, I think we just have to make those feature checks more resilient (as in best effort) and it should be fine, because it detected the G602 when I commented out the breaking check_feature calls

That's looking a lot better, except that the G602 is not showing because of the errors for it. I'm also not seeing anything about a limited number of re-pairings.
I added a new command to the CLI to dump the registers for a receiver. It is in my probe branch. Could you update your clone of my repository and try solaar probe and report the output? That will let me see the registers for your receiver.

@pfps I had to merge your c537 branch and probe branch but here it goes

sudo python3 ./bin/solaar probe
Nano Receiver
  Device path  : /dev/hidraw1
  USB id       : 046d:c537
  Serial       : 84E398F3
    Firmware   : 34.00.B0002
    Bootloader : 02.14
  Has 1 paired device(s) out of a maximum of 1.
  Notifications: wireless, software present (0x000900)

REGISTER DUMP
Notification Register: 000900
Connection State:      000100
Pairing State:         None
Device Activity:       None
Pairing Register  0: None
Pairing Register 10: None
Pairing Register 20: 200708402C0701023200000000000000
Pairing Register 30: 308D13D0BD0E00000001000000000000
Pairing Name     40: b'G602\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
Pairing Register  1: None
Pairing Register 11: None
Pairing Register 21: None
Pairing Register 31: None
Pairing Name     41: None
Pairing Register  2: 0234000002800C070100000000000000
Pairing Register 12: None
Pairing Register 22: None
Pairing Register 32: None
Pairing Name     42: None
Pairing Register  3: 0384E398F30101070000000000000000
Pairing Register 13: None
Pairing Register 23: None
Pairing Register 33: None
Pairing Name     43: None
Pairing Register  4: None
Pairing Register 14: None
Pairing Register 24: None
Pairing Register 34: None
Pairing Name     44: None
Pairing Register  5: None
Pairing Register 15: None
Pairing Register 25: None
Pairing Register 35: None
Pairing Name     45: None

INTERPRETING SELECT REGISTER INFORMATION
Serial Number: 84E398F3
Max Devices: 1
Can't write pairing register so receiver can unpair (probably incorrect)
Number of paired devices: 1
Number of remaining pairings: Unlimited - raw value: 0x0

@pfps To keep things a bit more grouped I'm going to reply to your comments here:
Specifically:

So Master currently doesn't detect the mouse, your c537 branch is still needed, then the receiver and mouse are detected.

Should I reopen https://github.com/pwr-Solaar/Solaar/pull/659 with your changes or will/do you want to open it? (Not sure on the etiquette here) You gave me some good guidance so I actually wouldnt mind taking a stab at it using your c537 branch as a reference?

@rijnhard The receiver is looking good in both solaar show and solaar probe. The mouse is looking good in solaar show. What is happening in the solaar main window - the screen shot above doesn't show the mouse. If the mouse shows in the main window then I think that either reviving #659 with just the changes for the c537 or setting up a new PR with the changes is good. As you have the hardware you can determine whether the changes will work for it.
The only evidence missing is a screen shot of the main window showing the mouse, which can be added to this issue.

Closing as addressed by PR #700

Was this page helpful?
0 / 5 - 0 ratings

Related issues

pauledd picture pauledd  ·  16Comments

digulla picture digulla  ·  10Comments

yifita picture yifita  ·  5Comments

witheld9 picture witheld9  ·  13Comments

electriceccentric picture electriceccentric  ·  4Comments