To start off, I'm running Android Revolution 5.1.4 with the included "Buzz" kernel and recommended radio. I've looked all over xda, and I've yet to find any decisive, hard evidence that setCPU screenoff and "battery saver" profiles do anything to save battery life. Theoretically, I don't see any reason to think that cranking the cycle rate all the way down will save battery, as this just forces the processor to work harder for longer. Nonetheless, I imagined that some reduction in the form of a screen off profile would be beneficial, and I've been looking for the "sweet spot" for a few days now. However, so far, my anecdotal experience tracking currentwidget logs with screen off and wifi on (using Apache's smartass scaling) has been that, while the "lows" are lower when I set profiles to drop the cycle rate with moderate severity, there is greater variability in current draw, with many more "high extremes" (e.g. in the 100-250 range - even on "powersaver" scaling). When I set it and forget it at or slightly below stock, it doesn't get as low, but the variability is greatly reduced, leading me to imagine that the overall battery savings are greater. So far, all I think I've shown to myself is that cranking it below a certain level is useless, and it may yet be worthwhile to keep screenoff profiles within a higher middle range. However, I do have to wonder if the variability I'm seeing when running profiles (vs. one, manually adjusted flat rate) doesn't have something to do with the way they are implemented in setCPU.
Anyone out there with real, definitive proof that setcpu profiles actually work? I've seen lots of speculation and lots of "recommendation" but no proof as of yet. Not a programmer, just a social scientist with too much time on his hands. Any info/thoughts would be appreciated. I'll keep messing around and see what I find.
The definitive proof is on another, similar device:
A laptop.
Laptops regularly slow down the clock cycles and undervolts when in battery / powersaver mode, and there's proof of extended battery there.
So there's no reason to think it won't work for a phone...
Hell, I do it with my Inspire. I have it set on smartass at ~500MHz for battery usage (with other profiles at 0% priority at stock 1GHz and OC'd 1.5GHz for when I want it).
Related
To start off: I'm using an Inspire 4g, Android Revolution 5.1.4 with the included kernel and radio. I've looked all over xda, and I've yet to find any decisive, hard evidence that setCPU screenoff and "battery saver" profiles do anything to save battery life. Theoretically, I don't see any reason to think that cranking the cycle rate all the way down will save battery, as this just forces the processor to work harder for longer. Nonetheless, I imagined that some reduction in the form of a screen off profile would be beneficial, and I've been looking for the "sweet spot" for a few days now. However, so far, my anecdotal experience tracking currentwidget logs with screen off and wifi on (using Apache's smartass scaling) has been that, while the "lows" are lower when I set profiles to drop the cycle rate with moderate severity, there is greater variability in current draw, with many more "high extremes" (e.g. in the 100-250 range - even on "powersaver" scaling). When I set it and forget it at or slightly below stock, it doesn't get as low, but the variability is greatly reduced, leading me to imagine that the overall battery savings are greater. So far, all I think I've shown to myself is that cranking it below a certain level is useless, and it may yet be worthwhile to keep screenoff profiles within a higher middle range. However, I do have to wonder if the variability I'm seeing when running profiles (vs. one, manually adjusted flat rate) doesn't have something to do with the way they are implemented in setCPU.
Anyone out there with real, definitive proof that setcpu profiles actually work? I've seen lots of speculation and lots of "recommendation" but no proof as of yet. Not a programmer, just a social scientist with too much time on his hands. Any info/thoughts would be appreciated. I'll keep messing around and see what I find.
I am loving my Android experience so far coming from and iPhone 4. I am running LeeDroid and have been playing around a lot with SetCPU. At this time, I am not concerned about battery as of yet. I am asking this question in regard to optimal, blazing fast performance with minimal hiccups.
I have done Quadrant testing at various min/max CPU levels. I had excellent results at 1804 high 904 min. However I had to yank the battery after not being able to unlock the device.
For profiles, real basic, again I am not concerned about battery charge life ATM. I have it set to revert to stock performace (1036/245) if the battery temp reaches 100F.
With the screen locked, I have it set to 499/245. All of my settings are using the "ondemand".
I would like to know what an ideal minimum is for PERFORMANCE as well as ideal max (1804? Highest might not always be fastest?). I got amazing results with Quadrant full benchmark with settings of 1804/499. This also caused a lockup when trying to unlock the device though. Maybe because there was a conflict with my lockscreen max setting? I would think the app would put priority to the lock profile though.
Also, does this phone have a built in CPU temperature sensor that I could utilize with a CPU temp widget?
Thanks for reading my lengthy ramblings.
Ray
Not all Processors are created equal and therefore some can OC to 1900+ and some cant overclock at all. Most will be in between. Sounds like you are over doing it. I clock mine to about 1400 when charging. I have had it to 1700 without an issue at all, but I don't find a need to be faster then 1400. When screen is off I actually tell it to go to 250MHz. Sometimes its alittle slow to "wake". But it saves mucho battery. When just on battery I am running at about 1250. Been this way for about 3 weeks. Not an issue.
I have never had to yank my battery and quite frankly if I did I would never run it that high again. You are going to burn it up running it at that speed. Nothing over 1500 for extended periods. 1800+ for showing off maybe? But that's kinda dumb too.
I have not read about any built in temp thing so can't really answer that.
I don't know what kind of power hungry apps you guys are running, but I run mine underclocked to 906MHz. Snappy as ever.
So I have a few apps... Voltage Control, SetCPU, No-Frills CPU... but I've honestly been a bit weary to use them. I want the best battery life since I'm a heavy user, but I also don't want to overclock/set voltage to a point where I'll screw up my phone. I'll admit that I'm a novice user when it comes to voltage/overclocking, but not when it comes to ROMs, kernels, bootloaders, etc. I work with those all the time, but really trying to get the most out of the battery and CPU.
There's this thread I found that has someone's settings on it, but don't know if its good or how much this guy knows(no offense to him):
http://forum.xda-developers.com/showthread.php?t=1356211
Anyone got any insight or perhaps screenies of their optimally tested settings? VERY VERY appreciated to anyone that can help.
jgruberman said:
So I have a few apps... Voltage Control, SetCPU, No-Frills CPU... but I've honestly been a bit weary to use them. I want the best battery life since I'm a heavy user, but I also don't want to overclock/set voltage to a point where I'll screw up my phone. I'll admit that I'm a novice user when it comes to voltage/overclocking, but not when it comes to ROMs, kernels, bootloaders, etc. I work with those all the time, but really trying to get the most out of the battery and CPU.
There's this thread I found that has someone's settings on it, but don't know if its good or how much this guy knows(no offense to him):
http://forum.xda-developers.com/showthread.php?t=1356211
Anyone got any insight or perhaps screenies of their optimally tested settings? VERY VERY appreciated to anyone that can help.
Click to expand...
Click to collapse
there is no rule. every cpu is different. very different. my captivate took a lot of effort to get a meer 1300 mhz but my infuses get 1600 no problem at all. some infuses wont go to 1600 but more will go to 1500 than galaxy s's. they probably held out the best testing cpu's for the higher clocked phone.
for battery life try clocking @ 800 mhz and dont use screen off profiles just because it looks like a good idea to slow the cpu when you arent really using it(causes problems if the max freq is too low with some kernels) and test stability with your uv settings, go down a little at a time, for max frequency uv from the top down, for battery life go from the bottom up and disable the upper freqs if they become unstable. this is because rapid voltage changes can contribute to instability. too much differential will cause crashes if the uv is extreme or the oc is extreme.
at some point though the cpu settings will have a limited effect. the radios use battery as well. manage your screen brightness and try edge only with the screen off using any number of apps that manage the radio. try one of entropys kernels to avoid a feature of the wifi chip (or was it bt) from sucking power when in proximity of another device with the same chip. turn off sync if you dont need push emails from gmail or real time facebook updates and if you really need battery life get in the habit of togging wifi and bt and gps on and off depending on need. i do none on this because i always found the battery life adequate on samsung phones but on my aria, well it was a must and prolly why people hate android. htc and battery life dont go together unless you manually manage the phone functions.
That's a great bunch of information. I currently keep my Brightness at 0%, GPS off, Wifi only ON when I'm at work when the charger is plugged in.
I guess I'm more concerned with the undervolting than the overclocking. I'd rather preserve the battery life with undervolting... the overclocking isnt a HUGE concern, but it'd be nice to see. Regardless, if you have any "ideal" UV settings, or ones that have worked for YOUR Infuse(assuming you have one), then I'd love to see them.
at one point i had -200mv on every freq from 100-1600mhz and no crashes. i started manually editing the uv script (voltage control is only able to write -200 into the script unless you have the pay version) and forgot what i ended up with. but my first infuse was exceptional in that area. some infuses freeze above 1400 mhz no matter what voltage settings are used. about -50 seems to be safe 99% of the time with minor or no overclock across the board but you could probably go -50 down low and -100 from 400mhz up to 1200 and -50 or -75 on overclock freqs. with underclock or atleast no overclock it's probably safe to go -100 to -150. it may be safe to go much more than that as well but on a small number of phones that might be too far as it is. cpus are made on such a small scale that microns of inconsistency make large percentages of difference. many dont pass testing and qc. some are borderline for the application, some are exceptional. the smaller the architecture gets the more potential the design has for speed but the larger the variance in performance is given a manufacturing technique. obviously the manufacturing gets better and better combating this so that they can make smaller architectures they also have redundancy built in, but sometimes they just disable features of a chipset and market it as an economy version if they have a low pass rate. ever see a 3 core cpu for a pc? most are manufactured as 4 cores and on many motherboards the bios can unlock the 4th core with somewhat unpredictable results.
Again, some really great info for the technical guys such as myself. What is the best way to test the UV settings? The built in tools and stuff in SetCPU? Or is there another way that would be more effective and/or would get more realistic results?
Seems like some recurring discussion in past threads:
1 - why should we even bother overclocking if we’re not a gamer.
2 - won’t we damage our device with overclocking.
I haven’t seen definitive answers posted anywhere, and I certainly don’t have one.
Maybe in that case (I have no definitive answer), I should probably just keep my mouth shut.
It may be the case, if so let me know.
For whatever reason, I have some strong opinions and I feel it would be useful to share my opinions and the reasons I have formed those opinions.
Take them or leave them or add to them... up to you.
Point out to me if you think I am grossly mistaken.
1 - why should we even bother overclocking if we’re not a gamer.
Click to expand...
Click to collapse
There is constant tradeoff between battery and performance.
Underclocking will help you save battery. How low you want to underclock depends on what you can tolerate.
But what you can tolerate depends on your user experience, which can be dramatically impacted by use of overclocking at other times.
The perfect example for me is a program which is slow to start up. In my case it is Memento database with 1000+ records, takes a long time to read in (I think the program does some sorting every time it opens). That is a minor annoyance. If I were to underclock it will start even slower, I’m going to get impatient and set my speed back up.
But think about this:
1 - Using Tasker you can apply cpu profiles upon application launch and remove them after a predetermined length of time. I can give the program a blast of 1600M-hz when it starts, then set it back where it was after predetermined period (for example 10 seconds).
2 – Setcpu is not quite as flexible as tasker in this regard. With setcpu we can create a profile to occur when we launch the program like Memento, but we just can’t incorproate a time delay into the logic (it will stay on the higher profile as long as the program runs in the foreground).
3 - There may be circumstances where this setcpu behavior is what you want... it will give you faster response whenever the program is in the foreground, and will yield to lower priority profiles whenever the program goes to the backghround.
(I haven’t investigated how to make make Tasker and setcpu play nicely together yet).
So, if you speed up the things that cause noticeable delay for only a short time, or particular applications which seem to run slow then you can probably be more satisfied with your underclock in the other times. In the overall picture, I think the overclock capability can ironically be used as part of a strategy to save battery (unless you just like overclocking just to see things zip accross your desktop and menu’s pop in and out faster than you can blink, I’m starting to get spoiled with that behavior on my phone in its new configuration, partially from overclock..I’m sure others get even better in their configuations..).
2 - won’t we damage our device with overclocking.
Click to expand...
Click to collapse
On this I would say no, as long as you are careful about not running it in conditions that create high temperature. .
(you may have stability problems as you guys know, an entirely different subject).
The physics of the damage are all related to temperature. There are many variables affecting temperature that the designer is unaware of and so he builds in margin for the worst cause unknown future occurence (he has to consider maybe phone will be in desert with 100F ambient, and on the charger, while the user tries some heavy surfing with gps, all at the same time, so he limits cpu to 1200Mhz).
We on the other hand know what are the conditions of our phone and what it’s likely to see and what it’s doing at any given time, and setcpu provides additional ability to monitor and adjust.
Here are example setcpu profiles I came up with to protect myself from damaging temperatures (Zen's kernel A/1600)
Priority 100: If batter temperature > 50C (122F),establish conservative governor 100-400Mhz
Priority 90: If batter temperature > 45C (113F),establish conservative governor 100-800Mhz
Priority 80: If battery temperature > 40C (104F), establish conservative governor 100-1200Mhz (in the event I was overclocking, this profile will stop it when battery temp exceeds 40C, all other profiles that may invoke overclocking are lower priority than 80).
This is just from judgement, knowing that I’m normally < 104F battery temp during light use and don’t want to overclock when I’m outside that normal light use zone. Some further curtailment of cpu max frequency occurs as battery temperature climbs above that. (which I would not have even had the benefit of if I were casual user with no overclocking and no setcpu).
As long as you’re limiting temperature, you should not be worried about damage imo. By the way, of course overclocking is not the only thing to affect temperature: things like phone case (thermal insulation), charging, gps, heavy use etc all have an effect. I'm not quite sure why sometime cpu overclocking gets singled out in a dangerous category all its own without any discussion of other things that affect tempertaure.
In fairness, you may point out that what we monitor is battery temperature and not the same thing as cpu temperature. It’s a good point. Increase in heat generated at the cpu causes more of an increase in temperature at the cpu then it does at the battery. But it's question of how much different. there's a matter of how much. Why do you think it is that Samsung didn’t give us cpu temperature indication? I think because they knew battery temperature is close enough. Even on newer flagship Behemoth Samsung Note, I’ve read you still only get battery temperature, no cpu temperature. If cpu temperature was that much different, they surely would have provided a separate indication of cpu temperature (cpu is after all a much more critical component than replaceable battery).
And why should we expect battery temperature to be representative of cpu temperature on our phone, when the same is not true on a pc? I think I can answer that:
* PC has things all spread out. There is air flowing through. The air picks up heat from each component from heat sinks by convection. The component temperatures are not tightly coupled together.
* Phone (in contrast to pc) has everything compact inside one itsy bitsy case. There is no air flowing through. That means heat transfer inside the phone is not by convection but by conduction. For most effective conduction, all components are attached with high thermal-conductivity path to the phone structure and the exterior surface of the phone. The heat transfer from phone to ambient is primarily convection. So we have effective heat transfer (conduction) among the components of the phone and less- effective heat transfer (from phone to environment). It tends to tell us that there will not be big difference in temperature among phone components. The big temperature difference that occurs is between the phone and the ambient air.
I don't have access to a phone which has both cpu and battery temperature indicators. If someone does, it would be interesting to hear how close those two temperatures follow each other.
===================================================================================
Edited to add: searching other threads suggests there can maybe be a substantial differencebetween cpu temperature and battery temperature. That makes me a little less certain. At least we can use battery temperature as a gross indicator that the cpu isn't seeing excessive extra heat from other non-cpu sources while we're overclocking it. Certainly having profiles in place to limit overclocking when battery temperature is high can only help protect us. But is it a false sense of security which can lead us astray? I dunno. I have already done a stability test at 1600 for quite awhile and there's no damage in sight, so if there is any damage potential, then it is only an accumulation over time. I don't plan on leaving Fmax at 1600 all the time anyway, since it would kill the battery. My planned strategy reserves the 1600 overclock for occasional playing around, and boosts when I need them like like my Memento database. My gut says that approach is just fine. Interested in hearing any other thoughts, experiences, links that may shed light.
Hello guys
I'm not a new user in kernels or ROMs .
I have a low-decent battery life ,and I'm sure there's a way to get a better battery life with undervolting .
I want to know
what is "undervolting" ?
What is the biggest damage it can cause?
What is PVS?
How do I know ,how much I can UV?
What are the steps to undervolt?
What I gain from UV (despite battery life)?
For your info ,I'm using AOSPAL ROM +FAUX's latest 16u kernel .
Thanks
Sent from my Nexus 5 using XDA Premium 4 mobile app
http://forum.xda-developers.com/showthread.php?t=2537000
Sent from my Nexus 5 using Tapatalk
Hi,
Most of your questions have a reply:
About undervolting: http://forum.xda-developers.com/google-nexus-5/general/nexus-5-undervolting-thread-t2537000.
CPU binning: http://forum.xda-developers.com/google-nexus-5/general/cpu-binning-nexus-5-t2515593.
The "risks" are instability like hard reboot, SOD, etc.... To find a "safe" value you will need to test by yourself to find what undervolting your CPU can handle, not all CPU's are equals.
Undervolt by steps like - 25mV, don't set your new values at boot unless your are sure it's stable (or you could encounter bootloop), test for a few days under different conditions (as your use).
The gain apart battery life (but you will not gain that much as people tend to think) is a little less heat, but again nothing huge..., better is to test by yourself and see what you will gain... or not.
Battery life depends mainly of your use, apps, signal quality and settings like, screen brightness, synchro, CPU governor, etc... In my opinion check first what could be the cause of your low battery life (and what is low battery life for you???) before play with undervolting.
As said above, undervolting will get you very minor battery life increases.
More than likely you have an issue, or its just your setup and usage giving you the battery life you are seeing.
Undervolting will not change any of this.... You'll gain only minutes of battery time.
Try some troubleshooting in the below thread to see if you have an issue, or how to setup for better battery life. Read through it a bit, from the last page and work back a bit. You can post meaningful screenshots there too. From gsam or BBS.... not the stock battery screen, it has no real useful info for finding issues. Good luck!!
http://forum.xda-developers.com/showthread.php?t=2509132
Nexus 5 Battery Results
I've been undervolting many systems for many years, primarily Linux desktops and some servers, and the primary benefit is that you get less heat output which means when running cpu-intensive tasks the temperature climbs slower so the throttling of the clockspeed kicks in later, so your phone will be faster in certain situations. If you take a phone which has been idle for a while and run a benchmark, and then immediately run that benchmark again, the 2nd time gets a lower result as the phone is still hot from the 1st. This makes drawing conclusions about settings really dificult but it illustrate that throttling from heat is affecting speed.
For most users their perception will be the phone runs cooler.
You do undervolt at each step in the processor's frequency, and each step is a trial+error activity, the throttling I mention means finding a stable under-volt at the higher frequency which is labour-intensive,i.e take the max clock, and undervolt it a little, run a benchmark which forces it to run at high clockspeed, and if it passes that test then run it again at the next step down in frequency. Once you've got the most stable top clockspeed, then do it progressively for all the other voltages on the way down.
In some platforms in Linux and Windoze, we wrote scripts which save the stable voltages and then undervolts a little and runs a stress-testing benchmark and if the system hung it wouldn't save the current voltages so the previous higher voltages were safer, stick that script in a startup script area and leave the compute to do many self resets, and you've calculated your device's voltage range. I wonder if someone has that done for Android??? For a laptop the FAN would run slower saving battery time and for laptops that would lead to say 20% better battery life but on a phone it won't make much saving as no fan.
Your phone will run most of its time (like 95%) at its lowest frequency, so for effort/benefit just focusing on dropping its voltage will gain the most in the phone running cooler.
Battery life improvement is marginal, if you look at your battery stats its down to your application settings and screen brightness, i.e. how you use and what you do with your phone. So if your battery life is bad, use your phone less!
I carry a slim USB battery, it is the $/effort/benefit the best thing you can do, $20 doubles your battery life, if you get one with a 1.5A-2A output in just a few minutes when the phone doesn't mind a battery attached, will dwarth every possible tweak and hack anyone can form in benefit.