Sapd / HeadsetControl

Sidetone and Battery status for Logitech G930, G533, G633, G933 SteelSeries Arctis 7/PRO 2019 and Corsair VOID (Pro) in Linux and MacOSX
GNU General Public License v3.0
1.47k stars 178 forks source link

Incorrect battery reported with Corsair Void Elite when charging #370

Closed Odizinne closed 2 months ago

Odizinne commented 2 months ago

Description

In issue 287 i saw your comment about voltage being used to measure current battery level.

I have next to zero knowledge at electricity but i am wondering if this could cause an incorrect battery report when charging device.

Assuming my headset is at 25%, if i plug the headset, battery level will go really high, and go back to normal as soon as i unplug.

I'm pretty sure there is nothing wrong in headsetcontrol implementation since ICUE itself does not allow monitoring battery level when charging for Corsair Void Elite.

In my application i just hide the battery level when device is charging. Does this behavior occurs with every supported headset?

If it does not and if it only occurs with corsair device, i might hide battery level only with thoses.

Else, could it be a good idea to add a bool "CAP_BATTERY_STATUS_WHILE_CHARGING" to output?

This way external applications could filter capable device to show battery level when charging, and hide battery level when charging for "unsupported" ones.

Headset Name

Corsair Void Elite

On which OS does the problem happen?

Windows

Device information

Detailed Device Information ``` VendorID: 0x1b1c ProductID: 0x0a51 ```
Sapd commented 2 months ago

I have next to zero knowledge at electricity but i am wondering if this could cause an incorrect battery report when charging device.

Yes. When charging voltage will increase during that. When you unplug the charger it will again show the true battery voltage.

Does this behavior occurs with every supported headset?

I think so. I never saw something else. The manufacturers do not seem to integrate power measurement (amperage over accumulated over time) into the chips. With that one could with much more certainty say how full the battery is.

So the bool is probably not necessary. You can always assume that it will just not be precise during charginig.