[ROOT] [Battery Life] Improve Battery Life by reducing the charge termination voltage!

  • Replies:7
Matthias Lueder
  • Forum posts: 1

Apr 22, 2018, 9:41:16 PM via Website

Hey Guys,

I have tried several apps to improve battery life but I did not find a useful solution... Until now!
The problem of Li-Ion batteries is the faster aging when applying a high voltage in combination with high temperatures (!)
The offered solution of many apps is to stop charging when reaching a certain percentage of the full capacity (i.e. 90%) This solution may extend the battery life but not really effective... Why? When charging, the voltage of the battery near the defined percentage is very high (in my case 4.35V). In case of applying a high temperature in combination with the mentioned high voltage the battery life will be drastically shortened!

The state of charge (image from Silicon Lightworks)

Li ion_Discharge_Voltage_Curve_Typical

curve shows that there is not much energy needed to get from 4.2V to 4.35V. So it is useless to charge the batteries to the end to get 100% unless your battery life does not affect you. If you want to read more about the technology of Li-Ion batteries, don't hesitate!

Here is my solution:
Set the limit of the CHARGE TERMINATION VOLTAGE and NOT the maximum percentage of charge. The charge percentage is the percentage of your full capacity measured in mAh. The charge termination voltage you can look up in the picture above (SoC curve).

How to set this limit?
First you need root access. Without root you don't get access to system relevant features.
There is a folder named

/sys/class/power_supply/battery/

and there you can find some meta data about your battery. The file "voltage_max" is the file you have to edit. In my case this file contains a default value of "4350". This value is the charge termination voltage in mV. I have rewritten this file with the value "4200". So the battery never sees a higher voltage than 4.2V. You can check this with many apps like CPU-Z. My system shows a percentage of 89% when reaching 4.2V and the charging progress is complete. This solution is a much better solution than cutting off the pure percentage. The reason I have written in the first sentences.

But what happens if you restart your phone?
The default value will be reloaded :( So after every restart of your phone you must edit the file again... Very bad... But there is an automatic solution!

Install the app "Tasker" and do the following:

Add a profile by pressing the "+" button in the bottom right corner. Choose "state" and then choose "power" and again "power". Now you have to specify the source of power supply. Chosse "Any" and press the back button.
Add a new task and name it like you want (i.e. "set4200"). Confirm your task name.
Click on the "+" button in the bottom right corner to choose an action. Press on "Code" and then "Run shell". Check field "Use root" and put the following line in the "command" entry:

echo '4200' > /sys/class/power_supply/battery/voltage_max

Press the back button as often as you see the your defined profile. That's it! You now have defined an action to rewrite the mentioned file with a new value in any case you put a cable into your phone to charge it!
Unbenannt
Extend your battery lives!

Greets,
matt

— modified on Apr 22, 2018, 9:51:04 PM

hals

Reply
AlieLeite
  • Forum posts: 1

Sep 26, 2018, 7:24:59 PM via Website

Hi...generally the life of Li-Ion cells is closely tied to just how far they have been discharged in between charges. So the further you discharge, the shorter the life expectancy. All that only charging a 4.35 volt battery to 4.2 volts does is to reduce the capacity, and possibly minimally extend the life. If the manufacturer recommends not going below 3.0 volts, there is probably a good reason, and odds are it is because of significant negative impact on the life expectancy of the cell.

Reply
hals
  • Forum posts: 1

Oct 12, 2019, 9:57:41 PM via Website

You can also use the Battery Charge Limit app for rooted devices which toggles charging_enabled or other control settings to limit maximum charge.


Persistent value may be voltage_max_design. In developer options, enable ADB root access and use.

adb root
adb shell
su    
chmod 644 /sys/class/power_supply/battery/voltage_max_design   # allow write
echo '4200000' > /sys/class/power_supply/battery/voltage_max_design   # still read only on some devices
echo '4200' > /sys/class/power_supply/battery/voltage_max

There are other setting which also might help battery life:

ls -l /sys/class/power_supply/battery/
max_pulse_allowed
restricted_charging

Setting a maximum charging temperature limit would be useful, but looks like it would require a root app to monitor temp and toggle charging_enabled.

— modified on Oct 13, 2019, 3:45:43 AM

Reply
marco sarli
  • Admin
  • Forum posts: 1,011

Oct 13, 2019, 12:57:41 PM via Website

Would be nice to have a solution also for non rooted devices

Reply
Foshuna
  • Forum posts: 10

Dec 23, 2019, 8:19:30 AM via Website

Wow..thanks for informative posts

Reply
Mosioneo
  • Forum posts: 11

Jan 27, 2020, 10:32:25 PM via Website

Any battery has a resource. One way or another, any thing will age and expire with time.

Reply
Pierre Lesage
  • Forum posts: 1

Jan 9, 2022, 3:48:46 PM via Website

Here is full explication about Lithium-ion battery life cycle.
This website dont allow external link but type in google search.
battery university BU-808: How to Prolong Lithium-based Batteries

Reply
gb app
  • Forum posts: 8

Mar 24, 2023, 6:00:13 AM via Website

Very helpful content, thanks a lot for sharing this type of information.

Reply