A reader writes:
I turned off the 3G on my phone before getting on the plane at Heathrow, and the phone then lasted 6 days before it needed to be charged. Which tells me that, as I continued to occasionally play games on my phone when bored, that the problem with the battery life on my phone is nothing to do with what the phone is doing (the CPU meter tells me that the phone is doing very little the majority of the time) but simply being attached to a phone mast.
What I'd love to know is whether it's really bad radio hardware/firmware that sucks up the battery, or whether having the radio on constantly triggers the phone's OS into wakefulness, interrupting it many times per second to tell it it's still there.
As I turned my phone off to board the plane to Seville last Thursday afternoon, I turned off my phone, but before that I turned off its wifi and 3g so that I wouldn’t accidentally end up data roaming and costing myself mega bucks.And I mention this because I had _exactly_ the same experience in India. Except that I actually have Wifi off on my phone whenever I'm out of the flat anyway, because there are no free Wifi points at work, and it sucks battery like a ill-thought-out metaphor.
After being at 100% charge that morning, it was already down to about 75% from being used during the day, for maybe 6 hours. I then stayed in a small village in a hostel for 4 days before heading back to Seville for a couple of days of post festival wind down.
On Monday afternoon as I got to the hotel back in Seville, I turned the wifi back on. I think I turned my phone off for one night as I slept in the previous 4 days. It still had 17% charge.
So a quarter of a day with wifi and 3g switched on takes 25% of the charge. 4 straight days (still checking/texting every so often) took about 60%.
With wifi/3g I lose 4% per hour, without I lose 0.6%. I knew it sucked power, but seriously?
I turned off the 3G on my phone before getting on the plane at Heathrow, and the phone then lasted 6 days before it needed to be charged. Which tells me that, as I continued to occasionally play games on my phone when bored, that the problem with the battery life on my phone is nothing to do with what the phone is doing (the CPU meter tells me that the phone is doing very little the majority of the time) but simply being attached to a phone mast.
What I'd love to know is whether it's really bad radio hardware/firmware that sucks up the battery, or whether having the radio on constantly triggers the phone's OS into wakefulness, interrupting it many times per second to tell it it's still there.
no subject
Date: 2011-09-16 06:00 pm (UTC)no subject
Date: 2011-09-16 06:13 pm (UTC)It's one of the reasons BlackBerry battery life is so good - the radio firmware terminates calls as soon as a transaction ends without waiting for SYN/FIN to complete. The BES or BIS proxies handle tearing down the connection. A 3G BlackBerry ends up with 3 days or so life as a result.
But yes, turning off data and switching to 2G can save a lot of power.
no subject
Date: 2011-09-16 06:15 pm (UTC)What's a "cycle" in this context?
no subject
Date: 2011-09-16 06:19 pm (UTC)I'm sure anandtech did an article about the way a phone connects to a cellular tower and how the authentication process works. Presumably the handshake process involves the baseband chip being run at a higher P state.
Of course there's the joys of LTE/4G battery lives to come, which seem worse than 3G.
no subject
Date: 2011-09-16 06:20 pm (UTC)Things get worse of course when you consider adding in base station registrations and pinging. Registration requires a progressive ramp up in power until a cell is contacted, and most operators have been setting up cells at the minimum possible density to save power.
no subject
Date: 2011-09-16 06:22 pm (UTC)no subject
Date: 2011-09-16 06:22 pm (UTC)There's been a whole stream on it here at BUILD.
no subject
Date: 2011-09-16 06:28 pm (UTC)Also cell changes, one reason why 2G is significantly better, the cells around 8 times larger than 3G.
no subject
Date: 2011-09-16 06:30 pm (UTC)no subject
Date: 2011-09-16 06:31 pm (UTC)no subject
Date: 2011-09-16 06:33 pm (UTC)I just checked; it's at 91% at 1431 local... and I know I left the house before 1000, so that's 9% in 4.5 hours.
no subject
Date: 2011-09-16 06:52 pm (UTC)no subject
Date: 2011-09-16 06:55 pm (UTC)Just out of interest since i started using the HD, i've put my hero into airplane mode. Without being used at all, the battery has currently lasted 30 days and still doesn't need charged (although i think it may soon, when i checked it was down to about 15%)
no subject
Date: 2011-09-16 07:03 pm (UTC)Whether that's accurate or not, I don't know, since I am not a techie person :-D
no subject
Date: 2011-09-16 07:13 pm (UTC)- Radio Stack management: even with data turned off, holding a connection to a live voice network is a complicated thing to do - you're talking to different cell stations, checking in with the network and doing a bunch of other stuff - there is nothing about simple about "being attached to a phone mast"
- Crap drivers - basically crap, nothing but crap. Crap graphics, crap boot loader, crap, crap with added crap - so you've memory leaks, and stuff spinning up and not spinning down that just sits there in memory eating milli-amps
- More Crap drivers
- Poor interupt handling design in the OS - Windows Phone was bad for this. iPhone isn't great. Android is pretty horrible too. Every time your phone screen comes on, does nothing and then lets you know you missed a call and have a voice mail, you've just hosed power without even ringing
- Have I mentioned crap drivers?
Basically, phones are a mess.
I know engineers you can talk to if you really want to get bored rigid.
-
no subject
Date: 2011-09-16 07:18 pm (UTC)I assume that better interrupt handling and drivers was the reason why Nokia was able to put out phones with better battery life.
no subject
Date: 2011-09-16 07:21 pm (UTC)Even a simple 2G stack is doing a lot when it's turned on:
- checking the strengths of the local cell landscape
- keeping an eye on the signalling channel for incoming SMS
- negotiating the handover to another tower
- rinse-repeat
WCDMA is WAYYYYY harder and more processor intensive.
I think the metrics I heard were that a typical 2G stack is about 100,000 lines of code, whereas a 3G one is something like a million...
no subject
Date: 2011-09-16 07:23 pm (UTC)They also have the advantage of owning the entire stack and having a hell of a lot of control over the hardware going into it.
no subject
Date: 2011-09-16 07:47 pm (UTC)And being a technically incompetent, apple licking Jobs-aphile will likely get an iPhone 5 ;)
(though not necessarily and I'd definitely not do it blindly, but I generally don't want all the extra bits of control others do on my phone and this one does plenty for me in terms of ringing people/texting/looking at the internet, in a way that the GUI inevitably works the way I expect it to and I never have to look at a instruction manual)
no subject
Date: 2011-09-16 07:48 pm (UTC)no subject
Date: 2011-09-16 08:33 pm (UTC)Luckily I can switch my current phone to airplane mode, and it takes the same batteries my old phone did.
Now, if only Sony Ericsson had an android phone that used the same batteries....
no subject
Date: 2011-09-16 08:37 pm (UTC)no subject
Date: 2011-09-16 08:41 pm (UTC)no subject
Date: 2011-09-16 08:54 pm (UTC)Or will we still have two separate apps technologies?
no subject
Date: 2011-09-16 09:19 pm (UTC)WinRT is a *lot* closer to the WP7/7.5 APIs than Win32, which makes me wonder about WP8 - which is about a year away. If they don't merge dev models then, I seriously expect a combined Windows 9 OS (that's not Windows) that supports phone, desktop/laptop/tablet and XBOX, what I'm thinking of as the first ubicomp OS. We've certainly seen elements of it here, especially with the deprecation of Win32.
no subject
Date: 2011-09-16 09:20 pm (UTC)no subject
Date: 2011-09-16 09:21 pm (UTC)But yes, it's been really interesting. I'm looking forward to conversations with folk in Redmond next week now they can talk about stuff.
no subject
Date: 2011-09-16 09:25 pm (UTC)But it still does everything I need better than a friends iPhone4, which suits me fine. Sure, there can be RAM issues if I'm running huge numbers of apps/tabs, but that's me being daft.
no subject
Date: 2011-09-16 11:04 pm (UTC)However I totally agree with how much the 3G and wifi drains the battery - When i was in the states I was charging every 3 - 4 days.
no subject
Date: 2011-09-17 12:31 am (UTC)Number two thing I do if I'm going to the Land of No Electricity Supply is to take my iPad, which solves most of these problems handily by having a MASSIVE BATTERY OF DOOM.
no subject
Date: 2011-09-17 07:43 am (UTC)no subject
Date: 2011-09-17 08:43 am (UTC)no subject
Date: 2011-09-19 06:59 pm (UTC)In a modern smartphone the OS you use has very little interaction with the radios. This is because no sane system designer is going to let Windows Mobile, iOS or even Linux anywhere near that level of hard realtime work, let alone whilst also supporting arbitrary user-loaded applications. So the radio drivers run on a totally separate OS on a different core.
Back in 2008 I helped to do the Linux port to the Qualcomm MSM7200 smartphone chipset, which was used in the HTC Kaiser and some other handsets that originally shipped with Windows Mobile. It was a reverse engineering job: there was no public documentation for that chipset but we had the kernel code Google had just released for the very similar MSM7201A used in the G1, and we could poke into what Windows Mobile did on the phone.
On that chipset there were two cores, an ARM11 which ran Windows Mobile (or once we were done, Linux and Android), and an ARM9 which ran the radio code. From the firmware image for it we had figured out that the radio core ran an L4 microkernel, but beyond that it was a black box.
The two cores communicated via a small area of shared memory, arranged in circular buffers. Code on one core would write into one of these areas and update a counter indicating where it had written up to; code on the other core would read up to there and update another counter to say it had done so, allowing the sending side to then reuse the memory. There were several of these buffer/pointer structures, some on their own and some in pairs to provide a bidirectional channel.
One two-way channel provided an AT-command interface to the GSM modem, one gave a one-way NMEA stream from the GPS, etc etc. All we had to do in order to drive the radio hardware was to use those serial interfaces, twiddle a few other bits here and there to turn things on and off, and catch the odd interrupt to say a text message had come in or whatever.
In general the whole system was set up so the user OS had to do as little as possible: e.g. in a call, audio was routed directly from the radio core to the DSP which drove the analogue outputs - the OS core never even saw it.
Obviously the hardware has moved on a bit in the last couple of years but I think you will still find the same basic design philosophy in current phones.
So, if you want to save battery, keep your radios off and turn them on manually only when you want them. Unless things have changed a lot then the OS core probably has little more than on/off control for each radio. Meanwhile, the radio core probably has no idea what's happening on the OS side so it's not going to be that intelligent about whether to keep various aspects of communications going just in case you're about to do something.
I keep the Power Control applet on my Android homescreen for exactly this reason, and get days out of my Desire Z battery.
no subject
Date: 2011-09-19 07:40 pm (UTC)Sadly, I like getting emails when they arrive, so turning off the phones radios entirely isn't an option. Shame, really. I shall just have to hope that they get better at managing the power drain on them.