Related
I had seen one too many posts about people asking and complaining about battery drain issues on their G1 phones and it gets tiring to read it every 5-10 posts. So I decided to create this thinktank to pool in ideas from the community and create a set of best practices to maximize mileage of our phones. I'm currently using a HTC Dream with stock battery and my battery life is pretty good with light to medium usage. I would like to contribute to the community by creating this thinktank thread. I hope this can help as a guide for myself and for people who have been having numerous battery drain issues on 5.0.7-DS and variants of this distribution.
This is NOT the ultimate end-all solution for your battery problems. These are just steps to tackle the problem. If you want minimum to no battery drain keep it plugged to socket or plug it in a car battery.
If you would like to contribute your experience, or make any corrections please do not hesitate to post and I'll include them if they seem fit and attach your name as reference. I'll also do my best to give credit where credit is due. Please see the references at the bottom part of the post. Please do not clutter this thread by doing "I'll try this" or "It doesnt work" post. Its more important for all of us to know WHY it work/didnt work. Stick to topic, and be constructive. Be intelligent. Think first.
0. Update your Radio
Updating your G1's radio to the currently-latest version (2.22.23.02) should give you better battery life as well as signal reception (you can always switch back to 2.22.19.26I if it doesn't work out for you)
1. Recalibrate
Take note that BATTERY STATS ARE WIPED whenever you flash a new rom. (since full wipes are required whenever changing ROMS, and /data is where the battery info is.) This usually leads to inaccurate battery readings.
Here's how you recalibrate properly:
- Charge your phone till the GREEN LED shows up. Leave it for another hour.
- While plugged, go to recovery and wipe your battery stats.
- Right after the phone is booted up and settled, unplug and use as per normal till it shuts off. Then charge as per normal.
2. Disabling some basic phone hardware functionality
Turn off GPS, WIFI when not in use. And brightness set to manageable levels. Even loudspeaker. This is self-explanatory. Automation software like LOCALE can be useful, but usually all it takes for you to turn off your ringer, or turn on wifi when you're at a specific area is just a press on the Power control widget.
3. Overclocked kernels
Running on full overclock speed (by default is 528mhz or even higher on some kernels) will drain your battery faster and you'll notice significant heat increase when you're using your phone along with 3G.
Although im using pershoots 576mhz overclock kernel, I do not max it to 576 unless needed. The reason why I use his kernel is due to its UNDERVOLT capability. I have set up my phone using SetCPU
MAXFREQ: 480,
MINFREQ: 176
CPU Governor : ONDEMAND.
Click to expand...
Click to collapse
Usually I would set my phone to 384mhz if im going to stay on it longer (texting/long browsing etc). On the sleep mode I set it to 122mhz to 384mhz.
4. Tame your widgets, minimize using them.
Widgets that constantly connect to the internet, or constantly refreshing on the screen to update data being shown on the screen at extremely small intervals would also give you battery drain. Minimizing widgets can help minimize applications running in the background (free up memory) and avoiding your phone going on "partial sleep". Also tweak your widgets to update as less as manageably possible. If for some reason you can't see the next suggestion.
Aside from that you might want to disable Background syncing and do manual syncing. Aside from saving your data plan, it also saves battery life. You can disable it by doing the following:
Menu > Settings > Accounts & Sync > Background Data - OFF
Click to expand...
Click to collapse
manually update your facebook widget or contacts/gmail by
Menu > Accounts & Sync > Facebook (or GMail) > Sync.
Click to expand...
Click to collapse
5. 3G, 2G, switch off, or automate it.
You'll notice that inside the default settings for mobile networks. Setting to 2G will "save battery" which is actually true. The connection will definitely be slower, but if you like your phone to last longer throughout the day, either switch to 2G or turn it off altogether.
Also, similar to juice defender, I use 2g/3g toggle and toggle data as and when needed.
Another suggestion that I just found out recently is the use of Juice Defender app [d]. It automatically turns on or off your APN settings at intervals. You might want to try to look at that app if you cannot do #4
6. Disable live wallpapers. Auto Updating Sense
Remember that 2.1 isnt actually built for our old phones. and livewallpapers do require cpu/gpu processes. These are also running in the background and may run while your phone is asleep. So turning them off will benefit you.
7. Refrain from using Automated task killers and choose what you kill.
If you see that the app you had been trying to kill a few times keeps coming back. Stop killing it. Everytime you do, and whenever it respawns, CPU flies to 100%. Go back to #4.
8. Disable Market notifications.
- Open the Market application.
- Select the Menu key.
- Select Downloads.
- Select the Menu key again.
- Select Notifications.
- Select the Do not notify me radio button. press [Ok]
Click to expand...
Click to collapse
9. Make your phone sleep.
Open your spareparts application, Go to End button behavior. Select "Go to sleep"
10. Under the hood tweaks
10.1 Extending Wifi scan intervals
Edit the wifi scan interval in /system/build.sapphire.prop (or build.trout.prop if you have a G1)
# Time between scans in seconds. Keep it high to minimize battery drain.
# This only affects the case in which there are remembered access points,
# but none are in range.
wifi.supplicant_scan_interval = 45
Click to expand...
Click to collapse
Changing this number to just 90 second will half your wifi scans. Obviously larger numbers can mean less wifi scans which means more battery life, though it may take a little longer for your phone to pick up a remembered access point when in range. This is not just a CM/Eclair thing, it can also work for Donut phones.
This setting needs a reboot after editing the file. Edit it with Root Explorer, or nano as root if you have CM5, or pull the file with adb then edit it then push it back.
11. Remove your phone from your pocket whenever you can.
Body heat deteriorates battery life no kidding! there had been already studies to back it. I keep my phone either on my hand or outside of my pocket to keep it cool. Do whatever is manageable in your environment. If you're using your phone as a music player streaming using streamfurious and stuff. dont let your body heat add to the heat already been generated by your phone itself.
References / Updates :
[a] cyanogen recalibrating batteries : http://wiki.cyanogenmod.com/index.php/Troubleshooting#Battery_recalibration
thanks to mejorguille for correction on /data and wiping.
pershoot UV kernel: http://forum.xda-developers.com/showthread.php?t=666850
[c] SetCPU main site : http://www.pokedev.com/setcpu/ - Thanks also to ShadowCH for tip.
[d] JuiceDefender : http://www.latedroid.com/2010/01/juicedefender.html -
- Thanks to shohid1234 for 3G-2G toggle
[e] Thanks to Jaymzz for tip on disabling market: http://forum.cyanogenmod.com/index.php?/topic/94-i-fixed-my-battery-drain/
[06/02] thanks to Arkain2k for tip #0
[06/04] Thanks to Foo_Blyat's tip for disabling background sync and manual updates for fb/gmail (item 4) http://forum.xda-developers.com/showpost.php?p=6670907&postcount=36
[06/04] Thanks to Super Jamie for tip 10.1 extending wifi scans http://forum.xda-developers.com/showpost.php?p=6684954&postcount=49
reserved in case something nice comes up
10. Remove your phone from your pocket whenever you can.
Body heat deteriorates battery life no kidding! there had been already studies to back it. I keep my phone either on my hand or outside of my pocket to keep it cool. Do whatever is manageable in your environment. If you're using your phone as a music player streaming using streamfurious and stuff. dont let your body heat add to the heat already been generated by your phone itself.
Click to expand...
Click to collapse
really? isnt warmth charging batterys? in my old gameboy years i always put my batteries on the heater when the drained completely and after an hour i could play again with the old batteries.
1. Recalibrate [a]
Take note NOT TO WIPE BATTERY STATS whenever you flash a new rom and your battery is less than 90%. This usually leads to inaccurate battery readings. If you already wiped your battery during one of your flashes, here's how you recalibrate properly:
- Charge your phone till the GREEN LED shows up. Leave it for another hour.
- While plugged, go to recovery and wipe your battery stats.
- Right after the phone is booted up and settled, unplug and use as per normal till it shuts off. Then charge as per normal.
Click to expand...
Click to collapse
This is true, but since battery stats are stored on the data partition, a data wipe also deletes the battery stats. A lot of rom's require a full wipe, meaning data and dalvik, so battery stats are deleted whether you select the option or not.
Since001 said:
really? isnt warmth charging batterys? in my old gameboy years i always put my batteries on the heater when the drained completely and after an hour i could play again with the old batteries.
Click to expand...
Click to collapse
Hi!
Yes Im very familiar with that practice because i do that too. The reason might be because of the composition of the battery (alkaline, non alkaline). Usually we put it under the sun so that the heat will help change the composition of the compound inside the battery in order for it to lower down its resistance. Leading to a "charge".
But now we are using Li-Ion batteries, and I do not suggest putting them under the sun because it will deteriorate your battery capacity holding charge and its lifecycle.
reference: http://www.batteryuniversity.com/parttwo-34.htm see figure 1.
samaral said:
Hi!
Yes Im very familiar with that practice because i do that too. The reason might be because of the composition of the battery (alkaline, non alkaline). Usually we put it under the sun so that the heat will help change the composition of the compound inside the battery in order for it to lower down its resistance. Leading to a "charge".
But now we are using Li-Ion batteries, and I do not suggest putting them under the sun because it will deteriorate your battery capacity holding charge and its lifecycle.
reference: http://www.batteryuniversity.com/parttwo-34.htm see figure 1.
Click to expand...
Click to collapse
Thanks, that makes sense.
Made me lol to see that there actually is a "battery university"
Thank you! this post is noted
mejorguille said:
This is true, but since battery stats are stored on the data partition, a data wipe also deletes the battery stats. A lot of rom's require a full wipe, meaning data and dalvik, so battery stats are deleted whether you select the option or not.
Click to expand...
Click to collapse
Noted. I have edited the guide to reflect your insight.
Thank you very much
how about going to setting - about phone - battery use?
there you can find out exactly whats killing your battery and take appropiate action.
Also, similar to juice defender, I use 2g/3g toggle and toggel data as and when needed. Using these two widgets i have no battery issues.
Post noted and added on top
shohid1234 said:
how about going to setting - about phone - battery use?
there you can find out exactly whats killing your battery and take appropiate action.
Also, similar to juice defender, I use 2g/3g toggle and toggel data as and when needed. Using these two widgets i have no battery issues.
Click to expand...
Click to collapse
Noted. Your suggestion is added on top.
change preferred network type helped for me increasing battery life
Hello all,
as describe in post
forum.xda-developers.com/showpost.php?p=6432560&postcount=1
changing preferred network type worked for me.
default setting: WCDMA preferred drains my battery in a few hours, crazy
within CM 5.0.7-test7 I was able to change to: GSM/CDMA auto and it worked
But now in the final release 5.0.7-DS I can not select this setting. Perhaps it correlates to the this (PRL) info in brackets.
It seems that no "auto" setting want be working so I am trying WCDMA only right now and will see if I have a network in 2G networks too.
Bye morT
Hhmm let me think…
Running a prrocessor that's massively overclocked with software that was never meant to run on our g1's I have an idea.
****** off back to stock or get over it
I mean seriously people come on, we have set cpu for power profile management, basic battery usage which is dim screen, turn off wifi and 3g when not in use blah blah blah same **** written in every guide about battery life for ANY roms from cupcake to eclair.
As I said, get over it or go back to stock.
[highlight]Mod Edit: Please watch your language and don't flame others.[/highlight]
im sorry does turning on "display battery status" in spare parts still effect battery life? TIA
Ive noticed that bluetooth is killlllling battery life, but dont know if its normal. I charged to 100% and turned everything on, leaving screen on the whole time and what not.
While I was actively using the net over WiFi, I had nothing using the bluetooth, and both seem to eat up 20%..
This might be normal, might not be, but thought it was odd that it being on, but not in use, ate up just as much as functioning, in use, wifi.
whats funny to me is as soon as my phone dies i plug it up reboot it a few times and my battery is at 70%
.... i think its not reading correctly .. i mean fully charged play talk text browse till it shuts off .. plug it in turn it right back on then reboot ..
and my battery is back at 70% which is weird ... anyone else notice that???
also wifi, gps is on screen brightness is standard !!!
batteries really seem to be the least developed technology in our high tech phones. feels like a sportscar with a one gallon tank...the fun's over quickly...
turned off my 3G and got a lot of additional battery life. with bad 3G reception (like in the place I live in) the phone was sometimes sucked empty in just a few hours, now I get two days.
another thing that really helped me extend my battery life was turning on airplane mode when I went to bed.
how about dont use overclock or any other cpu speed up tool....maybe the speed they are factory set to is there for a reason...Hmmmmmmm
dcowboys2184 said:
whats funny to me is as soon as my phone dies i plug it up reboot it a few times and my battery is at 70%
.... i think its not reading correctly .. i mean fully charged play talk text browse till it shuts off .. plug it in turn it right back on then reboot ..
and my battery is back at 70% which is weird ... anyone else notice that???
also wifi, gps is on screen brightness is standard !!!
Click to expand...
Click to collapse
You should go through a battery recalibration - steps on the first page.
Best Practices for Improving Battery Life for CM 5.0.7 (and variant ROMS) is to use this ROM, Thanks.
Do whatever you like, show or hide battery status in the Spare parts, calibrate or not....the battery remains....for loOng....enough time....
hot/cold controversy
Since001 said:
really? isnt warmth charging batterys? in my old gameboy years i always put my batteries on the heater when the drained completely and after an hour i could play again with the old batteries.
Click to expand...
Click to collapse
Since I have a background in electrical theory and chemistry, let me end this debate once and for all: heat makes atoms (and therefore molecules) move faster. Lack of heat (cold) makes them move slower. In general, fast-moving atoms in batteries mean MORE power, not less. The reason your car doesn't want to start when temperatures are subzero is that the battery acid (electrolyte) molecules are moving too slowly to oxidize (give off e-, electrons) and turn back into positive ions. The same is true for the ol' Gameboy AAs -- put them on the heater, the dry cell warm up, and more electrons are transferred to the anode by anions, the positive ions (cations) are more able to travel to travel back to the cathode (in the case of dry/wet-cell rechargeable storage batteries). Heat acts as a catalyst to produce electricity. Some of you may have even taken your car battery indoors if the electrolyte froze in the winter. Some of your cars may have battery blankets or even battery heaters if you live really far up north. In addition, the process of charging a Li-Ion, Ni-mH, or even lead acid battery will produce heat, because chemical conversion is bi-directional, but anyway . . . you charge the G1, it gets hot. You use it heavily, it gets hot. You know you're spending electrons somewhere when it gets hot period. Keeping the phone cool will not increase battery life or make it charge fast. What lower battery temperatures will do is lengthen the battery's overall life. What happens if you leave meat out in 100F/30C temperatures? It goes bad quickly. Same principle in Li-ion. The rechargeable battery is ideally an efficient, closed system of ion exchange that should work for many (hundreds) of duty cycles, but eventually heat plays a role in deterioration of the electrolyte and chemical catalysts inside.
So put your extra charged batteries (but you don't want a Li-ion or Ni-mH battery to sit very long in an discharged state, so be careful here) in the refrigerator in an airtight bag (rotating on a daily basis) if you really want them to last a long time, but don't charge them frozen (ka-boom!) and remember cold batteries charge slowly. Car batteries in sub-tropical areas are replaced at a rate of about once every 24 months, but in Sweden? Maybe every five or six years. Cold temperatures slow down chemical deterioration just like cold keeps that steak from becoming maggot food.
Again, a hot G1 may weaken its own internal components and batteries over time, but putting it on ice won't give you an extra 6 hours to oogle Miley Cyrus' vBlog
Hope this helps.
For me, unless I'm expecting a text or a call always have my phone on airplane mode. I turn it off every hour or so to see if I got any unimportant texts, and then turn it back on
So, for a long time reading the forum and asking a question along the way, why I have so quickly battery discharging on my phone, I came across an interesting thought: "and from what I actually compare?. someone wrote about 5% per night, someone love to confess on the tab "Journal of the battery and it shows that he is the difference between" running "and"phone on "0.5%. but what is a night (for me it's 8 hours for someone 5). which network who have (GSM or 3G)? Also, we are constantly being developed and modified ROMs and kernels, which also constantly featured the words "lowered energy consumption."
And how do you actually compared the energy consumption of the old firmware to new. usually it sounds like "on the old firmware, I charge the phone every day, and now I charge every 2 days." but we don’t know details of how actively you used options of your phone on the old version, and how use now "(for me, For example the first 3 weeks after buying the phone had lived only one days, but now 2-3 days. but not because the new firmware, but because I'm tired of constantly digging through the phone settings and install the different soft, thus discharging it).
So, our challenge is to develop an algorithm (and in the future opportunities programs), as can be correctly and objectively compare the power consumption of our devices. That at least from the transition to the firmware to the firmware, from one kernels to another to be sure that the phone will not live less than before. Search for programs of this kind I have not been successful, can someone tell me if he knows?
actually look to you for ideas, how best to develop an algorithm testing the phone, and simultaneously bring your own.
then everything will be set out with respect to the software part, because hardware is not subject to us
1. So, first of all we need to start with any initial data. Having read all the threads about power consumption, I have come to the conclusion that the original data should include the following:
- Do wipe battery stat. We fully discharge the phone till shutdown and charge it in off state. after the device is fully charged, unplug it from the charging device and do wipe batter stat from the recovery menu
- To make the calibration of the battery you need to discharge and completely charge in turned off state the device at least 3 times
Here is one of the toughest parts, considering the long battery charging our phones. charging off-state means 4 hours of losing connection. and we need to do it 4 times. One discharge-charge cycle for a complete calibration system, as I understood , is not enough.
all the widgets and programs that can perform any action to in background must be disabled.
well, and then discharges our apparatus up to 95% in quiet mode, to give the battery a little bit cool, and eliminate trouble with 99-98-97% and you can begin testing.
2. Measurement tool. I would have chosen for this purpose, program or Battery Monitor Widget (she effects on discharging battery, but it writes logs, which can be tracked over time the battery status in percentage and millivolts) or JuicePlotter (don’t have logs. We have to extract data from the graphs that it constructs). JuicePlotter showed the best result in power consumption while the CPU time drain more than BatteryMonitorWidget - here's the first interesting fact. Now I’m testing these programs repeatedly to confirm this effect
3. In order to reduce measurement error the device must be discharged at least 20% of one test. or better at 30%. then + / -1% in the testing will not be particularly significant. That why testing process will be long and tedious.
4. In order to understand the power consumption of device in general, you should at least try to understand and share the power consumption of its individual components:
5. power consumption of the screen. For this purpose you can use the widget to extend controls, where you can turn the screen on constantly. And choose any standard wallpaper with middle brightness. we need to measure how much battery discharging for 3 hours the screen on. for small, medium and very high brightness, respectively. you can check consumption on the automatic brightness too. is believed that the turning on an automatic brightness strongly discharge the device..
6. power consumption of the file system. In the good we ought to write a program that creates a file in a loop on the internal flash drive, and anything he writes and deletes the file. Repeat the loop few thousand times to the total time was about 2-3 hours. but until there is no such a program, you can simply copy the file size of 2-3 gigabytes of internal memory with a program such as ES Explorer. In this case, the screen must be enabled to minimum brightness (since we already know how much the phone is discharged from simply turn on the screen) to control the copy process and accordingly the percentage of discharge.
7. Estimation of consumption of the processor. To do this, too, we can write a program that would do any arithmetic operations within an hour of time. But here we get the maximum load, therefore the maximum power of the processor. and it is unlikely it will be different from the firmware to the firmware . But our processor is also able to reduce the frequency and consequently reduce power consumption. And here I think there is much to improve the software. Therefore, must be differences from firmware to firmware. And the best test for this, I think, show any video on device, it loads processor to 30% on average (better view a videoconcert, so there isn’t quite boring) for one hour and thus measure how much discharge our batteries from this view .
8. Estimation of Wi-fi. Then the test can serve up any file copy from PC (connected through wires to an access point, so this segment was not the brakes) to our unit. Since the maximum speed that I managed to squeeze out of the standard N on my Captivate is 0,8 MB / sec I think copying the file size of 2GB will be enough to discharge our device is not less than 20% battery. copy can be perform using the same ES Explorer
9. Rated power consumption in standby mode. here it must enable the network only GSM. turn off the wi-fi and bluetooth. the screen went off and did not touch the machine for 8 hours. Better course would be 24 hours, but I think hardly anyone will be able to perform such a test
Actually look to you for your suggestions and additions, as can be realized by comparing energy consumption of our devices.
from the general collective thoughts we can open thread with algorithm, where you can write your test results according to the algorithm ... and make any conclusions.
Do u know how battery efficient ur smartphone is?
How is the battery efficiency of kernel X compared to that of kernel Y?
Is there an objective way to work out battery efficiency (ie. other than appealing to ur subjective impression)?
Below is my tentative solution to the above questions
Requirement:
1. You need to be able to bootup into recovery mode where u can wipe the battery stat (e.g. CWM Recovery can do that. In most cases, u need a rooted phone to obtain CWM Recovery);
2. You need to be able to take screen shots;
3. CPU Spy (by storm717, free from Google Play. Disclaimer: this author doesn't have any affiliation with the app or its creator )
4. Know the total capacity (in mAH) of ur battery (can be read from the face or the back of ur battery)
Procedure
Step 1. Calibrate the battery level indicator of ur phone
Concerning the battery level, theoretically only two points can be certain: 100% (when the battery is fully charged) and 0% (when it is totally depleted). All in the middle are extrapolations based on either the 100% or the 0% point.
Practically, the 100% point is the only point against which the battery indicator can be accurately calibrated. Below is the how:
1a. Fully charge ur phone. Switch it off when the fully charge indicator is on BUT leave the charger connected to it at this point;
1b. Half an hour later, with the charger still attached, boot up into recovery mode;
1c. Choose "Wipe battery stat" from the recovery menu: (for CWM Recovery) scroll to "advanced", then "Wipe battery stat", then scroll down to highlight "yes, wipe battery stat". When it is highlighted, WAIT FOR 1 MORE MINUTE before u press the Home button to activate it (the wait will make extra sure ur battery level is truly, totally, and absolutely 100% )
1d. When that extra 1 minute is over, press the Home button to activate "yes, wipe the battery stat" --- now, the battery level indicator is accurately calibrated to 100%. (U now can see why u can never totally accurately calibrate against the 0% point: as soon as u reach the true 0%, ur phone is out and u can't reset the battery level indicator to zero when ur phone is out. That's why )
Step 2. Monitor ur battery consumption
2a. With Step 1 completed, reboot ur phone;
2b. From this time on, DO NOT ATTACH UR PHONE TO UR PC VIA USB OR SWITCH OFF OR REBOOT UR PHONE until the whole monitoring process is over;
2c. U may then use the phone any way u wish (with exception 2b above applied), but from time to time (say for every 4 or 6 hours), run CPU Spy and take a screen shot of the results it obtains each time (see for e.g. the pictures attached);
2d. The monitoring should continue until the battery level is around 10%
Step 3. Calculate the rate of battery consumption
After Step 2, u will have multiple screen shots showing ur battery consumption at various levels of battery discharge. U may use the data obtained to calculate the rate of consumption of ur device. Below is how:
3a. Take my own consumption (battery: 2,500 mAH stock battery, phone: Samsung Galaxy Note) as an example --- see Fig 1 attached.
When the battery level is 74%, the CPU stats are as followed:
Deep Sleep: 15h 22m 55s, 90%
200Mhz: 1h 13m 21s, 7%
etc.
Understandably, the rate of battery consumption is different at different CPU frequencies. So, we will calculate the respective rates one by one (when the data obtained permit so).
3b. To calculate the rate of consumption (in mA/sec), when the phone is in Deep Sleep, C(Deep Sleep):
Amount of battery used = 2,500 mA * (100 - 74)% * 90% = 585 mA
= C(DS)*(15*60 *60 + 22*60 +55)sec
Thus, C(DS) = 0.0106 mA/sec ---------------------------------------(1a)
Similarly for C(200Mhz) (rate of battery consumption when CPU is at 200Mhz)
C(200Mhz) = 0.0103 mA/sec ----------------------------------------(2a)
In theory, we can similarly calculate the rates C(500Mhz), C(800Mhz), etc. However, becoz the consumption % for those frequencies are below 1 and CPU Spy rounds all decimals to the nearest digit, so in practice the figures obtained cannot be used.
3C. Now, let's look at Fig 2, when the battery level is at 47%. The data obtained are:
Deep Sleep: 19h 29m 27s, 81%
200Mhz : 3h 15m 1s, 13%
etc.
Thus, C(DS) = 0.0153 mA/sec ----------------------------------------(1b)
C(200Mhz) = 0.0147 mA/sec -----------------------------------(2b)
Hence in my case (Samsung Galaxy Note, GB 2.3.6, Kingdroid v5.4 ROM, Speedmod K1-5 kernel, 2,500 mAH stock battery) the rate of battery consumption is around 0.011 to 0.015 mA/sec.
Limitations
1. The results obtained from the above method to calculate rates of battery consumption is system-dependent, meaning that meaningfully comparison between results can only be made for the same combination of phone + battery (system). Say u obtain C(Deep Sleep) for certain phone, OS, ROM, kernel is, for instance, Z mA/sec, this doesn't mean that for the phone model having the same OS, ROM, kernel, C(Deep Sleep) must be Z, becoz even for the same models the hardwares may be different and the battery may also be a bit different (different batches may behave slightly differently; and more importantly, the AGE of a battery can have significant effect on its performance, so batteries of the same model and the same batch may perform different owing to their different age). Nonetheless, u may make meaningful comparison when u compare results obtained for different OS's, ROM's, or kernels u install to ur system (phone + battery).
2. The rate of battery consumption with CPU at higher frequencies may not be derivable owing to the rounding of figures by CPU Spy.
******************************
Pls click "Thanks" if u find this makes good sense
reserved for possible future use.
Interesting post!
What do you say if I only charge my phone to full, use Battery Calibration, reboot the phone. Will the phone still be 100% charged? Also, I think randomly using your phone between a certain range of battery levels, say 100-10%, doesn't really guarantee exact data for calculations. Maybe a stress-testing app will do a better job. Have you tested My Battery Drain Analyser and compared your results to its reading?
Please correct any technical fact if needed!
Your info is interesting but you may post it on the battery thread already is placed in general
Hey
First, please read this article:
http://batteryuniversity.com/learn/article/how_to_prolong_lithium_based_batteries
TL DR
A Li-Io or Li-Po battery charging cycle like charged to 100%, discharge to 15% and repeat, will have only 300-500 charge/discharge cycles battery lifespan, while a battery charging cycle like charged to 75%, then discharge to 25% and repeat, will get 1,500-2,500 charge/discharge cycles battery lifespan.
I have Samsung laptop, that have application (Samsung Easy Settings), that control charging process. When "BATTERY LIFE EXTENDER" is checked, then charging stops at 80% and will not get higher, and when laptop is constantly connected to wall, then app will let drop battery level 75%, then recharge to 80% again.
I'm using this laptop over 3 years and battery last over 5 hours (time on battery is shorter about 10-15min from "brand-new" state)
So, I'm looking for an android app (for rooted devices), that will stop charging at user predefined level (for example 80%), and cause alert/notification (on discharge), when battery level dropped below user predefined level (for example 25%) - to save battery lifespan.
PS: There is a trend, the newer, high-end devices have built-in batteries, without possibility to replacable (solid smarphone body, hard to open without damage), so that app could make device live longer
PS2: I read about charge control by "/sys/class/power_supply/battery/charging_enabled", but this doesn't exist in my ROM (crDroid, CM13 based on i9505)
PS3: The tasker helped me to "detect" charging over 80% (profile AC is ON and Battery level is over 79% -> task "say bla bla bla disconnect Your phone from wall"), but this is only "workaround" and doesn't work at night (You have to wake up and disconnect phone from wall)
Unfortunately this is a Question. This forum is only used to post actual apps.
You have already posted in right place so closing this.
While I've had many Android phones, this is the first phone that I decided to use a battery charging controller to regulate how my battery is charged. I just wanted to share my journey with others and encourage others to try this out if you are not already.
Although there are several different battery charging controllers out there (and more than one named "ACC" which makes it even more confusing) I decided to use the Advanced Charging Controller module developed by VR25. I choose this module because I felt it provided the most customization.
Step 1 - Installation
Installing the module is easy. It is listed in the Magisk repository. Simply browse the available modules and find the one titled, "Advanced Charging Controller (acc) created by VR25 @ XDA-developers". There are several ACC modules, so make sure you install the one by VR25 to follow this thread.
Magisk will flash the module and start it automatically. You don't even need to reboot, although it is the only way to clear the Magisk notification that the module will be started at the next reboot.
Step 2 - Changing the Charging Switch Setting
I found that the default charging switch setting (auto) does not work reliably with our phones. Therefore I would suggest changing it using the commands below. Personally I have choose option 2 (battery/charge_disable 0 1) but I listed all the options with the quirks that I have found with each one.
Step 2.1 - open your preferred command line app - I use Terminal Emulator.
Step 2.2 - type "su" and hit enter to gain root
Step 2.3 - type "acc -s s" and hit enter - this is the command that allows us to select another charging switch
Step 2.4 - type what number of the charging switch you want to use.
Here are the available charging switches and the issues I have found with them:
1) Automatic - this switch tries to cycle through the available switches until if find one that "works".
- Passes the ACC switch test (type "acc -t"): Yes
- Charges and discharges according to the cooldownratio: No - I found that the phone would charge anytime it was plugged in and below the Pause threshold. It did not seem to wait until the battery level was below the Resume threshold.
- Works with battery idle mode (the phone will pull power from the AC power and not the battery when the battery reaches the Pause threshold): Yes
- Begins charging when phone reaches Resume threshold: Yes
- Charging "chime" and battery icons correctly reflect if the phone is charging or discharging: ???
- Suffers from wakelock issues when phone is plugged in but not charging: It does have a "overheat_mitigation" wakelock when on the battery idle mode, but because the phone is not using the battery power, it doesn't effect battery life and therefore I don't concern myself with this issue.
- Other issues:
2) battery/charge_disable 0 1 :
- Passes the ACC switch test (type "acc -t"): Yes
- Charges and discharges according to the cooldownratio: Yes
- Works with battery idle mode (the phone will pull power from the AC power and not the battery when the battery reaches the Pause threshold): Yes
- Begins charging when phone reaches Resume threshold: Yes
- Charging "chime" and battery icons correctly reflect if the phone is charging or discharging: ???
- Suffers from wakelock issues when phone is plugged in but not charging: It does have a "overheat_mitigation" wakelock when on the battery idle mode, but because the phone is not using the battery power, it doesn't effect battery life and therefore I don't concern myself with this issue.
- Other issues:3) battery/input_suspend 0 1:
- Passes the ACC switch test (type "acc -t"): Yes
- Charges and discharges according to the cooldownratio: Yes
- Works with battery idle mode (the phone will pull power from the AC power and not the battery when the battery reaches the Pause threshold): No - phone begins discharging from battery when Pause threshold is reached but the phone is still plugged in
- Begins charging when phone reaches Resume threshold: Yes
- Charging "chime" and battery icons correctly reflect if the phone is charging or discharging: No - may show charging icon when phone is really discharging, especially during cooldownratio times and the chime doesn't always ring when charging resumes.
- Suffers from wakelock issues when phone is plugged in but not charging: No
- Other issues: The phone seems to follow the cooldown charge/discharge times even before reaching the cooldown threshold. I find the phone pausing for 10 seconds (my cool down ratio) when the batter level might be a 50% - long before the 60% cooldown threshold I have set in the config file.4) dc/input_suspend 0 1:
- Passes the ACC switch test (type "acc -t"): NO, so this switch doesn't work with ACC
- Charges and discharges according to the cooldownratio:
- Starts discharging when the phone reaches the Pause threshold:
- Begins charging when phone reaches Resume threshold:
- Charging "chime" and battery icons correctly reflect if the phone is charging or discharging:
- Suffers from wakelock issues when phone is plugged in but not charging:
- Other issues:5) battery/charge_control_limit 0 1:
- Passes the ACC switch test (type "acc -t"): NO, so this switch doesn't work with ACC
- Charges and discharges according to the cooldownratio:
- Starts discharging when the phone reaches the Pause threshold:
- Begins charging when phone reaches Resume threshold:
- Charging "chime" and battery icons correctly reflect if the phone is charging or discharging:
- Suffers from wakelock issues when phone is plugged in but not charging:
- Other issues:
Step 3 - Configuration
You can configure the ACC controller using a couple of different methods. You can do everything using command lines, you can use the beta ACC app (see note below), or you can edit a config file that ACC creates when it is installed. Personally I found that editing the config file was the quickest and easiest method to make general changes.
The ACC config file is found at /storage/emulated/0/acc The file is named "config.txt" You can open the file with a text editor. I personally use the app Root Explorer. I long click on the file name, and then press the three dot button in the upper right hand corner. Choose "Open in Text Editor" and the config file will open and allow changes to be made. Saving the file will automatically push the changes to ACC, you do not need to reboot or restart the ACC daemon for changes to take effect.
I won't go into a lot of detail about all of the different configuration options here as the developer's xda thread is the best place to get that type of information. But I will talk about the most basic setting - the "capacity" setting. It is the second setting listed in the config file and it should look something like "capacity=0, 60, 70-80". Here is a break down of what those numbers mean:
- The First Number (0): is battery level were the phone will shut off. The default setting of 0 means the phone will turn off when the battery level hits 0. Personally I don't want my battery completely draining, so I have it set at 5.
- The Second Number (60): is the battery level where the module starts it's "cool down" functionality. Cool down (listed as coolDownRatio in the config file) is where the phone will stop charging briefly and then restart charging. The default "cool down" setting is coolDownRatio=50/10 which means the phone will charge for 50 seconds, and then stop charging for 10 seconds before charging again for 50 seconds, etc, etc, etc. This is designed to keep the battery temps low. A battery with a charge level less than this number (60 in this example) will charge without pausing, but when the battery level gets to this number or above, the phone will charge and pause based on the coolDownRatio.
- The Third Number (70): is the "resume" value. If the phone's battery level is below this resume value, the phone will charge. If the battery level is at or above this resume value, the phone will not charge even while plugged in.
- The Fourth Number (80): is the "pause" value. This is the battery level where the phone will stop charging and should not charge above this value.
The default settings are set this way because research has shown that a phone's battery will last the longest with the least amount of battery capacity loss if it is charged to a max of 80% of the battery's capacity, and allowed to discharge just a small amount (10%) before being charged again. I realize this goes against the old "wives tale" that our phone's batteries have a very limited number of charges and it is best to limit the number of charges by only charging the phone when it gets to a low level. This is not true in actual battery performance however and if you charge like this, you are actually decreasing your battery's life expectancy and performance.
Obviously the default settings may not be the best setting for you. The default settings are probably only practical for a device that is plugged in 100% of the time. Personally I have changed my capacity setting to capacity=5, 60, 70-90. This means my phone will turn off when the battery level reaches 5% (something it has never dropped to yet), it is charged to a max of 90% and will discharge to 70% before charging again, and the cooldown charging cycling starts when the battery is 60% or higher. Obviously I'm not on my charger all the time, so it is very common for my battery to drop below 70%. However, if the battery is below 70% and I have a charger at my disposal, I am going to charge the phone back to 90% rather than let it the battery levels continue to fall.
Final Notes and Misc Thoughts
There are lots of other options and commands you can use in ACC. Feel free to share any changes you like to make, or post if you are having problems getting the module to work as expected on the 3a. I hope this helps some people feel give the module a try.
There is an ACC app that is available now that allows you to control some of the settings from a nice GUI. I personally did not like using it as I found it would overwrite settings in the config file that I was not intending to be changed.
There is an ACC telegram group if you want to join and have direct communication with the developer and others.
Thanks to @jellopuddingstick for educating me on what the battery idle mode does and why it is beneficial to have it working!
sic0048 said:
I just wanted to share my journey with others and encourage others to try this out if you are not already.
Click to expand...
Click to collapse
Was doing the same research when this popped up -- great job!
Can you discuss more on what unintended settings were overwritten by the app....
Also, thoughts have seem to have standardized now to lop off 40% of usuable capacity by having the battery charge btw 20-80% to extend life, such as... "capacity=20, 60, 70-80".
How were the defaults for ACC set and why have you chosen otherwise?
duh1 said:
Was doing the same research when this popped up -- great job!
Can you discuss more on what unintended settings were overwritten by the app....
Also, thoughts have seem to have standardized now to lop off 40% of usuable capacity by having the battery charge btw 20-80% to extend life, such as... "capacity=20, 60, 70-80".
How were the defaults for ACC set and why have you chosen otherwise?
Click to expand...
Click to collapse
The app works by writing to the normal config file. But it also has three profiles loaded into memory automatically when you install it. This makes it very easy to press on one of the other profiles by accident and totally change your settings. I eventually deleted all the "extra" profiles, but the charging switch isn't changeable via the app either (it seems like it defaults to auto) so the app will overwrite that setting back to auto if you aren't paying attention.
In the long run I found that using the config file was extremely easy and I found myself having the check the config file anytime I used the app to make sure it wasn't changing unintended settings, so I decided to remove the app and just use the config file.
As far as capacity, I decided to run 5, 60, 70-90. I think it is a good compromise between having a decent amount of capacity available and also not charging the phone to 100% all the time. I could probably get away with a limit of 80 or 85, but ultimately decided on 90. I do try to charge my phone when it hits 70 or below if I have a charger available vs waiting to do a larger/longer single charge.
sic0048 said:
I do try to charge my phone when it hits 70 or below if I have a charger available vs waiting to do a larger/longer single charge.
Click to expand...
Click to collapse
Don't you think 70 is too high to begin charging just to bring it back to 90. Doesn't number of charge cycles kill battery life as much as heat and fast rate charging?
Any good apps you like that intuitively monitor battery health, besides just stats and charts, that does it like apple, as a percent of remaining chargeable capacity?
Btw OT question, looking to move over my wifi connections from the previous phone and can't find the wpa_supplicant.conf file in /data/misc/wifi in the 3a. No reference online mentions that it's been moved. Any idea where they're hiding it now? Thx...
duh1 said:
Don't you think 70 is too high to begin charging just to bring it back to 90. Doesn't number of charge cycles kill battery life as much as heat and fast rate charging?
Click to expand...
Click to collapse
According to this research (https://batteryuniversity.com/index.php/learn/article/how_to_prolong_lithium_based_batteries/), the more your battery discharges, the fewer discharge cycles it will survive before really negatively effecting battery performance. So discharging your phone just 10% might give you 6000 discharge cycles, while discharging your phone 60% might reduce these discharge cycles by 90%.
Obviously I have to rely on other people's research as there is no way I can adequately test this myself. But I do trust this research as accurate. I know with other phones I've had where I did not try to control the charging system I have had to replace the batteries with pretty regular occurrence. But I would leave the phone on the charger overnight (not a good thing for battery life) and try to discharge the battery a lot before charging it back again (also not a good thing for battery life). That's why I decided to finally look into using a charging controller like ACC with this new phone.
duh1 said:
Any good apps you like that intuitively monitor battery health, besides just stats and charts, that does it like apple, as a percent of remaining chargeable capacity?
Click to expand...
Click to collapse
I've been using the ExperimentalX helper app to track battery usage. (You don't need to use their kernel to use the helper app). I like it because it breaks the battery usage stats into two parts: when the screen is on, and when the screen is off, but it doesn't attempt to give a percent of remaining chargeable capacity. I'm not aware of an app that does that (although I too would be interested to know if such and app exists).
duh1 said:
Btw OT question, looking to move over my wifi connections from the previous phone and can't find the wpa_supplicant.conf file in /data/misc/wifi in the 3a. No reference online mentions that it's been moved. Any idea where they're hiding it now? Thx...
Click to expand...
Click to collapse
I think the info you are looking for is now stored at /data/misc/wifi/WifiConfigStore.xml.
As I use my phone more, I realize that none of the charging switches seem to work 100% of the time as expected. I'll continue to do trial and error tests, but please share if you find a switch that works consistently.
I've continued to edit my original post to provide as much information about the different charging switches and the issues I see with each one. Hopefully it is easy to understand.
I still find myself defaulting to the 3rd charging switch option and while it can act a little erratic sometimes, it does work normally most of the time.
Is it possible to disable/bypass the cool down period?
creeve4 said:
Is it possible to disable/bypass the cool down period?
Click to expand...
Click to collapse
The default setting is for it to be turned off I believe. Look in the config file for "coolDownRatio=" and see if it is blank. If it is not, you can remove everything after the equal sign.
Another way to do it is set the cooldown threshold number to be equal or higher than your "pause" threshold. So you might set this as "capacity=5, 100, 70-90". The 100 represents the value at which the cooldown process would start, which is higher than the pause threshold (at 90 in this example) and therefore would never kick in.
All this being said, I find that the #3 switch option seems to allow the cooldown pause/charge process to start below the set cooldown threshold. I have my cooldown threshold set at 60, yet find the phone pausing and charging at battery levels below this threshold. This should not be happening, but is something I can live with, so I haven't bothered to follow up with it.
After several more weeks of use, I've updated the initial post again. I found some quirks with the "automatic" charging switch, so I have gone back to selecting charging switch option 2 (battery/charge_disable 0 1).
Great job!
May I ask you whick kernel you are using for "battery idle mode" support? It should not be supported on stock kernel.
Thanks