Logitech G502 wireless first tick of scrolling doesn't apply

Hello everyone,
I have a strange issue with my G502 mouse:

Every first “tick” of scrolling doesn’t apply. Not in the Browser, not in games, just nowhere.
The mouse wheel one the G502 is the type where you can feel distinct clicks while rotating the wheel and every first “tick” while starting to scroll is ignored.
This always happens when the mouse wheel wasn’t used for more than ~1.5 seconds.

libinput debug-events shows the following:

 event8   POINTER_SCROLL_WHEEL    +3.775s       vert 7.50/60.0* horiz 0.00/0.0 (wheel)
 event8   POINTER_SCROLL_WHEEL    +3.785s       vert 1.88/15.0* horiz 0.00/0.0 (wheel)
 event8   POINTER_SCROLL_WHEEL    +3.794s       vert 1.88/15.0* horiz 0.00/0.0 (wheel)
 event8   POINTER_SCROLL_WHEEL    +3.799s       vert 1.88/15.0* horiz 0.00/0.0 (wheel)
 event8   POINTER_SCROLL_WHEEL    +5.000s       vert 7.50/60.0* horiz 0.00/0.0 (wheel)
 event8   POINTER_SCROLL_WHEEL    +5.029s       vert 1.88/15.0* horiz 0.00/0.0 (wheel)
 event8   POINTER_SCROLL_WHEEL    +5.041s       vert 1.88/15.0* horiz 0.00/0.0 (wheel)
 event8   POINTER_SCROLL_WHEEL    +5.049s       vert 1.88/15.0* horiz 0.00/0.0 (wheel)
 event8   POINTER_SCROLL_WHEEL    +5.054s       vert 1.88/15.0* horiz 0.00/0.0 (wheel)
 event8   POINTER_SCROLL_WHEEL    +6.694s       vert -7.50/-60.0* horiz 0.00/0.0 (wheel)
 event8   POINTER_SCROLL_WHEEL    +6.699s       vert -1.88/-15.0* horiz 0.00/0.0 (wheel)
 event8   POINTER_SCROLL_WHEEL    +6.702s       vert -1.88/-15.0* horiz 0.00/0.0 (wheel)
 event8   POINTER_SCROLL_WHEEL    +6.708s       vert -1.88/-15.0* horiz 0.00/0.0 (wheel)
 event8   POINTER_SCROLL_WHEEL    +7.588s       vert -7.50/-60.0* horiz 0.00/0.0 (wheel)
 event8   POINTER_SCROLL_WHEEL    +7.594s       vert -1.88/-15.0* horiz 0.00/0.0 (wheel)
 event8   POINTER_SCROLL_WHEEL    +7.602s       vert -1.88/-15.0* horiz 0.00/0.0 (wheel)
 event8   POINTER_SCROLL_WHEEL    +7.605s       vert -1.88/-15.0* horiz 0.00/0.0 (wheel)
 event8   POINTER_SCROLL_WHEEL    +7.615s       vert -1.88/-15.0* horiz 0.00/0.0 (wheel)
 event8   POINTER_SCROLL_WHEEL    +10.139s      vert 7.50/60.0* horiz 0.00/0.0 (wheel)
 event8   POINTER_SCROLL_WHEEL    +10.146s      vert 1.88/15.0* horiz 0.00/0.0 (wheel)
 event8   POINTER_SCROLL_WHEEL    +10.153s      vert 1.88/15.0* horiz 0.00/0.0 (wheel)
 event8   POINTER_SCROLL_WHEEL    +10.156s      vert 1.88/15.0* horiz 0.00/0.0 (wheel)
 event8   POINTER_SCROLL_WHEEL    +11.311s      vert 7.50/60.0* horiz 0.00/0.0 (wheel)
 event8   POINTER_SCROLL_WHEEL    +11.328s      vert 1.88/15.0* horiz 0.00/0.0 (wheel)
 event8   POINTER_SCROLL_WHEEL    +11.336s      vert 1.88/15.0* horiz 0.00/0.0 (wheel)
 event8   POINTER_SCROLL_WHEEL    +11.343s      vert 1.88/15.0* horiz 0.00/0.0 (wheel)
 event8   POINTER_SCROLL_WHEEL    +11.347s      vert 1.88/15.0* horiz 0.00/0.0 (wheel)
 event8   POINTER_SCROLL_WHEEL    +13.267s      vert -7.50/-60.0* horiz 0.00/0.0 (wheel)
 event8   POINTER_SCROLL_WHEEL    +13.274s      vert -1.88/-15.0* horiz 0.00/0.0 (wheel)
 event8   POINTER_SCROLL_WHEEL    +13.278s      vert -1.88/-15.0* horiz 0.00/0.0 (wheel)
 event8   POINTER_SCROLL_WHEEL    +13.283s      vert -1.88/-15.0* horiz 0.00/0.0 (wheel)
 event8   POINTER_SCROLL_WHEEL    +14.104s      vert -7.50/-60.0* horiz 0.00/0.0 (wheel)
 event8   POINTER_SCROLL_WHEEL    +14.113s      vert -1.88/-15.0* horiz 0.00/0.0 (wheel)
 event8   POINTER_SCROLL_WHEEL    +14.122s      vert -1.88/-15.0* horiz 0.00/0.0 (wheel)
 event8   POINTER_SCROLL_WHEEL    +14.128s      vert -1.88/-15.0* horiz 0.00/0.0 (wheel)
 event8   POINTER_SCROLL_WHEEL    +14.142s      vert -1.88/-15.0* horiz 0.00/0.0 (wheel)

