Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Problem with pretty much every modern battery-powered device is that battery is flogged to near death at every charge. From @marcan's mastodon post, Pixel 4a's battery is charged to 4.45V:

  qcom,max-voltage-uv = <0x43e6d0>;
This is completely insane, and it's a small miracle that this phone didn't follow Note7's fate.

As for charge limiting... limit at 80% is an okay workaround (certainly better than no limit at all!), but it's far from perfect. Namely, with this approach, charge controller chip doesn't know cut-off is coming, and will shove several amperes into the battery until last second, thus overshooting safe voltage level. This wears the battery (less so than with no limit, but still more than necessary).

Battery charging limiting should be done by voltage: this way, controller chip knows where to stop, so it makes soft taper-off at the end of charge cycle, by gradually nudging current down to stay within voltage envelope.

Charging profile could be observed from a rooted adb console:

  grep NOW <$(find /sys/devices/platform \
  | grep battery/uevent$ | head -1)
(depending on phone model and firmware, some tweaking might be required to find/grep to get the right battery status file)


Thank you for sharing your expertise.

It seems to be unbelievable that none of this has become part of AOSP.

I should have a battery setting that optimizes either for battery longevity, or for maximum power delivery. These settings should incorporate best practice, such as you have outlined.

The last stable ACC release was in late 2023, and it appears to remain the best battery management tool for longevity.

Why is this so?

I rewrote your script slightly, and ran it on my Pixel 3.

  find /sys/devices/platform |
  grep battery/uevent$ |
  head -1 |
  xargs grep NOW

  POWER_SUPPLY_VOLTAGE_NOW=3955800
  POWER_SUPPLY_CURRENT_NOW=-222656
Also:

  find /sys/devices/platform -name uevent |
  grep battery |
  head -1 |
  xargs grep NOW


  find /sys/devices/platform \
    -path '*/battery/*' \
    -name uevent |
  head -1 |
  xargs grep NOW


> I should have a battery setting that optimizes either for battery longevity, or for maximum power delivery.

Newer Pixels have a concept of "bed time" and charge slower overnight, for battery health.


This is also present in my 4a, perhaps it's a feature of Android 13.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: