Related
So this is a development idea...
I thought about this the other day and realized that under volting could be causing my battery to die quickly...
Here's why.
V = I * R
Where v = volts, I = amps, R = ohms.
P = V * I
Where P = (power)watts
I know some of you are going to think that this doesn't belong in development, but here me out here.
So if the processor uses 1.5 Watts and we decrease the voltage, this means that the processor needs to increase current to maintain that power. This equates to reduced battery life.
I'm just suggesting that undervolting may be causing the low battery life. If you know better feel free to tell me I'm wrong, but please explain the mechanics of what is going on not just your theory.
This question is over my head so I'll refrain from speculating directly on your theory. But real-world results with my undervolted Stupidfast 1.54 kernel gives me much better battery life than stock. Yes, this may be due also to the unbloated-ness as well so I'm not 100% certain the undervolting is the main help here
Well....I dunno how this applies to CPUs but.... I used to be a car audio installer/buff and when we noticed voltage sagging to an amplifier, the amplifier would compensate by pulling more amperage at the lower voltage. It never seemed to make much different to the batteries, but it did make the amps run much hotter...so....
Again, not sure if it would tie in, but....
Hmm I've never thought about that. From my RC knowledge the most efficient set ups are the ones that use high voltage but low amps.
I may have to try a OV kernel and see if I notice a difference...
Sent from my Samsung Fascinate running BH3.0, DL09, 125mv undervolt Voodoo5 using SwiftKey and Tapatalk
As a disclaimer, I have not performed any formal reading on this topic, these are just my idle ramblings.
My contention has been that you only enjoy the benefits of a UV kernel if you are a certain type of user.
If you are performing CPU intensive tasks, you reap the most benefit from the UV kernel because it needs less power to run at 1 GHz (or whatever the maximum clock speed is set to for that kernel).
If you spend alot of time idling, for instance reading interspersed by web requests, you are spending most of your time at the minimum clock speed. With the stock kernel, that is set to 0.1 GHz. With a UV kernel, the minimum clock needs to be set to something higher to keep the CPU running. You may be able to estimate what this speed needs to be based on the fundamental power calculations in the OP.
The governor quickly changes your clock speed based on your current usage & requirements. To make optimal use of the CPU governor, it should have access to the broadest possible range of speeds (without going higher than is useful/safe). Unfortunately, undervolting a kernel sacrifices some of the lower end of that range. Therefore, many users see much improved battery life, while others (like me) experience noticeably diminished overall performance from UV kernels.
Swyped w/ XDA App. When in doubt, mumble.
P=V*I
The processor does not draw a constant power, but it does have a minimum. The point of undervolting is bringing the power consumption to that minimum within the phones physical environment and user expectations of functionality.
So...
You are right.
However, processor frequency is dependant on current. Thus if you are undervolting to save battery life then you will need to keep your frequency the same or lower to notice a difference. If you are overclocking (increasing current) and undervolting then your P stays the same so the user ends up feeling the battery life to be the same or worse.
Facundo
Are there any standard or over volt kernels available so we can test this theory? It seems as though all the kernels available are UV.
Sent from my SCH-I500 using XDA App
would you like a standard voltage kernel to test?
Personally I see worse battery life on UV kernel. My usage mostly equals to dumb phone, with email sync and moderate web browsing.
I would change formula to I = V/R, which will read as current is directly proportional to voltage and inversely proportional to resistance. That makes obvious that reducing voltage we decrease current. However one point to note here is that this law is for PASSIVE conductor, which is obviously not our case. I would not speculate further, because we do not know what king of power conversion happens. It might simply turn out that conversion is not efficient at lower voltages. Google desktop power block certifications/efficiency to see whet I mean.
I compiled some kernels so you folks can play with it. I SERIOUSLY doubt you will get better life with my stock voltage vs. undervolt, but give her a shot.
Undervolted
Voodoo
http://adrynalyne.us/files/kernels/adryn_test2_0116_fascinate_voodoo5.zip
Nonvoodoo
http://adrynalyne.us/files/kernels/adryn_test2_0116_fascinate_novoodooo.zip
Standard voltage
Voodoo
http://adrynalyne.us/files/kernels/adryn_sv_0116_fascinate_voodoo5.zip
Nonvoodoo
http://adrynalyne.us/files/kernels/adryn_sv_0116_fascinate_novoodoo.zip
I'm giving the SV Voodoo kernel a try right now.
Sent from my Samsung Fascinate running BH3.0, DL09, and Voodoo5 using SwiftKey and Tapatalk
I thought about this as I thought about power lines. They use super high voltages to reduce the amount of power loss through the lines.
Anyways, sounds good, I'll test it out. I'd have to get a baseline. I guess I'll charge my phone right now and test out the regular voltage.
I'll let you guys know tomorrow the differences tomorrow.
In all honesty, I don't ever feel that I get more juice out of unvervolt kernels and I've been using all kinds of kernels since the release of MT3G.
Thanks for the standard voltage kernel!
I do appreciate you efforts in continually optimizing these, having a baseline to compare to just makes it all the more wonderful.
I will give the SV (standard voltage) a day or so of testing and then compare the UV against to make the test fair. With ten minutes of use ^^, it is already a great contender for my daily driver. I had gone back to 11/29 from 12/30. 11/29 was a terrible pairing with DL09; my GPS was unusable.
$ busybox md5sum ad*.zip
aea1047f3b2d33e759064d47cc8cac27 adryn_sv_0116_fascinate_novoodoo.zip
Works great!
Swyped w/ XDA App. When in doubt, mumble.
I wonder if android has battery test application, just to be put everything in the same play field? It's kind of pointless to compare subjectively.
Well, I tried to be objective with this test I just did.
Here were my conditions:
Charge to full, write down the time it was at full charge which wasn't 100%.
Let it sit for one hour.
Write down the charge.
SV Conditions
Starting charge 99%
Ending charge 97%
UV Conditions
Starting charge 98%
Ending charge 96%
The results...
SV - 3% discharge / hour
UV - 2% discharge / hour
Errors analysis:
There are several issues with this test because they were not even at the same charge at the start. Batteries have their maximum charge at 100%, and the rate of decrease is not a linear decrease. More testing is needed to compare the results.
Also the duration is not long and other factors have not been considered such as background applications refreshing on their own. I will have to test for 8-10 hours of each at idling tomorrow to get an accurate measurement.
Currently, I'm still on the UV kernel and I'll publish my results tomorrow of the UV over the 10 hour period.
Then I'll try to not use my phone throughout the day and test the SV.
It would be nice if someone could test the SV and UV with moderate usage and write down the initial charge, final charge, and the duration between the measurements. And another using heavy usage.
Thanks.
RacerXFD said:
SV Conditions
Starting charge 99%
Ending charge 97%
UV Conditions
Starting charge 98%
Ending charge 96%
The results...
SV - 3% discharge / hour
UV - 2% discharge / hour
Click to expand...
Click to collapse
Im confused with your math here...
Yeah, your math is off.....
Sent from my SCH-I500 using XDA App
RacerXFD said:
So this is a development idea...
I thought about this the other day and realized that under volting could be causing my battery to die quickly...
Here's why.
V = I * R
Where v = volts, I = amps, R = ohms.
P = V * I
Where P = (power)watts
I know some of you are going to think that this doesn't belong in development, but here me out here.
So if the processor uses 1.5 Watts and we decrease the voltage, this means that the processor needs to increase current to maintain that power. This equates to reduced battery life.
I'm just suggesting that undervolting may be causing the low battery life. If you know better feel free to tell me I'm wrong, but please explain the mechanics of what is going on not just your theory.
Click to expand...
Click to collapse
I'm an electrical engineer, and none of this makes any sense. V=IR is for current and voltage going through/across a constant resistor. Transistors are not constant resistors. The current through a Metal Oxide Semiconductor Field Effect Transistor (MOSFET), the type of transistor that is in basically all ICs, is always in positive relation to the voltage, at least for the purposes of this basic explanation. Decreasing the supply voltage, which is you can consider to be the VGS of a transistor for a simple analysis, is always going to decrease the current as well. Thus, depending on the range of operation of the MOSFET, decreasing the voltage will also decrease the current and thus power will decrease more than linearly. Less current means that the transistors will charge and discharge capacitances slower, and that's why you need voltages for higher clock speeds and overclocking IN GENERAL. Device physics is really weird.
Now, someone else was saying that maybe because you undervolt it less current goes through which means it needs to spend more time in a higher clock state. This is completely false, the current going through it has nothing to do directly with the amount of work done. Yes, you need more current for faster clock speeds, but at a given clock speed, it doesn't matter how much voltage or current there is and how fast the individual parts of the circuit work, as long as the longest delay in any part of the circuit is less than the clock rate. If it's longer than the clock period, then your circuit is no longer going to function and you'll have instability and crashes, but there is a bit of wiggle room designed into these circuits because each chip can be different. That's why you can overclock or undervolt a CPU, because obviously if it was designed to run at the fastest clock speed possible, any little variation in supply voltage, temperature, manufacturing process/lithography (which is very common) would cause your CPU to completely not function. You have to design your circuits to be tolerant of some amount of error from many sources (even cosmic radiation in some cases), otherwise it won't just be slow, it won't function at all. Logic circuits are clocked to synchronize data going through the circuit, and if the timing constraints aren't always obeyed you'll get wrong answers which would probably crash your OS. Undervolting will never cause the CPU to do less work in one clock cycle, unless you undervolt it too much, in which case things will likely blow up in your face.
Sorry for the wall of text, but hopefully this will clear up some stuff. And in the future, please stick to what you're good at and don't try to speculate things based on one formula that you heard sometime in physics while you were half asleep, or something some CSR told you to get you to shut up. Believe it or not, the people who are designing CPUs and writing/modifying kernels and operating systems actually know what they're doing and you're not going to suddenly realize that they're going about their business wrong because of something you learned in high school.
Edit: One other thing. The calculation of percentages of battery life is a bit of guesswork on the side of your phone, trying to determine via statistics what a voltage level means in terms of percentage of battery life. Battery voltages don't drop linearly as you use them, and can be affected by many things, such as whether it's plugged in to the charger in particular. That's why you see a drop immediately when you unplug your phone, and why looking at 2-3% differences is completely meaningless. The better way to test would be to actually see how long you can use it with an equal amount of work being done on each voltage, which is hard to do in real life. Too many variables are present in today's smartphones, what with background tasks and data coming and going and the like. And wireless radios are a huge battery drain, especially when you're receiving a weak signal. I would advise people to just carry a charger or usb cable with them and top up your battery when you need to rather than worry so much about small differences in battery life. You'll save on a lot of stressing .
Thanks for the explanation. I'm an aerospace engineer. I did have to take a few courses in EE, but nothing to your level. So please let me know if I'm completely off on my testing.
I am pretty sure that the Devs know what they're doing, but I was getting tired of my low battery life and I was willing to test this theory of mine out for them. Again, seriously if I am completely out of the park in terms of this testing, let me know. And I'm ok with being called stupid as long as you teach me what I did wrong...
Yea, I completely forgot how with transistors, the math regarding voltage is handled differently than through a resistor. Are you telling me that the battery life will not be different between standard voltages and under voltages?
EDIT: I understand what you're saying about lowering voltage lowers current because the current has a linear relationship with the voltage in a MOSFET chip. Thanks, I had to read that like 5 times to understand and remind myself.
This is a complete waste of my time at this point because I know what's going on, but I wish to share my results anyways...
Ok here's where I got with the testing since last night. I realize that battery life is nonlinear. But i figure this is better than nothing.
But I did complete 8 hour test of SV at idle.
Starting charge percentage 94%
Ending charge percentage 82%
Which results in 1.5%/hour discharge rate at idle.
Will do the undervolt today. I'll document that in roughly 8 hours.
I use SetCPU to help battery life but someone told me it's not needed on the SGS2 as it already scales CPU for demand. True?
leedavis said:
I use SetCPU to help battery life but someone told me it's not needed on the SGS2 as it already scales CPU for demand. True?
Click to expand...
Click to collapse
Interesting point you raise actually.
I've just installed Setcpu and used the on demand governor. I left the values as default (200mhz for minimum and 1.2 ghz for maximum) - with no overclock.
I've immediately noticed swiping through the screens is a bit smoother and the biggest improvement is the gallery. All my photos appear much smoother. Before the gallery app was a bit lagy.
I haven't set any profiles yet such as screen off.
Every Android phone I've owned scaled the cpu, I think they all do. I've found that with setCPU my battery gets drained much faster en no real benefit in smoothness.
jzuijlek said:
Every Android phone I've owned scaled the cpu, I think they all do. I've found that with setCPU my battery gets drained much faster en no real benefit in smoothness.
Click to expand...
Click to collapse
Have you tried this yet though on the Galaxy S2?
There is definitely less lag than before - as stated, specifically in the gallery app. Just generally swiping feels more responsive as well. Battery is still pretty awesome, especially when using Lightening Rom 1.1 and the Android battery calibration app.
Hmm. I'll try SetCPU on the SGS2 and post back the findings (Performance+Battery).
I don't know how can it get any more smoother, I mean its already SO smooth!
there are many points to use setcpu on gs2:
-for some reason I dunno, gs2 can't manage it's 1.2ghz without gettin too warm. downclock and get rid of the burn effect.
-gs2 sports a good management of gpu (it does most of the work and setcpu doesnt down\overclock that). downclockin doesnt affect UI or video o browsing experience at all. can even downclock at 500 max speed without any sides.
-the only side u ll see it's benchmark (quadrant downgrading to 2000) but I hope u won't pay attention to such an unseful thing. benchmark doenst mean nothing, daily usage it's the only point to look at.
my settings: conservative, 200min 800max.
battery draining doesnt belong to setcpu this time, look to other settings.
alexleon said:
there are many points to use setcpu on gs2:
-for some reason I dunno, gs2 can't manage it's 1.2ghz without gettin too warm. downclock and get rid of the burn effect.
-gs2 sports a good management of gpu (it does most of the work and setcpu doesnt down\overclock that). downclockin doesnt affect UI or video o browsing experience at all. can even downclock at 500 max speed without any sides.
-the only side u ll see it's benchmark (quadrant downgrading to 2000) but I hope u won't pay attention to such an unseful thing. benchmark doenst mean nothing, daily usage it's the only point to look at.
my settings: conservative, 200min 800max.
battery draining doesnt belong to setcpu this time, look to other settings.
Click to expand...
Click to collapse
IT IS TRUE. I agree with every single line you wrote, it is just my expericence.
I have too setcpu conservative and undercloked 800 Mhz.
There no slow down or lag at all... But I am wondering if it gives a real boost to battery life. I am not sure of this.
I'll keep you guys posted... But I think that an undevolted Kernel it is really a need as for the solution of the damn dual core ginger bug that is sucking 20% of my battery every day
Well,from my experience with my Desire and Desire HD(won't even bother with the Hero,I had no real knowledge then),governors can make a huge difference.I for one like smartass or interactive governors(mostly the same).I wouldn't suggest conservative,interactive does the job much better.Tasks get done in less time and the CPU throttles down more quickly.Other than that,you can underclock or overclock all you like,it never made any big difference in battery life for me(Unless Sammy's CPUs are different in that aspect-Snapdragons are really "overclock-friendly").That's personal preference after all!
Anyway,the best solution IMO would be a vdd_levels interface.For those who don't know what it is,it is a mod made by -snq(Meet him at the Desire forums-That guy's a true LEGEND!He can patch/modify anything!),which practically allows you to change the voltage levels of the CPU on the fly rather than having to stick with the values hardcoded into the kernel.Using this and a simple script in GScript to change values that won't survive reboot or in init.d to be applied on boot,you can find the optimal voltages for your CPU(Don't forget,every CPU is unique and different),thus reducing heat and maximizing battery life.
If a dev brings that to the SGS2 it will be a big step in the right direction as far as I'm concerned.
I use SetCPU without issue, but only to run profiles (i limit the device to 500mhz when the screen is off). The rest of the time it scales itself up to 1.4GHz without fuss and using stock voltage. Battery life is fine, best ive had for an android device.
Wow, I've taken SetCPU off but left JuiceDefender on and my battery life is fantastic. At 70% after slightly heavier than normal use (used for listening to music for a couple of hours this morning) and been off charge for 8.5 hours.
SetCPU seems counterproductive on SGS2
leedavis said:
I use SetCPU to help battery life but someone told me it's not needed on the SGS2 as it already scales CPU for demand. True?
Click to expand...
Click to collapse
I did set ondemand which is a little more reactive and slightly smoother.
Though System Tuner is less cpu-consuming and much more useful on the SGS2. No need for all those complicated settings from setCPU. Only changing governor and changing frequencies on standby are useful.
leedavis said:
Wow, I've taken SetCPU off but left JuiceDefender on and my battery life is fantastic. At 70% after slightly heavier than normal use (used for listening to music for a couple of hours this morning) and been off charge for 8.5 hours.
SetCPU seems counterproductive on SGS2
Click to expand...
Click to collapse
Juice Defender uses as much battery as it saves this is fact, i have SepCPU set to 200 Min - 800 Max - On demand and have Juice Defender Ultimate and i thought it was great but it was recommended to me that i could save more battery by not using this, initially i was skeptical but tried it and i was astonished at the results, my battery life improved by 9 hours (i carried out a test with JD and without)
Anyone who says SetCPU uses up loads of battery is talking nonsense,it actually saves battery if configured correctly.
I am using Check Rom with set CPU I have it 1.2ghz max and 200. Using conservative governer. I been off charge for 15hrs, however I am using light usage I am on 72% screen on has been 5h 25m at time of writing. Not yet calibrated the battery.
jonny68 said:
Juice Defender uses as much battery as it saves this is fact, i have SepCPU set to 200 Min - 800 Max - On demand and have Juice Defender Ultimate and i thought it was great but it was recommended to me that i could save more battery by not using this, initially i was skeptical but tried it and i was astonished at the results, my battery life improved by 9 hours (i carried out a test with JD and without)
Anyone who says SetCPU uses up loads of battery is talking nonsense,it actually saves battery if configured correctly.
Click to expand...
Click to collapse
What are the settings are you using for the setcpu program in your S2?? Did you remove the Juice defender application?
As far as I've seen, Everybody in this forum says that clocks 480 or below have the same voltage, so setting min clock as 480 is enough and no difference in terms of battery consuming even if you set it to 245.
I know it is right about voltage(I searched about that myself), but does same voltage means same energy consumption?
you guys must already know that higher clock makes more heat, so where does the heat come from? it's from your battery!
(from what I learned from school E=V^2*t/R where E is energy, V is voltage, t is time and R is resistance so there's another fact for electric energy other than voltage and time)
So I think you should set the min freq to 245 unless you feel uncomfortable for its low responsiveness.
is there anything wrong in my theory?
For this you can't depend on equations etc, it has to be tested each by everyone of us to feel which one is better for us and which is more battery saving. Personally I felt 245mhz drains a bit less than 480mhz however it is less responsive. I remember i saw in forums about this(althought another device) and it was one heck of a debate, but the conclusion was each and every person has to test for themselves.
And the wakes ofcourse, the amount the kernel wakes per second.
Deep sleep **** counts also...
If you have wakelocks, set as low as you can, if you don't, use 480
Sent from my LG-P500
You're right about energy consumption,i've been with extreme-cpu overclocking(on pc) for quite some time and a higher clock on same voltage will indeed consume more+more heat. But here like you've seen ^ it's related to wakelocks and if there are any apps running, if deep sleep is ok and stuff so there are many factors.
Best is to try and see wich fits you best regarding performance/battery/stability also it depends on the guvernor if you have a snappy one it will push your cpu to max even if you surf between screens
This is one of the biggest "not solved point" about O.1 configuration....
To adress this and other "open point" i developed an app for logging resources consumption
more info here:http://forum.xda-developers.com/showthread.php?t=1505950
Did a test with a cpu benchmark (simple thing to test how fast it does some things)
Did those in powersave governor:
122MHz
>10000ms (took a minute to do the test)
480MHz
~1900ms
Also did in 245, and I got 4392ms, and this is very good
Sent from my LG-P500
Hi there,
I have searched the forum for a suitable answer but couldn't really find one.
after experimenting with different kernels and underclocking I have always wondered what the pro's and con's are for using 100 Mhz as lowest frequency.
thanks
using cm9 latest + neak 2.0.2
eC1990ho said:
Hi there,
I have searched the forum for a suitable answer but couldn't really find one.
after experimenting with different kernels and underclocking I have always wondered what the pro's and con's are for using 100 Mhz as lowest frequency.
thanks
using cm9 latest + neak 2.0.2
Click to expand...
Click to collapse
Really 100mhz is useless, it uses the same voltages as 200mhz (so uses same amount of power as 200mhz) and you get a lot less performance. Also, from what it have seen I can be unstable for quite a few people. I really can't see any pros to 100mhz. I would recommend you don't use it. So you are using the same amount of energy for less performance and less stability. Hope this helps you
will give you 10 to 30 mins of additional battery life if you configure it properly.
Try siyah kernel and follow the guides in general section
I have a question related to this topic. I know that overclocking can reduce CPU life, but what effect does underclocking? Same CPU life? Maybe it increases the battery life but reduces the CPU life due to CPU not working in the native way?
Haven't found an answer for this yet. It would be useful to know about it since replacing a battery is way more easier and cheaper than anything you could do if CPU dies.
Edit: I'm refering to general underclocking (max and min frequencies, not only the min frequency).
GNRS said:
I have a question related to this topic. I know that overclocking can reduce CPU life, but what effect does underclocking? Same CPU life? Maybe it increases the battery life but reduces the CPU life due to CPU not working in the native way?
Haven't found an answer for this yet. It would be useful to know about it since replacing a battery is way more easier and cheaper than anything you could do if CPU dies.
Edit: I'm refering to general underclocking (max and min frequencies, not only the min frequency).
Click to expand...
Click to collapse
underclocking wont affect the life of your cpu. the least underclock value will only be used when your mobile is almost idle or doing low intensity tasks, it will switch to higher frequency as needed by the task.
Well guys I have this question.
With DooKErnel I managed to undervolt up to -100, this means that from 192mhz to 702mhz the processor uses 800000mv. Does this means that the processor uses the same energy (so drains the same battery) when working at 192 and when working at 702?
Or im missing something?
Thanks in advance
a complicated and controversial subject discussed at length in this thread
That thread gets pretty messy and confusing, but post #47 has it about right.
power consumption is proportional to clockspeed and to the square of voltage.
So for the same voltage 702MHz will use 3.65x the power of 192MHz.
I think you mean micro volts (uV) rather than milivolts (mV) as your a factor of 1000 out on what it should be (you say 800v)
Thanks guys
Sent from my LT26i using Tapatalk 2