Life of a Battery - Desire Q&A, Help & Troubleshooting

Hello guys, I am experiencing some troubles with the battery of my beloved Desire. I am using Oxygen 2.3.2 right now. The problem: every time the battery reaches 20% of charge the phone dies. But when I plug it and it start charging it says it's at like 2-3%. Now, one of my friend suggested that since the battery is quite old (I charged it every day since april 2010), it can have problems when it reaches low voltages, so I should change it. Do you have the same opinion or you think it's just a calibration problem?

Calibrate. If there is no change, replace the battery. Isn't that simple enough?
via xda app

Install spare parts . Go to Battery information . Check Battery health . If it doesn't say "Good" then you need to replace the battery .
Also try a calibrate as stankyou suggested .

I'm having the same issue. Tried calibration a few times and my battery health says good. Glad that my new ROM is better on battery so I don't get down there as often, but it is still annoying.

Hello,i had the same problem with my desire's battery,it went down at 20%.
what i did was to follow an tutorial from Oxygen rom forum,an user called paschadee posted this:
Advanced Battery Calibration (tested and verified on Oxygen + bravoGSM)
Intro:
This will actually calibrate your battery, unlike other methods out there. After calibration, empty will be at 0% not some arbitrary value like 18%. For added comfort, you can perform steps 1-5 until you are comfortable with the routine; on the first run stop at step 5, don’t plug in and watch where your battery dies to give you an idea of the time window available – then on the next run you will know when to plug in. This ensures a smooth and error-free routine. You don’t actually need to do this since the app will tell you when to plug in. Once you’ve done a dry run, plug in, charge for a few minutes until the phone doesn’t shut off when you disconnect the charger, and repeat the process.
Caveats:
When entering the values for the battery registers, pay particular attention that the entered values are the correct ones which are shown below. Failure to enter these values correctly could result in your battery being permanently bricked. You have been warned!
Pre-requisites:
• _thalamus kernel >= 2.6.35.14_r2 RC1, installed (check kernels section)
• A functioning brain (ask your parents about this)
• Patience
• Jon Richards’ “Nexus One Battery Calibrator” application a.k.a. NOBCAP (available on android market), installed
• An almost dead battery (that is mis-reporting its capacity) with what you think is about ~2% remaining – i.e. if your battery dies at 18%, get ready at about 20%
• AC battery charger at the ready
Process:
1. Set your screen time-out to 10 minutes.
2. Run NOBCAP
a. If General tab displays fields but no values, kernel is wrong, see pre-requisites
b. If General tab displays fields filled with values, kernel is right, enable airplane mode on the phone
3. In NOBCAP, menu --> settings -->
a. Check: GPS polling, ACR adjustment, advanced options
b. UNcheck: Airplane and Wake lock. Go back.
4. Go to LearnPrep tab
a. Set age: 100% --> save
b. For
i. OEM batteries ; Set mAh: 1452 --> save
ii. Aftermarket batteries ; Set mAh: 1650 --> save
c. Register: 0x66
Value: a4 --> save
d. Register: 0x65
Value: 06 --> save
e. Register: 0x10
Value: 04 --> save
5. Go to LearnMode tab
6. Scroll down and Set Detect Learn Mode to ON.
7. When Real-Time Voltage (µV) <= 3201000, i.e. when the battery is “empty”, the app will prompt you to quickly plug in your charger.
8. If you were successful here, the learn-flag LEARNF will now be lit and your battery charging.
9. LYPTFA - Leave your phone the .... alone.
10. When charging completes, the CHGTF flag will be lit, Battery Status Register 0x81 displayed, your battery calibrated.
11. Unplug. Reboot.
Supplementary:
The application monitors the battery chip registers. As charging nears completion the pulse current (mA) sent to the battery gradually diminishes in amplitude. This will tail off at about -20mA which the battery interprets as “charging complete” and the battery registers are stamped with its newly determined capacity values. Activating the screen, or any function which subsequently draws current pulls the charge current above -20mA and which the battery detects as charge complete – this is why you should LYPTFA. It’s okay to set an extended screen-timeout and occasionally touch the screen to reset the screen-off timer (i.e. keep the screen on) to keep an eye on charging without affecting charge current.
As an additional experiment, install JuicePlotter, run it once, and enable graphing. This will also monitor dis/charge cycles and give you an idea of the memory effect that the battery suffers from.
Click to expand...
Click to collapse
I did everything said there and now my battery dies at exactly 1%.
It also appears to last much longer than it used to.
All credits for what i qouted goes to paschadee
Good Luck!

