flozz / rivalcfg

CLI tool and Python library to configure SteelSeries gaming mice
https://flozz.github.io/rivalcfg/
Do What The F*ck You Want To Public License
761 stars 62 forks source link

Rival 3 Wireless #177

Closed TheBready closed 1 year ago

TheBready commented 2 years ago

Bug description

What happened

'rivalcfg --battery-level' only returns the battery level of the right battery. A full-charged battery is only about 50%.

What was expected

A fully charged battery should return something around 100%.

Step to reproduce

System information

RIVALCFG
========
Version: 4.5.0
udev rules installed: True
udev rules up to date: True
Installation path: /home/<user>/miniconda3/lib/python3.9/site-packages/rivalcfg

OPERATING SYSTEM
================
OS: Linux
Platform: Linux-5.16.1-arch1-1-x86_64-with-glibc2.33
Version: #1 SMP PREEMPT Sun, 16 Jan 2022 11:39:23 +0000
Distribution issue: EndeavourOS Linux \r (\l)

PYTHON
======
Python version: 3.9.5
HIDAPI version: 0.11.0.post2

PLUGGED STEELSERIES DEVICES ENDPOINTS
=====================================
1038:1830 | 00 | SteelSeries Rival 3 Wireless (firmware v0)
1038:1830 | 01 | SteelSeries Rival 3 Wireless (firmware v0)
1038:1830 | 02 | SteelSeries Rival 3 Wireless (firmware v0)
1038:1830 | 03 | SteelSeries Rival 3 Wireless (firmware v0)
1038:1516 | 00 |  (firmware v0) <- SteelSeries Mousepad with RGB
1038:1516 | 01 |  (firmware v0) <- SteelSeries Mousepad with RGB
flozz commented 1 year ago

Hello,

Rivalcfg can only access to the value reported by the mouse, it has no control on what happen inside the device. Sadly, there is nothing I can do in Rivalcfg.


The only thing I can say is that the device can only estimate the battery level from the input voltage as this mouse is made for alkaline (NiCd) batteries. If you use a rechargeable lithium battery, its output voltage is more stable and its discharging curve is different from the one of a NiCd battery. This can cause issues interpreting the level of the battery.

Also, a colleague lend me its mouse with NiCd batteries in it, and Rivalcfg returns me this:

Discharging [========= ] 93 %