Power to the Smartphone
There's been a fair amount of interest in an offhand comment I made recently about saving a lot of standby time by making an LED blink less frequently. So let's spend some time talking about what burns power on your Smartphone. Hopefully this will give you an understanding of where that battery power went and maybe help you figure out how to squeeze a little more life out of your devices.
Milli who?
If you look at your phone's battery, you'll probably find a label that says something like "1000 mAh". Think of this number as the size of your battery's gas tank. A bigger number means that the battery can hold more power. A lower number means that it holds less. The "mAh" is an abbreviation for "milliamp hours."
I won't go into the differences between amps, volts, and watts here (unless you folks really want me to). You could correctly say that mAh doesn't represent power, but, for various reasons, it's reasonable to think of it as power. And, when you do, the math becomes really easy.
If your phone had a 1000 mAh battery and only burned 1 mA, then it would last for 1000 hours. If it burned 2 mA, it would last for 500 hours. If it burned 1000 mA, it would last for one hour. Milliamp hours divided by milliamps equals hours. It's that simple.
Who you callin' "typical"?
Every phone is different. Any numbers I give for a "typical" phone might be wildly different on your phone. Hardware changes all the time, and so do these numbers. So don't hold me to them. But, a "typical" WM Smartphone has around a 1000 mAh battery. And, when in standby (backlight off, screen off, cpu doing very little, phone only listening for incoming calls), the typical device burns around 5 mA. Doing the math, you'll see that the typical device should run for 200 hours on standby.
200 hours??? I'd kill for 200 hours!
Are your batteries not lasting that long? Here are the biggest power users on your phone. Maybe one of them is hurting your standby time.
Backlight: The backlight eats power like a whale eats plankton. "Typical" backlights burn 45 mA. Your phone with the backlight on is probably burning ten times as much power as it does during standby. In other words, every minute you spend with the backlight on is ten minutes less standby time you'll have. If you keep your backlight on continuosly, your 200 hour phone will become a 20 hour phone.
CPU: This one is really complicated, but the simple story is that faster CPUs burn more power than slower ones, and CPUs burn a lot less power when they're not being used than when they're busy.
The first factor is why you still see some devices with a 200 MHz CPU even though there are much faster ones available today. All else being equal, a 200 MHz CPU uses half as much power as a 400 MHz one.
The bigger deal, though, is CPU usage. When the CPU is idle, it goes into a lower power mode that burns much less power than when it's active. When you're not doing anything with it (and not syncing), the Smartphone CPU is generally idle 99.9% of the time. If you were to load an app that kept the CPU busy just 1% of the time, that app would be using ten times more CPU than normal. Depending on the CPU and other factors, this could turn your 200 hour phone into a 20 hour one.
This is why I did those "Power to the Developers" blog entries and begged people to not use the CPU when the phone was idle. It's fine to do animations and things when the user is interacting with the device (especially when the backlight is on). But the app really should stop when the screen turns off. If the user can't see the screen, why burn the power trying to show him something?
As a user, you can pay attention to the apps you add to your phone. Did your battery life plunge after adding something? Do you have a great new stock ticker on your home screen that's still scrolling text at 3 AM when you're asleep and the phone is on your bedside table? Do you have ActiveSync set to sync every 5 minutes, but you only look at the device every 10? Maybe in off peak times you should set it to something very long, or even manual. Or, you might ask, "Is always up to date (AUTD) email better or worse for batteries than 5 minute sync?" That depends. Do you typically get email more often then every 5 minutes or less often than every 5 minutes? Any time spent syncing is CPU power being spent. The less you do it, the better your battery life will be.
Cell Radio: The cell radio burns a lot more power when actively sending data than when idle. This factors into those active sync decisions above. It also means that an app which sends or receives data will burn much more power than one that doesn't.
Even when idle, the cell radio will burn around 2 mA of the device's 5 mA standby current. If you need to stretch your battery life out, you can get quite a bit of mileage out of putting it into flight mode. Of course you can't send or receive phone calls then, but maybe you don't want phone calls at 3 AM when you're asleep. You might benefit from putting the phone into flight mode before going to bed. (Personally, I go one step further and turn mine off at night. Other people don't want to be disconnected and leave theirs on. Do what works for you.)
Signal strength is a huge factor as well. The closer a cell radio is to a cell tower, the less power it takes for the two of them to communicate. When you move into a poor signal strength area, the radio needs to turn up the power to stay connected. I frequently hear people at odds over whether a given phone has good battery life. One will say the phone is great, and the other will say that it's terrible. More often than not, the one who thinks battery life is great lives in an area with great signal strength and the one who thinks it's bad lives in an area with poor signal strength. Personally, the only place in my home where I can get any reception at all is standing next to the window in my son's room upstairs. I might as well turn on flight mode as soon as I get home…
Bluetooth: BTh uses another radio. Having it on at all burns more power than having it off. Having it on and sending data over it burns more power than having it off and not sending data over it. If you're using BTh, you need to have it on. If you're not, you should turn it off to conserve power.
Vibration: Here's a prime example of why the battery capacity is measured in milliamp hours. Time is just as important as current draw in figuring out who is burning all your power. If the backlight is on for a second, it'll burn 1/60th as much power as if it's on for a minute. Case in point, the vibration motor is probably the single biggest instantaneous power draw in the device. It's got to physically move the device around, and that takes a lot of power. But the vibration motor is never on for very long. It shakes the phone for a few seconds every so often, but does nothing most of the time. So the vibration motor isn't a substantial drain on the battery. That said, if something were to happen to cause your vibration motor to turn on and not turn off, it would suck your batteries dry in no time.
LEDs: These are the little blinking lights on the outside of your phone. Typically you've got a green one that blinks whenever the cell radio is on. You usually have a blue one that blinks whenever Bluetooth is connected. Sometimes you have a yellow one for other sorts of notifications, like upcoming calendar appointments or unread email.
LEDs annoy me. In my opinion, they burn more power than they're worth. But there's usually no way to turn them off. (They're completely OEM controlled.) Everyone assumes that users are best off with a LED telling them that the radio is connected. I think we should be weighing that against how much power the LEDs draw.
A typical LED, while on, burns 5 mA of current. Remember that the entire phone in standby is burning 5 mA. Turn an LED on and leave it on, and you'll cut your battery life in half. Fortunately, we don't usually leave LEDs on. We blink them. Typically, the blink rate for a LED is something like 0.2 sec on, 1.8 sec off. Since that results in the LED only being on 10% of the time, overall it just burns 10% of its 5 mA, or 0.5mA.
When I say that a typical phone on standby uses 5 mA, it's actually using 4.5 mA, with the other 0.5 going toward blinking that green LED. I recently worked on an extremely power efficient device whose standby current was 2.5 mA with the LED off. It just killed me that we had to blink the LED and bring the standby current up to 3.0 mA. So I convinced people to let me change the blink from the standard 0.2 seconds out of every 2 to 0.05 seconds out of every 2. Now, rather than being on 10% of the time, the LED was on 2.5% of the time. And the power went from 0.5 mA to 0.125 mA. On a 1000 mAh battery, that change alone would buy almost 50 hours of standby time.
I'm not ready to start carrying "Down with LEDs" placards. But if you want to put pressure on your Mobile Operators to tell their OEMs to get rid of the darned things, you'll get no objection from me.
What about the PocketPC?
That's the majority of the story on Smartphones. There are definitely similarities in the PocketPC, but there are some differences too. I'm personally more interested in Smartphones, but if you folks are interested, I could do a follow up entry on PocketPCs too. I'll be out next week, but when I get back, I'll gauge interest and write one if necessary.
In the mean time, I hope this has helped you understand where your battery life is going.
Mike Calligaro
Comments
Anonymous
August 04, 2006
i've said death to leds on handheld devices for 10 years.
on my windows mobile i'm lucky to get 50 hours of standby time TOTAL, much less extra.
i'm always amazed by how much power is wasted by people who think unnecessary notifications are valuable.Anonymous
August 04, 2006
Well, I will speak for Pocket PC PDAs... ipaq wifi and bt led actually do not blink. it is are ON continuously when bt or wifi is on. even before you explained the power drain, I thought that it will burn through my eyes in no time.
Getting rid of ipaq BT/WiFi led is very easy
HKLM/Drivers/Builtin/BWLedMgr/Dll=BWLedMgr.xdllAnonymous
August 04, 2006
The comment has been removedAnonymous
August 05, 2006
Would love to read a similar article about pocket PC!!!Anonymous
August 05, 2006
I'd love to see a PocketPC article. I'm rather interested in the differences, as a potential .NET developer for PocketPC devices, and as a consumer (With a Dell X51v). I was shocked that a LED consumed that much power - I've always thought of them as low-drain devices.
If you could tell us how to get rid of flashing LED's on PocketPC's, that'd be great ;) If not, details of the power drains would be much appreciated.
Incidentally, how much does memory drain?Anonymous
August 05, 2006
Everyone seems to have their own ideas about what drains the battery power in their smartphone. We've previously seen an application that helps you figure out what drains the battery. And we've seen a very technical explanation of it all.
Now,...Anonymous
August 05, 2006
GREAT article. Please continue to write on power. Stuff I'd like to see:
* Why do color screens take more power? How much more?
* Do different screen technologies take different amounts of power?Anonymous
August 06, 2006
InterestingAnonymous
August 06, 2006
En el blog del equipo de Windows Mobile hay una excelente nota sobre como se usan las baterías en los Smartphones. En la nota se explica el concepto de miliamperes/hora con la que se están midiendo las baterías hoy en...Anonymous
August 06, 2006
>4.5 mA
@ 3.4V -> 15mW
very interesting - i was working on a device (commercial - no radios, Freescale CPU) that did 1.0mA @ 12V -> 12mW in idle, interesting to see we weren't too far off cell phones.Anonymous
August 06, 2006
I've always hoped to see "power Profiles" for mobile devices, similar to laptops.
When the battery reaches 50% then cpu = x, backlight brightness = x, etc. When battery reaches 25% then... You get the idea.
Basically you could have profiles for: Best performance, Audio & Video and Power Saving etc.
Either that or OEM's need to supply higher capacity batteries ;)Anonymous
August 06, 2006
Can I make another request for a PocketPC equivilent article also, please.Anonymous
August 07, 2006
Very interesting, the same about Pocket PC would be great to compare.
I must admit the Qtek 8310 (HTC QVGA Smartphone) has an impressive battery life, while the 9000 (HTC VGA Pocket PC) is a bit dissapointing.Anonymous
August 07, 2006
LEDs shouldn't be banished, but they should be configurable. Blink to say I'm on the network? No, that's normal. Blink to say I have a message waiting? Yes, that's useful, and consumes far less power than waking the whole phone, turning on the screen and backlight, and letting all the idle processes wake up and start running just to see if maybe I have a message waiting.
Care to speculate why the Motorola Q gets 20 hours battery life in standby if I'm really lucky? My PocketPCs can go for several days in standby without the obnoxious Q default of turning off the screen several second after the last button push, making it impossible to read a message without constant scrolling about to keep it awake.Anonymous
August 07, 2006
Some people believe that using 'light' colors as background instead of dark colors can increase power consumption. Is there any true on this?Anonymous
August 07, 2006
And what about Ti OMAP 850 in HTC WizardProphet.
Overall, I can't understand why power consumption is so different usind the same hardware. Take for example Asus A632636N639Anonymous
August 08, 2006
Hi,
I am sorry to add a completely off the topic comment - but I just wanted to let everyone on the Windows Mobile team know that we just launched the Mobile Monday Chicago chapter and we've had one event already with another planned for the 21st of this month (Neal Ford will be talking this month on Mobile Web 2.0). I was hoping to get one of you on the WM team to come out here and speak at one of the events... We're also having a demo of the latest Neuros device on the 21st.
Any interest?
Please email me @ kiran.bellubbi [aT] gmaiL . comAnonymous
August 08, 2006
I'm wondering if the author - by use of the word Smartphone - was referring to both varieties? Most of what I see here, I would expect to be the same in both platforms - no? The LED on my K-Jam probably takes up the same power as the LED on another phone. Same for BT radio, backlight on a 320x240 screen (ok, the digitizer takes up a bit extra), etc. Seems to me that most of this is probably on target for PPC's....
-Doug
http://www.htcphones.infoAnonymous
August 08, 2006
Not sure if WM devices still do this or not, but under CE 3.0 and Pocket PC (CE 4.0) they DID: WHY DO YOU HAVE TO HAVE A BLINKING RED LED TO TELL ME THAT MY BATTERY IS ABOUT TO DIE??? JUST LET IT DIE.... DON'T CONSUME IT FASTER!!!!Anonymous
August 08, 2006
The comment has been removedAnonymous
August 10, 2006
I too have always thought that the 'blink' rate on the phone was way too much. I would really love to have this under the user control, much like the "Accessibility" options under Settings on a SmartPhone.
For me, on my SmartPhone I have a very short backlight time out, followed by a slightly longer display timeout.
Do we know how much power the "Light Sensor" takes? On devices such as the SPV C550??? I am sure that this too is going to consume about the same power as the LED!Anonymous
August 14, 2006
Yes, the backlight eats power like a whale eats plankton :). My method is to have backlight not to openned when environment light is power enough. There is a software named Nine Way Keypad that can replace left softkey with a numeric key. For some device, if you unlock keypad or phone by this numeric key but not real left softkey, the backlight would not be openned unless you press real left softkey.Anonymous
August 15, 2006
Thanks for all the replies folks. Sorry I haven't been responding. I was on vacation last week.
I'll definitely do an equivalent PPC entry. Hopefully I'll be able to get to it this week.
Here are a few answers to some of the questions asked here:
One of the reasons you see so few PowerToys for WM is that most of the stuff you'd want PowerToys for are under OEM control and not standard. For instance, the backlight driver is written by OEMs and there is no interface into the driver to say "turn the backlight off." Some OEMs have ways to do this, but that way is going to be specific to that OEM. On many PocketPCs there's a control panel setting that lets you disable the backlight. On some if you press and hold the power button, it will turn off the backlight and keep it off. But there's no standard method (that I'm aware of, at least) that works on all devices.
Similarly, there's no generic way to get rid of the blinking LEDs. Again, OEMs own the drivers that control those LEDs. Sometimes it's something even deeper than the drivers (we've had devices where the Cell radio hardware blinks the green LED).
I'm currently working on a registry controlled LED service that would be designed to let the OEMs not need to worry about blinking LEDs. It so happens, because I'm a typically devious sort of guy, that it would allow me (and other power users) to disable blinking these darned things. However, it's unlikely that we'll force our OEMs to use this service. We'll make it available to them and encourage them to use it, but we generally let them do what they want when it comes to hardware and drivers.
Regarding the Q, I've seen pretty conflicting reports on battery life. For some people, it's great. For others, it's not. My best speculation is that the people with poor battery life live in poor signal strength areas.
Regarding older versions that blinked a red LED when the battery got low. Hey, we used to do even better than that! We used to wake the device up, turn the backlight on, play a sound, and pop up a notification that the battery was critically low. Repeatedly. We're a bit smarter than that now.
Regarding how hard it is to turn on and off BTh: yeah, that annoys me too. I wrote a quick little program to make it easier. Check out my ToggleBTh (linked from here) http://blogs.msdn.com/windowsmobile/archive/2006/01/11/511660.aspx
Re: Light Sensors. Assuming that's done right, it wouldn't take much power at all. For one thing, it takes a lot less power to passively sense light than to actively generate it. For another, the sensor would probably only be on while the backlight is on, and the backlight's power drain would dwarf the sensor's. Finally, the code most likely would only check the sensor every once in a while, not continuously. One of the guys who works for me wrote the code for a light sensor recently and we had it only sense once when the backlight turns on and then not again until the backlight had been left on for over a minute. The effect would be miniscule.
Regarding the various LCD (not backlight) questions, I'm pretty sure I know the answers, but I want to cross check them with some of my hardware friends to be sure. I'll get back to you on them.
MikeAnonymous
August 15, 2006
There's been a lot of concern over MSFP and how it affects battery life on Windows Mobile devices. ...Anonymous
August 16, 2006
In my recent “Power to the Smartphone” entry, I talked about the biggest drains on Smartphone batteries. ...Anonymous
August 18, 2006
PingBack from http://blog.wobuxihuan.org/2006/08/17/windows-mobile-team-on-the-power-consumption-issues-of-pocket-pcs-new-power-consumption-measurements-published/Anonymous
September 04, 2006
Software / Hardware SOTI Pocket Controller Professional v5.07 is out Pocket PC Thoughts is reportingAnonymous
October 05, 2006
Here are a set of interesting URL's from my news feeds from August and September 2006 (in no particular order!): Listen to Radio on Your Pocket PC (Phone Edition) with Mundu Radio Screencasts on the subject of Windows Mobile development...Anonymous
December 31, 2006
I have my phone check for email every 15 minutes. Does that process use a lot of power?Anonymous
February 07, 2007
Very nice article. Could you please cite the source from where you are getting these energy measurements? Did you actually run the experiments or these are published as part of the device manual? For instance you said that a device in running at 1% CPU throughout will roughly have a 10 times shorter life as that which is in complete standby. Intuitively, I see how your numbers make sense but if you could quote a source it would be more legitimate.Anonymous
February 13, 2007
The comment has been removedAnonymous
March 08, 2007
hi there i was wondering if someone could please explain to me how if a portable power device was producing a certain power output per hour it can be related to the mAh rate? i do not understand how to determine the voltage from this portable power device. Thanks KashifAnonymous
March 08, 2007
The comment has been removedAnonymous
March 17, 2007
Hi Mike, Thanks for the help, that explains it alot better now. If I wanted to caluclate how much power is used by the mobile phone in 1 hour of call-time how would I do it? Would it just be P=IV, "POWER = 1mA x 3.5" "POWER = 3.5 mW"? so divide by 360 for power per second? Thanks for the help KashifAnonymous
March 19, 2007
KASHIF, Power is an instaneous value. It doesn't have time in it. If you look at the bill from your power company, you'll find that your usage isn't measured in Watts (or KiloWatts). It's measured in Watt Hours (probably KiloWatt Hours, or kWh). Think in terms of a 60 Watt light bulb. Every instant that the light bulb is on, it burns 60 Watts of power. If you leave the light bulb on for an hour, you've burned 60 Watt Hours of power. In the example you gave, if the phone runs at 3.5 volts, and if the extra current when on a phone call is 1mA, then the power from a phone call is 3.5mW, as you said. If you talk for an hour, it's 3.5 milliwatt hours, or 3.5mWh. MikeAnonymous
April 28, 2007
Yes, LED can last for 10 years but do you know after you use it for 2-3 years, the color gets a lot dimmer. This is something that need to develop more in LED but normally people don't know and never relize about it. I got this information about this from talking with somebody via http://en.mysnglife.com/index.php?p=3265#comment-687Anonymous
April 28, 2007
Oh, sorry, I just gave the wrong link. I meant this link www.lunaraccents.com/technology-programmable-LED-controller.htmlAnonymous
April 28, 2007
Do you mean this one ? http://www.lunaraccents.com/technology-programmable-LED-controller.htmlAnonymous
May 10, 2007
The comment has been removedAnonymous
May 11, 2007
The comment has been removedAnonymous
May 13, 2007
The comment has been removedAnonymous
May 14, 2007
The comment has been removedAnonymous
May 29, 2007
pleeeeeease discuss PocketPC (WM5/6) as well. One main issue I am discussing with users is that; the email and UpToDateNotifications eats battery when using Push. them-For - "Direct Push" keeps the data connection open, therefore its using less energy using true "Push" technology via Exchange server. me-Against - "Pull" increases my battery life (and other users') by 25% or more so i can go 1 or 2 days before charging - setting the phone to get email say, every 10 or 15 minutes. This is a query for unread mail and does not use push at all (?) Once this change is enacted battery life improves no matter what you are using the device for. ThanksAnonymous
July 09, 2007
would be good if you had a post on Pocket PCsAnonymous
July 10, 2007
Is there a utility that will tell me how much power (or CPU cycles) my application is using? I think I've effectively eradicated all power wasting threads, but would like some definitive proof.Anonymous
July 11, 2007
Trevor, I've been meaning to write one, but haven't had a chance. The information is available, but buried deep in the kernel and needs a trusted app to call into it. That makes it hard to write for smartphone, since the app needs to be signed. I'm not aware of any third party apps that extract this data and give it to you. Sorry, MikeAnonymous
September 14, 2007
The comment has been removedAnonymous
October 31, 2007
Hi guys! Is it possible to write an app to wake up the device when external power is connected?Anonymous
November 20, 2007
Alz, does the device you want to write this app for have a touch screen? There are two flavors of Windows Mobile, "Professional" (aka "PocketPC") and "Standard" (aka "Smartphone"). The easiest way to tell which you have is that PocketPC's have a touch screen and Smartphones don't. When a PocketPC goes to sleep, the CPU turns off completely. So there's no way to write an app that runs while the PocketPC is asleep. If this is the type of device you have, then, no, you can't write an app to wake it up on external power. Some OEMs have designed their hardware to enable waking up on external power, though. You might find a setting for this under Settings. When a Smartphone goes to "sleep" it turns off the screen and puts the CPU into a low power state, but keeps the CPU able to run applications. Because the CPU is still able to run, it's possible to write apps that do things in this state. "Wake up" in this case, though, really amounts to turning on the screen. MikeAnonymous
February 07, 2008
Hi Mike, your Article on power consumption is really helpfull! could you please help me to get the following info: 1.Is there any tool or microsoft powertoy that could help,monitor the amount of power an executable on the windows mobile smartphone is consuming ? Regards, VijayAnonymous
March 18, 2008
Craig Hockenberry is a smart guy. He's been around for a while, and has an impressive track record in the Mac software world. I don't, but that's not going to stop me from arguing with him about background apps on...Anonymous
July 22, 2008
Over the years, I’ve delivered several “Top 10” sessions and called them different things. Top Snafus,Anonymous
October 24, 2008
The comment has been removedAnonymous
October 26, 2008
Mike, Thanks for another interesting and informative article. A follow-up on PPC power consumption would be most appreciated. Thanks, www.smartphoneexchange.comAnonymous
January 13, 2009
thanks for the info.. but i assume a counter act will be there in future to keep the battery life not consumed too much while maintaining the same speed. regards, http://mobiletimes.inAnonymous
February 11, 2009
hey plzzzzzzzzzzzzzzzz i want to convert my htc p3300 to wm6 how? plz tell me step by step and from whereAnonymous
March 03, 2009
The comment has been removedAnonymous
March 19, 2009
Hi Friends, I want to start or develop small windows mobile application, i have gone through MSDN library http://msdn.microsoft.com/en-us/library/bb158509.aspx and followed all sets to set development environment,
- Installation of Windows XP SP2,
- Microsoft Visual Studio 2006,
- Microsoft .NET Compact Framework
- ActiveSync 4.5.
- Windows Mobile 6 Professional SDK, but now i am unable to know that what should i do next to start develop a application for windows mobile............... I am confused with following points...
- In Visual Studio which type of project should i select ... (e.g. Win console application for desktop development)
- Should and how i link mobile SDK 6.0 and Visual studio 6.0.... Please help me in this topic ... Please send a solution if u have on folowing mail id .... nandu0007@gmail.com
- Anonymous
March 20, 2009
Hi Narendra, Here is a quick walkthrough for creating a Hello World application on WM6 with Visual Studio 2005. There are probably simpler Hello Worlds, but it should get you started. http://msdn.microsoft.com/en-us/library/bb158524.aspx If you have Visual Studio 2008, the process is similiar, but there are a few differences. Take a look at http://msdn.microsoft.com/en-us/windowsmobile/bb250560.aspx for more details. Does that help? Joshua