I just tested it and my learn flag turn of after a couple minute? does it mean that it's not working? Also, in "message" it's telling me " -to re-calibrate your battery..."
Thank for answer.

Related

Kaiser Battery Status [kernel mod]

NOTE: I don't post kernels here anymore: look for my changes in the standard kernel now.
This thread is still useful for battery discussion, if you like.
I have gotten tired of seeing my battery go from 90% to 15%.
Why can't it go smoothly from 100% down to 5% or less, and back up again?
Why does nbheditor have to apply a 1.6 multiplier for battery capacity?
Can we get the temperature sensor working?
I'd like to get this fixed, and would welcome discussion.
First, in the new or old kernel, the battery status is managed by the file:
kernel/arch/arm/mach-msm/board-kaiser-battery.c.
I have several proposals:
a) Change the default KAISER_BATTERY_RATING to 1350, since the equations really do work out correctly, that the rating should match in mAh. Note: in the kernel, that's 2160 = 1350 * 1.6.
b) Add a thirty second maximum for voltage and current, before using them to guess the battery level. At first I used averaging, but maximum works better for old batteries.
c) When booting from HaRET, scale the battery level because Windows does it different. I don't understand how Windows does it, but I have figured out a scale factor that works.
d) When the ds2746 reports that it has lost power, assume that the battery may have been changed, and do a coarse recalibration based on voltage and charge current.
e) Eliminate the minimum of 15%: let the meter go all the way to zero.
f) Allow battery level to be set to any value at any time.
g) Report what the kernel thinks the capacity should really be.
h) Use ds2746 units directly since nbh-editor already scales mAh to units.
Also, questions:
1) How to convert the thermistor resistance (I think it is aux0r) to temperature?
2) Would be nice if the dynamically-adjusted capacity could be stored in flash. I don't know how to do that, but I know how to report it.
3) Should we have an option on the boot menu to manually set the battery level?
I have edited the new 2.6.34 kernel to act as I propose.
Since the modules must match the kernel version you are using, I have included modules separately.
Warning though that, although it seems to work properly for me, it might do bad things for you, especially to your phone's battery. In particular, the Polaris needs to be tested since I don't have one.
NBH file: for NAND install. Use nbheditor to edit, but put your battery's capacity under "advanced settings". For attempt #6, you can use the standard setting.
ZIMAGE: for HaRET install. Edit your default.txt to contain:
board-kaiser-battery.battery_capacity=2160 (your true battery capacity in mAh * 1.6)
board-kaiser-battery.haret_divisor=2200 (use a WinMo -> android scale factor of 1000/2200)
CAUTION: The 2.6.25 NBH images probably don't work. I'll have to learn how to make them!
NOTE: Attempt #7 and later are in the standard kernel, so are no longer posted here.
just setting this up on Incubus26Jc's Super FroYo 2.2 [Deodexed] [RLS15] [9/3/10]. I will let you know how it goes.
WOW, I´m glad somebody finally took this matter as serious as it is I´m not saying that others guy in here haven´t provided advice on this, it is just that nobody, afaIk hadn´t come with a "downloadable" solution, the only thing close to a real fix to me was to use the nbh editor and put the recommended capacity for my battery, it helped a lot to be honest cuz I used to get no more than 15 minutes of battery life, and after that I can use it for a few hours, unless I turn wifi and bluetooth of course, then it gets down to 15%, well I hope this really works cuz I´v been strugling with this for more than a month and I love android so much that I flashed on nand even though I knew about this problem, and I was about to give up on this, (was I?), thanks for this, I hope we get good results!!!
Isn't it that the latest kernel for froyo is 2.6.32? Is that your own build?
I wanna try your version. So far, how does all features? How is it compared to DZO's kernel?
More power!
Ok so I had lockups with Incubus26Jc's Super FroYo 2.2 [Deodexed] [RLS15] [9/3/10], I am loading up dzo's current Froyo and his 9-9-10 kernel for some base testing then I will install your kernel and updates and test again.
So, how do I install this? i mean, do I:
1- flash the new nbh.
2- install theandroidupdate.tar
done? I mean, do I have to do the whole "calibration dance" with it again or something? Or after i do this it will (in theory) perform as normal as it should? btw my battery is about a month old, so I guess if i put 2000 in advance mode, (not mah) it would be ok, right?
ps: I have donut installed, so I guess it might not work, but heck I´ve got to try this anyways, so I´ll go ahead and install it, in case it works, would you be able to tweak a donut kernel for us?. thanks in advance.
zack, how is it?
so far with dzo's latest froyo build and the attached kernel and update things have been very stable, however the battery is at 100% constantly. hopefully this will change as the battery is drained and recharged.
The kernel is dzo's with the experimental battery file.
Not ready for prime time. If your configured capacity is wrong, it gets calibrated as you run, but the calibration is not remembered when you reboot.
Sent from my Full Android on Vogue using XDA App
I'm looking for opinions on the individual questions in the first post. Especially, does anyone know how the kernel can store battery_capacity s it remains persistent after reboot?
If you search dmesg output for ds2746 you can see what the current capacity is.
Sent from my Full Android on Vogue using XDA App
I´ve installed it and after a while of letting both wifi and bluetooth on, it finally died and showed me 1% left and powered down all by itself, I had never seen 1% left on android, so that´s a good thing I guess, but after I connected the charger it started charging just fine, but in the console after typing dmesg it tells me that the battery has 4079mv and 54/3200 units, but I think that if the battery has 4079mv, it means it is fully charged, am I wrong? if anybody reads this please confirm this because I put it is still charging I don´t want my kaiser to blow up on me, lol. thanks.
ps: while charging it isn´t showing the amber led, but it has a red blinking led as when the battery is completely empty and not charger is connected (but in android the battery icon has the charging animation).
elander said:
I´ve installed it and after a while of letting both wifi and bluetooth on, it finally died and showed me 1% left and powered down all by itself, I had never seen 1% left on android, so that´s a good thing I guess, but after I connected the charger it started charging just fine, but in the console after typing dmesg it tells me that the battery has 4079mv and 54/3200 units, but I think that if the battery has 4079mv, it means it is fully charged, am I wrong? if anybody reads this please confirm this because I put it is still charging I don´t want my kaiser to blow up on me, lol. thanks.
ps: while charging it isn´t showing the amber led, but it has a red blinking led as when the battery is completely empty and not charger is connected (but in android the battery icon has the charging animation).
Click to expand...
Click to collapse
Do not worry. Nothing will happen to your phone. Electronic circuits inside the battery takes care of it. You have to repent attention to the current charge (mAh). When the value falls below 200mA, then the battery is full.
I've had two crashes (phone totally frozen, unresponsive) when on charger and full battery. Probably a coding error somewhere in this experimental file.
I'm also wondering which phone models use this source file?
Do some of them perhaps have different resistor values?
Do we have any historical information about why 10M Ohm was chosen as a resistor value, rather than 15 or some other value?
Millence said:
Do not worry. Nothing will happen to your phone. Electronic circuits inside the battery takes care of it. You have to repent attention to the current charge (mAh). When the value falls below 200mA, then the battery is full.
Click to expand...
Click to collapse
Thanks for replying, I know that the battery has some sort of sensor built in that tells the OS when it is full, but since we are dealing with calibration here (a.k.a I don't know when it is full or empty) I kinda freaked out a bit there, but thanks to your answer I feel (a little) relieve, the thing is that it's been plugged for more than two hours (I had to unplugged it cuz I had to return home from work) and dmesg still says something like: 4180 mv 145mah 50/100 (1604/3200 units) so when you told me about the current charge below 200mah you meant the number that appears on dmesg right after the (4180)mv? in this case it is 145mah, if so, does that means that the battery is already fully charged? cuz according to android it is only like 52% full. should I leave connected or should I unplug it (it is already unplugged just in case,lol). thanks.
It depends. It looks like your battery currently has 1002 mAh of charge, out of 2000 mAh. I doubt that you have a 2000 mAh battery. If you really have a 1350 mAh battery, you are more like 75% full.
I chose a lower limit than 200 mA for when the kernel thinks you are 100% full based on charge, since my phone charges at under 200 mA when connected to a computer, regardless of how full it is.
Please include what kind of phone you have. Otherwise I will assume you have a Kaiser.
n2rjt said:
It depends. It looks like your battery currently has 1002 mAh of charge, out of 2000 mAh. I doubt that you have a 2000 mAh battery. If you really have a 1350 mAh battery, you are more like 75% full.
I chose a lower limit than 200 mA for when the kernel thinks you are 100% full based on charge, since my phone charges at under 200 mA when connected to a computer, regardless of how full it is.
Please include what kind of phone you have. Otherwise I will assume you have a Kaiser.
Click to expand...
Click to collapse
I do have a Kaiser, and I do have a 1350mah battery, and as you said on the first post I edited the nbh to 2000 capacity using the nbh editor, so did I misunderstand first post and instead of 2000 capacity in advance mode I should have put 1350mah in simple mode, or should I have put 1350mah in advance mode in order to make android recognize the capacity of my battery? cuz as I see it now it seems it is the other way around now, cuz before android used to think that the battery was full when in fact it wasn't and now even when full android thinks it is not.
Put the battery rated capacity (1350) in the advanced setting, so it won't be multiplied by 1.6.
The conversion from dmesg units to mAh is: 625 x units / 1000 = mAh. Probably dmesg should show mAh so we don't have to calculate.
Sent from my Full Android on Vogue using XDA App
I am trying to use this kernel with cyanogen build, but it does not boot.
When I start haret it hangs. It moves the staus bar to the bottom of the screen and then freezes. (I can only reset via stylus os sim card cover)
The files I have in andboot are:
zImage-2.6.32-froyo-06-09-10_22 - the original zImage
initrd.lzma
zImage - the zimage with the battery fix
androidinstall.tgz - cyanogen install pack
androidupdate.tgz - update for the battery fix
startup.txt - modified for the battery test (zImage name and battery capacity)
haret-for-kernel-2-6-32.exe - haret
my startup.txt file is:
Code:
#alloctest 0x2000
set RAMSIZE 0x08000000
set RAMADDR 0x10000000
set FBDURINGBOOT 0
set MTYPE 1553
set KERNEL zImage
set initrd initrd.lzma
#
# The following kernel parameters are useful
# ppp.nostart - Set ppp.nostart=1 to disable starting the ppp connection on boot
# msm_sdcc.msmsdcc_fmax - The maximum frequency (in Hz) used by the SD controller
# pm.sleep_mode - The mode used when the phone is off
# 0=Power Collapse Suspend, 1=Power Collapse, 2=Apps Sleep,
# 3=Slow Clock and Wait for Interrupt 4=Wait for Interrupt
# Default is 1, use 1 for best power savings
# board-htckaiser.panel_type - Panel type used to power the panel off and on
# 0=Don't power off the panel (Default)
# 1=Sony 2=Topoly 3=Topoly (probably just the same as 2)
# lcd.density - Defaults to 160, 128 shows more on screen
#
set cmdline "ppp.nostart=0 pm.sleep_mode=1 mddi.width=240 mddi.height=320 no_console_suspend board-kaiser-keypad.atttilt=2 board-htckaiser.panel_type=1 hw3d.version=1 board-kaiser-battery.battery_capacity=1350 board_htckaiser.pmem_size=4 board_htckaiser.pmem_adsp_size=1 clock-7x00.a11=500"
boot
do I need to use another haret or initrd?
yesterday I left the phone connected to the charger all night and when I woke up (about 5hours and 30 minutes later) it had the green light turned on so it means that it got charged full, and dmesg gave something like this: 4180mv 28mAh and 100/100 (2076/2076 units) I gotta tell you, I had never seen such "low" values on units, its kinda strange, anyways I unpluggued it and went to work, so here I am, I´ll report back in a few hours after I stress this thing a bit to see if it really got all the "juice" the battery can take.
ps: I haven´t tried putting the 1350 (MAh) in advance setting, because since it says that it is charged (I know it may still be wrong) I decided to give it a go to see how it works with the current settings, after finishing testing this, I´ll try with 1350.
I don't know the HARET problem, sorry. Everything you are doing looks right to me. Perhaps you need to wait until this experiment is mature enough to be in a dzo kernel. Sorry!
Sent from my Full Android on Vogue using XDA App

Long charging, short battery life

Hello.
I have bought a used desire a couple of months ago, and one thing has been really bothering me.
I need to charge the device for like 12 hours via AC, to get it to 100% (yes, I have tried several chargers), and after that, the battery life is like ~12 hours if I use it only a little. I have also bought a spare HTC genuine battery, nothing changed. The warranty is not valid in my country, so that's not an option. Anyone have any suggestions?
I also have ordered a battery charger from ebay (that would charge a battery without the phone), I'll post when I receive it.
How long does it take the charger to get to 90%
Sent from my Desire using XDA App
It's about 10%/hour, and there is no difference what the percentage is.
Check battery health:
Type *#*'4636#*#* in dialer, > Battery information.
A full charge here takes ~ 3 hours. Till 90% nearly 2 hours, the rest 10% "need" the last hour.
Are you using a custom rom as some of these may drain battery FAST!
I'd check the running apps
reset phone to factory
if you are using clockworkmod recovery, then try clearing battery stats
---------- Post added at 01:09 PM ---------- Previous post was at 01:01 PM ----------
oh, also try getting one of those $15 brand new batteries from eBay.
I got one, and it's been working like a charm for 3 months now
charges in less than 2.5 hours, and lasts for 1.5 days (average calls, SMS, music player...)
stormleader said:
then try clearing battery stats
Click to expand...
Click to collapse
Some enlightenment for you.
What settings do you have for data connection? Wifi, sync etc
These can effect not only battery life but charge time also..
I use a custom ROM with juice defender ultimate..knocks the data off when the screen is off,, but with a sync'd check every 30 mins
Sent from my HTC Desire using XDA
erklat said:
Some enlightenment for you.
Click to expand...
Click to collapse
lol thanks
You should do this procedure every time you replace the battery (tested working on HTC Desire GSM):
Advanced Battery Calibration (tested and verified on Oxygen + bravoGSM)
Intro:
This will actually calibrate your battery, unlike other methods out there. After calibration, empty will be at 0% not some arbitrary value like 18%. For added comfort, you can perform steps 1-5 until you are comfortable with the routine; on the first run stop at step 5, don’t plug in and watch where your battery dies to give you an idea of the time window available – then on the next run you will know when to plug in. This ensures a smooth and error-free routine. You don’t actually need to do this since the app will tell you when to plug in. Once you’ve done a dry run, plug in, charge for a few minutes until the phone doesn’t shut off when you disconnect the charger, and repeat the process.
Caveats:
When entering the values for the battery registers, pay particular attention that the entered values are the correct ones which are shown below. Failure to enter these values correctly could result in your battery being permanently bricked. You have been warned!
Pre-requisites:
• _thalamus kernel >= 2.6.35.14_r2 RC1 or CyanogenMod kernel.
• A functioning brain (ask your parents about this)
• Patience
• Jon Richards’ “Nexus One Battery Calibrator” application a.k.a. NOBCAP (available on android market), installed
• An almost dead battery (that is mis-reporting its capacity) with what you think is about ~2% remaining – i.e. if your battery dies at 18%, get ready at about 20%
• AC battery charger at the ready
Process:
1. Set your screen time-out to 10 minutes.
2. Run NOBCAP
a. If General tab displays fields but no values, kernel is wrong, see pre-requisites
b. If General tab displays fields filled with values, kernel is right, enable airplane mode on the phone
3. In NOBCAP, menu --> settings -->
a. Check: GPS polling, ACR adjustment, advanced options
b. UNcheck: Airplane and Wake lock. Go back.
4. Go to LearnPrep tab
a. Set age: 100% --> save
b. For
i. OEM batteries ; Set mAh: 1452 --> save
ii. Aftermarket batteries ; Set mAh: 1650 --> save
c. Register: 0x66
Value: a4 --> save
d. Register: 0x65
Value: 06 --> save
e. Register: 0x10
Value: 04 --> save
5. Go to LearnMode tab
6. Scroll down and Set Detect Learn Mode to ON.
7. When Real-Time Voltage (µV) <= 3201000, i.e. when the battery is “empty”, the app will prompt you to quickly plug in your charger.
8. If you were successful here, the learn-flag LEARNF will now be lit and your battery charging.
9. LYPTFA - Leave your phone the .... alone.
10. When charging completes, the CHGTF flag will be lit, Battery Status Register 0x81 displayed, your battery calibrated.
11. Unplug. Reboot.
Supplementary:
The application monitors the battery chip registers. As charging nears completion the pulse current (mA) sent to the battery gradually diminishes in amplitude. This will tail off at about -20mA which the battery interprets as “charging complete” and the battery registers are stamped with its newly determined capacity values. Activating the screen, or any function which subsequently draws current pulls the charge current above -20mA and which the battery detects as charge complete – this is why you should LYPTFA. It’s okay to set an extended screen-timeout and occasionally touch the screen to reset the screen-off timer (i.e. keep the screen on) to keep an eye on charging without affecting charge current.
As an additional experiment, install JuicePlotter, run it once, and enable graphing. This will also monitor dis/charge cycles and give you an idea of the memory effect that the battery suffers from.
I'm trying the guide above me, thanks.
In the Nexus One Battery Calibrator app you can see charging current in miliamps, could you please tell me what is the value for you guys while charging?

Things I did to improve battery

Disclaimer: Although there is very minimal risk but I am not responsible for anything happening to your device, do it at your own responsibility.
Sorry for my bad English.
Hi guys! I am using this device since a week but its battery life was pathetic even on stock rom and Engineer Version. I decided to switch to cm as it has the best battery life for all devices and I flashed OptiBean RC2 by mac20dnangel and found out the same pathetic battery life. I mostly use 2G and wifi, a few calls and texts and battery was going flat after 5-6 hrs. I checked in Settings>Battery and found out that the most battery eater was Android OS which was about 70%. So, I searched the forums and found many helpful threads (thanks to all those devs) and did following things. Now, my phone's battery can last a whole day easily and Android OS under settings>battery has come down to 7%.
First of all I turned off Location Services as the GPS service was involved in a CPU WakeLock even GPS was turned off in Settings>Location Access.
Also, the following system apps were real battery hog. So I turned them off. For doing this, go to settings>apps and click ALL tab. Tap on the app and tap disable. I disabled following apps:
1. Android Keyboard (if you use some other keyboard. i am using smart keyboard pro)
2. Apolo or Music app (if you don't use it as i am using jet audio plus)
3. DSP Manager (which was always running in the background and was a major battery hog. Many people like it but we have to live without it)
4. CM Updater
5. Exchange Services (if you don't use them)
6. Face Unlock (if you don't use your face to unlock screen)
7. Google Search (i don't use it)
8. Google Text to Speech Engine (also was a major battery hog)
9. Pico TTS (same as above)
10. Messaging (i use go sms)
11. Picasa Uploader (if u don't use it)
12. Search Applications Provider
13. Google Talk (i don't use it. don't disable if you use it)
14. Talk Back ( was a major battery hog)
15. Voice Dialer (if you don't use)
Also, always turn off wifi, bluetooth, gps, autosync, 3G/4G, auto rotate when not in use. Live wallpapers are also major battery eaters.
After that I installed Auto Killer Memory Optimizer which is free on Play Store. Open this app and tap on the wrench icon present in upper right corner. Tap advance system tweaks.Check Apply on boot and 2 min delay before applying. Check Memory Management, Battery, Sleeper, UI and Network. Now go back and check Apply Settings on Boot, Enable Advance Mode, Enable Kill on Click. Now hit back key to return to app's main screen. Tap on change and select strict or aggressive as you like. Close app and reboot.
After that I calibrated my battery. To calibrate, charge your phone to 100%. When battery indicator reached 100%, unplug and plug again after 10 sec to be sure that its 100%. Now pull and re-insert battery. Then connect your charger to be sure that it is 100% charged. Now unplug and reboot to recovery. In advance select wipe battery stats. Then reboot device. Now you can use your device but don't plug the charger or data cable and let the battery die as you normally use the device. When battery reaches 0% and device turns itself off, power on again to make sure that battery is actually dead. Now, plug in your charger and charge the battery to 100% in one shot. Once more, let it die by itself without charging the device. After battery is fully dead charge it again to 100% in one shot. After these steps battery should be calibrated perfectly.
One more thing, go to settings>developer option, uncheck Force GPU Rendering and check Kill app back button. Now you'll able to kill any application in the foreground by long pressing back softkey. Use this to kill games and other battery hogging apps when you want them to exit.
I hope after doing all these steps you'll find an improvement in battery and I believe these tips can be used in any ROM and any device.
Edit: Don't hope for battery lasting to 2 or 3 days as the massive screen used by this device consumes a lot of battery and 1830 mAh battery is just not enough for this device. Try to buy an extended battery if you want more juice.
umm, disabling auto-run on boot with something like Gemini App Manager and lowering voltages with something like SetCPU or NS Tuner probably can help too.

Wrong state of charge calculation by android

I've i9195 with stock battery and rom, all was normal. Then I replaced it with double sized battery+new back cover. Not a microUSB batterycase. After many cycles and weeks of use it still didn't calibrated to new capacity. Fully charged battery lasts about a day and phone shuts down. If I switch it back ON after couple of minutes - I see 50% charged and can use phone another day.After second 'full discharge' I'll have about 15% more. All techniques for 'calibrating' battery with deleting batterystats doesn't work. Charge, off, remove bat, wait, place it back - either. /sys/class/power_supply/battery/uevent have string POWER_SUPPLY_ENERGY_FULL=1940000000 and it is always the same. So phone simply downcount from this level and tells that charge is 0% while voltage is about 3.7v. Interesting that "energy_full" file has number of 3880000000 but it seems that it's not used in calculations.
After all I installed CWM, root, cyanogenmod 11 and used it for about a week. SAME problems, except that "energy_full" is 1940000000.
I want to solve this very much, I can program or recompile kernel, if needed. It's pm8921 charger ic there. Maybe this number was programmed in it in factory mode or smth. Maybe threis a way to correct it. Thanks in advance.
Same here with stock-rom, CyanogenMod and MoKee's rom.
I think the only way will be to recompile the used kernel with the correct value of 3880000000 instead of 1940000000 in file "drivers/power/pm8921-bms.c" in kernel sources (function "calculate_fcc_uah", part "scalefactor". Scalefactor has to be change into scalefactor *= 2.
Huge work for a little problem...
Instead of making any advanced config, have you tried this little app (needs root privileges)?
https://play.google.com/store/apps/details?id=com.nema.batterycalibration
After migrating to CM11 my battery was draining very fast. I used this app and it apparently fixed a part of the issue (battery still drains fast, but not as fast as before).

Limit battery charging (root is required)

Since Lenovo P2 has an incredible battery life you rarely have to make full charges. I've been searching a long time for a method to set a charging limit, for instance at 80%, to preserve the battery health. It is possible to use the BCL app, Tasker as well as the Magisk Charging Switch module.
The path of the battery files responsible for the charging is /sys/class/power_supply/battery where you'll find two interesting files, battery_charging_enabled and charging_enabled.
There's only one problem; as soon as the screen turns off any limit set by you will be ignored. Now, there has to be a way to force the charging to stop while the phone is in idle state. Any ideas? I've already tried the obvious solution to whitelist BCL, Tasker respectively Magisk in the battery optimization settings, but it didn't work.
RR-O-v6.2.1-20190130-kuntao-Unofficial + battery charge limiter
RR-O-v6.2.1-20190130-kuntao-Unofficial + magisk + Battery Charge Limit works for me
I guess your limiters go to sleep when the screen goes off. Try to force that the screen stays on. Try to exclude them in the battery saving options. If you try the app Battery Charge Limit than it is working for me with a normal charger but not while chargeing through a PC.

Categories

Resources