So every “tick” was registered.
Here the “tick” was registered but no scroll was performed:

event8   POINTER_SCROLL_WHEEL    +3.775s       vert 7.50/60.0* horiz 0.00/0.0 (wheel)
event8   POINTER_SCROLL_WHEEL    +3.785s       vert 1.88/15.0* horiz 0.00/0.0 (wheel)
event8   POINTER_SCROLL_WHEEL    +3.794s       vert 1.88/15.0* horiz 0.00/0.0 (wheel)
event8   POINTER_SCROLL_WHEEL    +3.799s       vert 1.88/15.0* horiz 0.00/0.0 (wheel)

Here the “tick” was registered and a scroll was performed:

event8   POINTER_SCROLL_WHEEL    +5.000s       vert 7.50/60.0* horiz 0.00/0.0 (wheel)
event8   POINTER_SCROLL_WHEEL    +5.029s       vert 1.88/15.0* horiz 0.00/0.0 (wheel)
event8   POINTER_SCROLL_WHEEL    +5.041s       vert 1.88/15.0* horiz 0.00/0.0 (wheel)
event8   POINTER_SCROLL_WHEEL    +5.049s       vert 1.88/15.0* horiz 0.00/0.0 (wheel)
event8   POINTER_SCROLL_WHEEL    +5.054s       vert 1.88/15.0* horiz 0.00/0.0 (wheel)

And this goes on and on and on in the shown log, the first “tick” doesn’t result in a scroll, the next one does. Then I wait ~1.5 seconds and the next “tick” doesn’t result in a scroll while the one right after does.

I noticed that all “ticks” that perform a scroll have 1x7.50 and 4x1.88 while “ticks” that doesn’t only have 3x1.88.

I tried using solaar and changing the xinput value of libinput Scrolling Pixel Distance to no avail.

Does anyone have an idea what I could try next?

EDIT: After some more testing the issue is not, that the first “tick” isn’t performing a scroll instead it’s very application depended. Applications like steam and discord perform a scroll on every “tick” while firefox and every game I tested don’t perform a scroll.
The next thing I tried to fix this was to increase the wheel speed via libinput but this didn’t work either.

