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

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

SteelSeries Arctis 9 not displaying battery when charging

Novattz opened this issue · comments

Description

As the title explains when my wireless Steelseries Arctis 9's are charging and i do headsetcontrol -b the output just displays "charging" and nothing else. i would like to get the battery % while also charging. I do not know if this is intended or just a limitation based on the headset but i would atleast like to get confirmation if this is intended or not and if its fixable in any other way on my end.

Headset Name

SteelSeries Arctis 9

On which OS does the problem happen?

Linux

Device information

Detailed Device Information
Device Found
 VendorID: 0x1038
ProductID: 0x12c2
 path: /dev/hidraw9
 serial_number:
 Manufacturer: SteelSeries
 Product:      SteelSeries Arctis 9
 Interface:    0
 Usage-Page: 0xffc0 Usageid: 0x1

Device Found
 VendorID: 0x1038
ProductID: 0x12c2
 path: /dev/hidraw10
 serial_number:
 Manufacturer: SteelSeries
 Product:      SteelSeries Arctis 9
 Interface:    1
 Usage-Page: 0xc Usageid: 0x1

Device Found
 VendorID: 0x1038
ProductID: 0x12c2
 path: /dev/hidraw12
 serial_number:
 Manufacturer: SteelSeries
 Product:      SteelSeries Arctis 9
 Interface:    2
 Usage-Page: 0xff00 Usageid: 0x1

Its intended. There is a flag inside the battery variable which is set when its charging.
Its probably possible to get the level anyway, but it will most likely deviate/jump extremely (for example you would plug it in, charge will instantly go to 20%, you plug it out it would plumbed).
Thats because (in comparison to for example smartphones), battery value is often just derived from voltage, which is highly inaccurate. Smartphones count it by measuring the amount of energy (ampers cumulated) went through.

Its intended. There is a flag inside the battery variable which is set when its charging. Its probably possible to get the level anyway, but it will most likely deviate/jump extremely (for example you would plug it in, charge will instantly go to 20%, you plug it out it would plumbed). Thats because (in comparison to for example smartphones), battery value is often just derived from voltage, which is highly inaccurate. Smartphones count it by measuring the amount of energy (ampers cumulated) went through.

since u mentioned that its possible is it something that could be added? i dont really care if its inaccurate i just want a general percentage so it doesnt just say "charging"

since u mentioned that its possible is it something that could be added? i dont really care if its inaccurate i just want a general percentage so it doesnt just say "charging"

Possibly yes. You will have to take a look here:

if (data_read[4] == 0x01)

Problem is a bit, that the function currently can only return one thing (either the level or a status information). I can change that in the next version

When looking at it again, you can simply "fix it" for now, by just removing

    if (data_read[4] == 0x01)
        return BATTERY_CHARGING;

I first thought that it is saved as flag, but it is saved in a different byte so just removing that two lines should be sufficient.

I implemented it in: #333

Will be released in around two weeks I think

Released in latest version