ValveSoftware / SteamVR-for-Linux

Issue tracker for the Linux port of SteamVR
929 stars 45 forks source link

Excessive battery wear #162

Open h1z1 opened 5 years ago

h1z1 commented 5 years ago

Your system information

Please describe your issue in as much detail as possible:

As a result of controllers lacking battery management they prematurely lose charge and capacity over time. They will stop charging completely if left plugged in until either exhausting their battery or manually disconnect/reconnecting. Both cases ultimately cause the same event.

What should happen is either the hardware or software tracks available power and adjusts as needed to maintain a float voltage.

Steps for reproducing this issue:

  1. Plugin controller, confirm battery charge needed (orange/red LED)
  2. Wait for charge cycle to appear complete
  3. Disconnect and reconnect controller
  4. Observe charge process continues
  5. Repeat 2-5 as needed until reconnectiong results in full charge indication within a short period (few seconds).

Second Test

  1. Plugin controller, confirm battery charge needed
  2. Wait for charge cycle to appear complete
  3. Do not disconnect, leave plugged in
  4. Wait ... depending on battery health 24-48 hours, or more
  5. Observe battery dies, USB disconnect/reconnects to host
  6. Charging process restarts

Though it should, test 2 may or may not result in a red LED. Further indicating the charge circuitry is poorly implemented.

There is no known (public at least) API exposed to gather battery voltage which makes this way more difficult then it should be. Idealy battery conditioning of some kind should be possible (also refered to as battery calibration).

Perhaps related is vrmonitor believes the controllers are in standy which is clearly not the case. image

h1z1 commented 5 years ago

Seriously no reply to this at all?

robobenklein commented 5 years ago

This seems suspiciously similar to a phone charging issue I have, though I have not seen this problem with VR controllers.

Leaving the phone on the charger for more than 24hrs will cause it to come off the charger without a full battery, too long (a week?) at it'll die as soon as the charger disconnects.

Leaving it unplugged during the day (even when not in use) and only charging overnight appears to have mitigated the issue with the phone. (It's an old battery...)

Haven't seen the issue with controllers (though I haven't left them charging for more than 48hrs at a time), but it seems similar enough that it might be the same underlying cause with a weird charging circuit logic.

h1z1 commented 5 years ago

It's indeed a mix of hardware and software problem.

I've been able to confirm part of the the reason for the power draw happens because of steam polling them or something. It's like leaving your car lights on, eventually you'll kill your battery. It happens with them supposedly turned off (physical light is off and vrmonitor shows grey).

HTC's own adapter does the same thing wrt power draining though it supports quickcharge, something that isn't happening in linux (the power never goes above 100mA). The charge controller can be accessed from Linux if Steam adds support for it.