EDIT2: Using imwheel the issue changes a bit, now the 1.5 seconds are gone but instead the first “tick” in either direction is either ignored or performs a very small scroll.
For example in Cs:Go I have to scroll two “ticks” up to change a weapon, after that I the item is changed every “tick” I scroll down. Now if I want to scroll down I will have to scroll two “ticks” down and so on.
In Steam on the other hand every “tick” performs a scroll, but the first “tick” in either direction is very very short while every other “tick” perform a normal scroll.

If you need any logs or other examples let me know and when it’s logs please add how to get them :slight_smile:

At least a temporary solution is to connect the mouse via wire.
libinput debug-events then prints the following for up/down scrolling and everything works as expected.

 event8   POINTER_SCROLL_WHEEL    +39.375s      vert 15.00/120.0* horiz 0.00/0.0 (wheel)
 event8   POINTER_SCROLL_WHEEL    +39.641s      vert -15.00/-120.0* horiz 0.00/0.0 (wheel)
 event8   POINTER_SCROLL_WHEEL    +39.888s      vert 15.00/120.0* horiz 0.00/0.0 (wheel)
 event8   POINTER_SCROLL_WHEEL    +40.164s      vert -15.00/-120.0* horiz 0.00/0.0 (wheel)
 event8   POINTER_SCROLL_WHEEL    +40.458s      vert 15.00/120.0* horiz 0.00/0.0 (wheel)
 event8   POINTER_SCROLL_WHEEL    +40.746s      vert -15.00/-120.0* horiz 0.00/0.0 (wheel)
 event8   POINTER_SCROLL_WHEEL    +41.029s      vert 15.00/120.0* horiz 0.00/0.0 (wheel)
 event8   POINTER_SCROLL_WHEEL    +41.340s      vert -15.00/-120.0* horiz 0.00/0.0 (wheel)
 event8   POINTER_SCROLL_WHEEL    +41.701s      vert 15.00/120.0* horiz 0.00/0.0 (wheel)
 event8   POINTER_SCROLL_WHEEL    +42.088s      vert -15.00/-120.0* horiz 0.00/0.0 (wheel)
 event8   POINTER_SCROLL_WHEEL    +42.503s      vert 15.00/120.0* horiz 0.00/0.0 (wheel)
 event8   POINTER_SCROLL_WHEEL    +42.924s      vert -15.00/-120.0* horiz 0.00/0.0 (wheel)
 event8   POINTER_SCROLL_WHEEL    +43.396s      vert 15.00/120.0* horiz 0.00/0.0 (wheel)
 event8   POINTER_SCROLL_WHEEL    +43.843s      vert -15.00/-120.0* horiz 0.00/0.0 (wheel)
 event8   POINTER_SCROLL_WHEEL    +44.290s      vert 15.00/120.0* horiz 0.00/0.0 (wheel)

I don’t know why the wired connection send one “tick” as just
event8 POINTER_SCROLL_WHEEL +39.375s vert 15.00/120.0* horiz 0.00/0.0 (wheel)
while the wireless sends on “tick” as

event8   POINTER_SCROLL_WHEEL    +11.311s      vert 7.50/60.0* horiz 0.00/0.0 (wheel)
event8   POINTER_SCROLL_WHEEL    +11.328s      vert 1.88/15.0* horiz 0.00/0.0 (wheel)
event8   POINTER_SCROLL_WHEEL    +11.336s      vert 1.88/15.0* horiz 0.00/0.0 (wheel)
event8   POINTER_SCROLL_WHEEL    +11.343s      vert 1.88/15.0* horiz 0.00/0.0 (wheel)
event8   POINTER_SCROLL_WHEEL    +11.347s      vert 1.88/15.0* horiz 0.00/0.0 (wheel)

So in the end the issue really is, that only 3x1.88 is send as described in the original issue above.
I will do more research in getting wireless scrolling working.

It almost sounds like the mouse is going to sleep on you. Has it been like this since day 1 of the install or is this a new issue?

It’s a issue since day one.
Edit: I also tried piper now to no avail.