MyTouch 4G / HTC Glacier / MT4G Settings to optimize battery on Cyanogenmod 7
MyTouch 4G while a fantastic phone has a terrible battery life if you are a moderate to heavy user like me. I couldn't find a thread that gives a comprehensive list of settings specific to CM7 to optimize battery life. So I figured I should start one.
I make a lot of calls and need data to be on at all times because I get work email, which is why I am not covering any settings that disable data or calling.
Here is what I am using. Please feel free to add any I have missed or comment on any setting that is counter-productive. Big thanks to synaesthetic for feedback and invaluable suggestions.
PHONE
Phone > Menu > Preferences > Enable Haptic Feedback DISABLED
POWER CONTROL WIDGET SETTINGS
Home > Widgets > Power Control
Wifi disables 3G (2G is used when you are on Wifi) - ENABLED
Wifi enables 3G (3G is used when you are not on Wifi) - ENABLED
These two settings should ensure you get the best data speeds without sacrificing battery life.
I also keep the following buttons on the widget enabled on one of the home screens to make quick changes in case I am running low on power or need one of them.
'2G/3G' button enabled with '2G/3G+2G' under 'Choose network Modes'
'Brightness' button enabled with 'Auto/Dim/25%/75%/100%' under 'Choose Brightness Levels' (Gives me fine tuned manual control in case I need it quickly)
'Bluetooth' button enabled
'Wifi Hotspot' button enabled so I can turn it on whenever I want with a click
SETTINGS
Home > Menu Button > Settings
Wireless & Network Settings
WiFi ENABLED
Wifi Settings > Network Notification DISABLED (Turns off automatic scanning when not connected)
Wifi Settings > Menu Button > Advanced > Wifi Sleep Policy NEVER
Mobile Networks > Use only 2G networks (Use this if you dont care about data speeds and are only interested in battery. I don't use this. The Power Control Widget gives a better option)
Bluetooth DISABLED
Display
Brightness > Automatic Brightness
Brightness > Animation > Some Animations
Brightness > Screen Timeout > 30 seconds
Sound
Audible touch tones ENABLED
Haptic Feedback DISABLED (This consumes more power than sound)
You can safely enable all the sounds you want to enable really without impacting battery life
Location & Security
Use Wireless Networks DISABLED (Not required if you enable GPS)
Use GPS ENABLED (GPS only kicks in when needed so you can safely enable this)
Call Settings
Vibrate on answer DISABLED
Vibrate on hangup ENABLED (You can disable this but it is useful if you drop a call)
Vibrate every 45 seconds DISABLED (Default)
Vibrate call waiting DISABLED (Default)
Keep Screen awake DISABLED (Default)
I make a lot of calls so these make sense for me but might not be useful for a lot of people.
Language & Keyboard
I use Swype which I copied over from the Stock ROM.
Swype Settings > Vibrate on Keypress DISABLED
Swype Settings > Audio Feedback DISABLED (It's just annoying when enabled. Should save some battery but quite insignificant.)
Cyanogenmod Settings (The Fun ones)
Display
Display > Automatic Backlight > Screen Dim Level > 16
Auto Brightness on some versions of CM 7.x behaves a little erratically. Making the following adjustments should make it work a little more reliably and save battery power.
Display > Automatic Backlight > Light Levels > Use Custom ENABLED.
Display > Automatic Backlight > Edit Other Levels
Click on each of the values in the 'Lower', 'Screen' and 'Buttons' columns and adjust the numbers as outlined below:
Lower --- Screen ---- Buttons
0-----------35---------10
161---------35---------10
226---------50---------10
321---------76---------10
641---------88---------0
1281-------112--------0
2601-------130--------0
5801-------140--------0
8001-------150--------0
9494-------160--------0
Then click "Save & Apply" at the top.
The Screen brightness max value is 255. I have used 160 as max above. Display brightness differs from screen to screen. If your display is not as bright as mine or is brighter please adjust the values listed under 'Screen'. 160 works for me under bright sunlight since the phone is fairly new. Increase/Decrease each of the screen values as desired. The values under 'Lower' are based on the standard Raw light sensor reading values so please use the ones listed above.
Naturally, you can always set screen to max brightness of 255 manually at any time using Power Control widget.
Input
Input > Haptic Feedback Tweaks > Haptic feedback main DISABLED
Performance settings if you are running CM 7.x.x. and the standard BFS kernel it comes with.
Performance > CPU Settings > Availabele Governors > Conservative
This gives pretty decent performance on the MyTouch 4G. Heavier apps may take half a second longer to launch but after that performance is pretty good.
Performance > CPU Settings > Min CPU Frequency > 245Mhz
Performance > CPU Settings > Max CPU Frequency > 768 Mhz. This is the processor speed of the G2(my phone before MyTouch 4G) and is more than enough for good performance in most applications. (Default frequency for the MyTouch I think is 1017Mhz)
Performance > CPU Settings > Set on Boot ENABLED
Performance settings if you are running CM 7.x.x. and a low voltage kernel.
Quote
I use Faux123's Low Voltage kernel for CM7 and Gingerbread. It is available here: Faux's Gingerbread Kernels for CM7
2.6.1 didn't play nice with CM 7.0.3 for me. However at the time of writing this 2.6.3 is out. I have not tried it yet. Instructions for install are straightforward enough.
1. Download the latest CFS Low voltage version zip file. If LV doesn't work well with your CPU(rare but very possible) you could use the CFS stock voltage version.
2. Reboot into recovery useing ROM Manager and do:
-- Wipe cache.
-- Advanced > Wipe Dalvik Cache.
3. Select 'Install zip from SD Card" and select the file you downloaded (should be in the downloads folder)
Once done reboot.
Performance > CPU Settings > Min CPU Frequency > 245Mhz
Performance > CPU Settings > Max CPU Frequency > 768 Mhz/1017 Mhz/1113 Mhz . If you are using Smartass governor you can increase the max a little more if you like and even overclock it a little. Since the CPU spends a lot more time at lower frequencies, the affect on battery life is much lower even with a higher max.
Performance > CPU Settings > Set on Boot ENABLED
Quote
CPU governors control exactly how the CPU scales between your “max” and “min” set frequencies. Most kernels have “ondemand” and “performance.”
ondemand – Available in most kernels, and the default governor in most kernels. When the CPU load reaches a certain point (see “up threshold” in Advanced Settings), ondemand will rapidly scale the CPU up to meet demand, then gradually scale the CPU down when it isn't needed.
conservative – Available in some kernels. It is similar to the ondemand governor, but will scale the CPU up more gradually to better fit demand. Conservative provides a less responsive experience than ondemand, but can save battery.
performance – Available in most kernels. It will keep the CPU running at the “max” set value at all times. This is a bit more efficient than simply setting “max” and “min” to the same value and using ondemand because the system will not waste resources scanning for CPU load.
powersave – Available in some kernels. It will keep the CPU running at the “min” set value at all times.
userspace – A method for controlling the CPU speed that isn't currently used by SetCPU. For best results, do not use the userspace governor.
interactive- The 'interactive' governor has a different approach. Instead of sampling the cpu at a specified rate, the governor will scale the cpu frequency up when coming out of idle. When the cpu comes out of idle, a timer is configured to fire within 1-2 ticks. If the cpu is 100% busy from exiting idle to when the timer fires then we assume the cpu is underpowered and ramp to MAX speed.If the cpu was not 100% busy, then the governor evaluates the cpu load over the last 'min_sample_rate' (default 50000 uS) to determine the cpu speed to ramp down to.
smartass (Available only in certain CFS kernels. Not usually avaialble in BFS kernels like CM.): - Based on interactive, but better. Performance is on par with the "old" minmax and smartass is a bit more responsive. CPU spends much more time at the lower frequencies. Smartass will also cap the max frequency when sleeping to 245Mhz (or if your min frequency is higher than 245 - why?! - it will cap it to your min frequency). Lets take for example the 998/245 kernel, it will sleep at 245. No need for sleep profiles any more!
I am done playing with settings. Yesterday's check of the uptime between charges was between 19-20 hrs with lots of voice calling, texting and emailing. Screen stats at 2% battery showed the display being on between 3-4 hrs (didnt note it down). I also used the navigation for a longish drive (which drains battery quite a bit).
Max data speeds always and no noticeable loss of any performance. This is using stock battery (no calibration ever done on it), LV kernel and above settings. Of course your performance will differ quite a bit depending on your battery as well as all the other factors mentioned above. You should however get 14-20 hrs of uptime between charges quite easily with these settings which definitely solves the problem of a normal day's worth of use without having to get one of those high capacity batteries.
ENJOY!
Edited by rahvan, 09 May 2011 - 01:24 AM.














