The iOS 8 Battery Usage screen in Settings

iPhone Gets Hot, Battery Drains Rapidly – How I Fixed It

The short version: how I diagnosed and fixed an issue that was causing multiple iPhones and an iPad to get hot and drain their batteries. This is the nitty gritty on how I fixed the problem. Read on below for all the details, and how I let my Apple bias (almost) lead me away from the correct answer.

Update 4: If you haven’t heard, iOS 8 adds a great new feature to track battery usage by app, so you can see which app, specifically, is draining your battery. This is a FANTASTIC addition for troubleshooting this kind of problem. Find it at Settings > General > Usage > Battery Usage, and learn more about it here.

The iOS 8 Battery Usage screen in Settings

The iOS 8 Battery Usage screen in Settings

Update 3: A kind reader pointed out that as of iOS 7, the location for the app crash logs is now Settings > Privacy > Diagnostics & Usage > Diagnostics & Usage Data (instead of Settings > General > About > Diagnostics & Usage > Diagnostics & Usage Data). Thanks, John!

Update 2: A lot of people have contacted me to let me know the things I documented in this post helped them solve their battery issue. That makes me really happy. Recently, there was another popular post by former Apple Genius Scotty Loveless with some more great steps to diagnose and fix iPhone battery issues. You should definitely check it out: The Ultimate Guide to Solving iOS Battery Drain

Update: Apple released iOS 6.1.2 on February 19, 2013, which is slated to fix some Exchange-related bugs that can cause the problem I describe in this post. Make sure you’re running 6.1.2 or newer if you’re experiencing this problem.

Troubleshooting Excessive Heat and Battery Drain Issues on iOS Devices

Problem: iPhone (or iPad) gets abnormally warm when not doing anything. battery drains much faster than normal. Rebooting doesn’t fix it.

Troubleshooting Steps:

  1. Follow all of Apple’s battery life troubleshooting steps. No, really. Do all of them. Don’t skip any. I know you’re a super smart nerd. Just do them.
  2. Go to Settings, General, About, Diagnostics & Usage, Diagnostic & Usage Data. Scroll through the list and see if there are any system processes with an abnormally large number of entries (a few entries is normal). Identify the name of the troubled process.
  3. Research the name of the troubled system process to see what it’s function is – this will give you a clue to a possible solution. For example, dataaccessd is responsible for background syncing of Exchange, iCloud, CalDAV, and other calendar data. This was the cause of my problem. Others have reported issues with webbookmarksd, the process responsible for syncing bookmarks and Reading List with iCloud.
  4. Try disabling the functionality related to the troubled process, then rebooting your device to see if the issue goes away. In my case, I disabled all iCloud syncing (Calendars, Contacts, etc.). If you have an Exchange email/calendar account, remove it from your device. Make sure the server side has all of your data, because this step will delete it from your device.
  5. If the issue is resolved, try reenabling the functionality. Again, in my case, I turned iCloud syncing back on, and the issue hasn’t returned. I suspect a corrupt meeting instance that was deleted days ago was causing the problem.
  6. Going forward, use what you’ve learned about the Diagnostic & Usage data logs to keep an eye on your battery usage. If you desire, try a third party “activity monitor”-type app to see what system processes are doing. I used this free one. There are many to choose from.

Background, Details, Lessons Learned, Crow Eaten

The long version:

Prior to getting the iPhone 5, my iPhones spent a lot of time in a dock on my desk, or in a cradle in my car, being charged. I had no real idea of what “normal” battery life was like, because I was always near a charger. When I got my iPhone 5, with its new Lightning connector, none of my old intraday charging options worked anymore. For the first time, I got a sense of what “normal” battery life on my iPhone should be. I took it off the charger in the morning, used it normally throughout the day (i.e. took no special steps to preserve battery life), and by bedtime, I’d sometimes hit the 20% battery warning. Maybe 10% if I was using it heavily. Not once did it drain to zero and shut off. A typical day was an hour or so of listening to podcasts, one or two short phone calls, and an hour or so of browsing Twitter/Reddit/Facebook or reading in the Kindle app during lunchtime. I even left Dark Sky notifications (which actively uses GPS) and Instapaper Background Location Updates (which uses geofencing) enabled. Based on this, I had confidence that I could get through the day without charging, following my normal usage patterns.

A couple of weeks ago, I noticed that I was getting the 20% and 10% battery warning in late afternoon, and more than once, my phone would completely shut down when I pulled it out of my pocket in the evening. It was often quite warm (I could feel it on my leg). I was annoyed, but I figured that I was just using it too much. But at this point, I started to pay more attention to how much I used the phone, and where the battery was at throughout the day.

Around the same time, my wife complained to me that her iPhone 4S was getting hot for no reason, and the battery was draining quickly. Essentially the same symptoms. My wife’s charging habits are much different from mine (I charge religiously every night, she charges when the battery gets low), so I couldn’t make a direct comparison between our usage habits. But this coincidence raised my alert level another notch, and I started thinking about what could be causing the issue.

Here’s what I ruled out:

  • iOS Version – I have 6.0.1, she has 6.0. So it wasn’t something introduced in the 6.0.1 update, and both of us had used 6.0 for weeks with no problems.
  • LTE – My iPhone 5 has LTE, but her 4S doesn’t. Again, I used LTE for weeks with no issues.
  • Bluetooth – not enabled on either phone
  • Apps running in the background – besides the fact that Apple doesn’t let apps fully run in the background (there are a limited set of background APIs an app can use, like requesting location, playing audio, etc.), I did some troubleshooting to rule this out. Fresh restart of the phone, didn’t open any apps, and it would still get hot and drain the battery.

This is the part where I start jumping to conclusions, and being blinded by my own bias.

The only thing (I thought) our afflicted iPhones had in common was the AT&T network. I imagined that there was some issue with the AT&T network in our area (a misconfigured tower, etc.) that was causing the phones to crank up power to the cellular radios, get hot, and drain their batteries. If you’ve ever used a cell phone in an area with very minimal coverage, you know what I mean. In order to hold onto the signal, software turns up the transmit power on the radios. In my head, this was the only explanation for our problem. Apple doesn’t let apps run away in the background, and I didn’t even consider that it could be something integral to iOS itself. So I took to the interwebs, ranting and complaining:

Then some new clues popped up that eventually led me to the solution to our problem. And a nice, big helping of crow.

I got three emails, in close succession, informing me that I only had 5% (then 4%, then 3%) remaining on my iPad’s monthly data plan. I picked up my iPad, and it was warm, and the battery was lower than it should have been (49%, and it had hardly been used that day). Whatever this supposed AT&T network problem was, it was now affecting my iPad. My iPad with Verizon LTE. I don’t use LTE much on my iPad when I’m not traveling, because I’m always near wifi. I’ve never even come close to using my monthly allotment of 2GB. I concluded that something was chewing up large amounts of cellular data (and battery), just like our phones, but it couldn’t be AT&T’s fault. Humbling realization number one. I started searching for people with similar problems (and hopefully, solutions). I found a TON of results, which were hard to wade through. I knew this was a vague enough problem that finding specific, helpful information was going to be a challenge. I found lots of forum threads full of people with similar issues. These threads pointed out that you can check detailed system logs for crashes or other issues by going to Settings, General, About, Diagnostics & Usage, Diagnostics & Usage Data. Now, I’ve done my time in IT support. I know how to use logs to troubleshoot issues. I just assumed that the nice, clean Apple-designed world of iOS wouldn’t let me get at system-level event logs to gain any useful information. That it would all be locked up in a black box that only the Genius Bar could open with their magical incantations. I was wrong. It’s all right there, for anyone who wants to look. Humbling realization number two. This led to the final clue, and the solution to our problem. In the Diagnostic and Usage data, there were hundreds of entries for a system process called dataaccessd. It was crashing frequently. I downloaded a free Activity Monitor-like app to let me monitor those system level processes, and I saw that dataaccessd was essentially running amok – pegging the CPU and the network, and constantly working really hard to do whatever it was trying to do. More research revealed that dataaccessd‘s job is synchronizing calendar data for Exchange, CalDAV, and iCloud accounts. Many people in the forums reported success by disabling Exchange calendar sync. I use Exchange calendars for my work stuff, by my wife doesn’t. So it wasn’t that. Could it be iCloud? I suddenly recalled some weird iCloud calendar issues we’d been having. An apparently corrupt meeting from work that somehow landed on one of my iCloud calendars that I couldn’t delete. My wife complaining about events being added on her phone but not showing up on the Mac at home. Maybe it was iCloud.

I had gotten so frustrated with this problem that I could pick up my phone and tell by its temperature whether or not it was experiencing the issue. I could feel it get hot, and watch the battery percentage drop before my eyes. So I disabled iCloud completely (removing all my calendars, contacts, etc.), rebooted the phone, and waited. Several minutes later – long enough that the battery would have dropped a couple of percent if it were still having problems – the phone was perfectly cool to the touch, and the battery percent was exactly the same. The activity monitor app no longer showed dataaccessd going crazy. Disabling iCloud had fixed the problem. This was Apple’s fault, not AT&T’s fault. Humbling realization number three.

Many of the threads I read reported success by disabling then re-enabling Exchange (or iCloud), so I tentatively turned it back on, letting all of my data sync back, and watched it carefully over the rest of the evening and the following morning to make sure. It stayed cool as a cucumber, and the battery is back to the strong performance I was getting a couple of weeks ago. I did the same to my iPad and my wife’s phone, and they’re all back to normal, as well.

I can’t say with 100% certainly, but there’s a calendar item that I got from my Exchange account that I’m pretty sure was corrupt (it ended up on my iCloud calendar for some reason, and I couldn’t delete it), and I bet that’s what caused iCloud to go crazy.

What did I learn?

I didn’t want to admit that the problem could be Apple’s fault. My bias led me to prematurely place the blame on AT&T, and it had nothing to do with them.

There are useful diagnostic logs available on your iOS device. I should learn more about these. Ironically, the Apple bias that made me reluctant to blame them also made me reluctant to believe that they would provide the system-level diagnostics to solve the problem.

I’m not as smart as I thought I was. Making assumptions about what you think you know is dangerous, and often leads not only to the wrong answers, but to looking dumb in public.

I do not like the taste of crow, but I believe it’s healthy to eat it when you need to.


3G Cellular Data Coverage on the Oregon Coast

Living in Portland, we frequently visit the Oregon Coast (at least once or twice a year). It’s only about an hour’s drive away, and it’s breathtakingly beautiful. Some of our favorite places to go are Tillamook (the cheese and ice cream factory!), Cannon Beach (Mo’s and Tolovana Park are great, as is Ecola State Park), Seaside (kitschy promenade, etc.), Lincoln City, and Newport. There are tons of really nice little towns along the coast, too. Honestly, my favorite coast activity is just driving Highway 101 – the road is fun, and the scenery is out of this world.

Bye bye beach!

We took a little family vacation to the coast last weekend, and of course, I can’t turn off my geeky parts (though I did leave the laptop at home – a first for me!). So I was paying attention to what kind of cell phone data coverage I was seeing, whether it was 3G or not, and what kind of speeds I was getting. I had three devices with me to test: my iPhone 3G, my wife Rachel’s original iPhone, and my Amazon Kindle, with it’s cellular “Whispernet” radio that works on Sprint’s EVDO data network.

In the past, cell phone coverage (even for voice) was spotty. You were probably OK if you were in one of the big towns, but outside that, you were out of luck. Data coverage was slow and spotty. Things have improved greatly in the last few years, and the one impression I got from this trip was that not only has cell coverage in general gotten MUCH better on the Oregon coast, 3G has arrived in a big way. It was really nice to be able to stay connected so well.

First, the iPhones on AT&T’s network. When they first started rolling out 3G (before the iPhone), the fast HSDPA data service was only available in 20 or so major metro areas. Cities like Portland and Seattle were covered, but not the towns in between, and not at the coast. AT&T has been building out it’s 3G network at an aggressive rate – no doubt in part because of the iPhone 3G. This weekend, except for localized “dead spots” (like our hotel room, in a deep hollow and right on the beach), where I didn’t have much signal at all, I had great AT&T 3G HSDPA coverage in all of the towns we stopped in: Seaside, Cannon Beach, Tillamook, Lincoln City, and Newport. I did some speed tests in a few places, and averaged roughly 600Kbps – about the same I get in the Portland suburbs.

DSLReports iPhone Speed Test - Much Improved

I also did a few tests on my Kindle. I honestly wasn’t expecting much coverage, but I was pleasantly surprised. In the places I checked (mostly in Lincoln City, where we were staying), I had 4 or 5 bars of EVDO signal, and while I didn’t do any speed tests, it felt just as zippy as anywhere else I’ve used it. Which was great, because I really, REALLY needed to download the book Breaking Dawn (book 4 in the Twilight teen vampire saga – guilty pleasure!) the instant it became available at midnight EST on Saturday night. 😉 At 9:02PM PST, I made the purchase, and less than a minute later, I started reading (the book is EXCELLENT, by the way! – Affiliate links to the hardcover and Kindle editions).

So, it’s nice to see that the cell carriers (well, AT&T and Sprint, at least) are improving their coverage on the Oregon Coast. Now I can count on staying connected when I’m there, and a few people have asked me about my experiences with coverage there, so hopefully they’ll find this post through Google or however, and get their questions answered.

Maybe next time I’ll have more time to sit and read or surf or whatever – we took our two kids, Emma (5) and Gabe (almost 2), so this wasn’t exactly a “sit around and relax” kind of vacation. In fact, now that we’re home, I feel like I need ANOTHER vacation to recover. 😉


History of Software on the iPhone – A Prelude

My iPhone is now an iBrick. Here’s how it happened, what I learned, how it felt, and what you might be able to learn from the whole thing. I’ll write up the details of that story in a separate post. This one is for background.

My Line Waiting Assistants

I am a HUGE iPhone fan. I camped out on release day to be number one in line. I’ve used the heck out of my iPhone every single day since I got it. I’ve taught other people how great they are, answered countless questions about it, and generally been a huge fan.

Getting Ready to Activate

I have had many, many mobile devices, and understand that since the operating system for most devices resides in flash ROM, and isn’t meant to be readily modified, you can’t expect the device manufacturer to help you fix problems you run into with a modified device. This hasn’t prevented lively developer communities from springing up around popular devices – like XDA-Developers, etc. – to help power users get even more functionality and fun from their devices.

Soon after the iPhone was launched on June 29, 2007, such a developer community popped up around it. Even though Apple made it very clear that they didn’t intend to support iPhone developers at all. “Make web applications. That’s good enough.” was the edict from Cupertino. Most people I know, from real developers to regular old users were miffed that Apple wasn’t releasing a Software Development Kit (SDK) to make applications for the iPhone. So the development community took matters into its own hands.

It ranged from people like Joe Hewitt (of Firebug and now Facebook fame – he’s the guy that wrote Facebook’s iPhone UI, which has been featured in Steve Jobs keynotes) engineering and releasing tools like iUI to make better web applications to the dedicated hackers who figured out how to get your own applications to install and run on the iPhone. Following best practices from the Linux world, they gave people how were willing to “jailbreak” their iPhone the ability to run Nullriver’s AppTapp – a package manager that opened the door to browse and install dozens of iPhone applications.

Apps installed on my iPhone, 9/11/07

There was an uneasy stalemate between Apple and the iPhone developers. Apple openly admitted that they weren’t going to support these 3rd party developers, but they weren’t going to try to stop them, either. On September 11, 2007, Gearlog published this quote from an interview with Greg Joswiak, VP of Hardware Product Marketing at Apple:

I asked him about independent, native software development for the iPhone. He said Apple doesn’t oppose native application development, which was new to me. Rather, Apple takes a neutral stance – they’re not going to stop anyone from writing apps, and they’re not going to maliciously design software updates to break the native apps, but they’re not going to care if their software updates accidentally break the native apps either.

In other words, iPhone “hacking” would follow the same path as other mobile devices, like Windows Mobile, iPods, etc. No one expected Apple to help customers make 3rd party applications work. Everyone knew that the most you could expect from Apple was a complete wipe and restore back to factory new settings. In fact, when iPhone updates 1.0.1 and 1.0.2 were released, this is exactly what happened. If you had “jailbroken” your iPhone and installed 3rd party apps, the device was wiped and restored to Apple’s known good “clean” state. No more than two weeks later, Apple radically reversed its position on this issue.

The Smugness

Then came the seemingly similar activity of “unlocking” iPhones to work on cellular carriers other than AT&T. The iPhone is a unique device in that it’s extraordinarily locked down, meant only to work if you have a valid account with AT&T. Without active AT&T service, you couldn’t use any of the other features of the iPhone. No wifi web browsing, no iPod media playback, nothing. So the people outside of AT&T service area (the whole world outside the United States), and people who couldn’t or didn’t want to switch to AT&T could never have an iPhone, under Apple and AT&Ts rules. Many people felt this was unfair and dictatorial, and It’s interesting to note that the U.S. Federal Trade Commission (FTC) requires U.S. cell phone carriers to SIM unlock customers’ phones upon request, for overseas travel, or any other reason.

Mac Book Pro and iPhone

So the development community set to work on a “SIM unlock” for the iPhone, which modified the radio/baseband part of the iPhone firmware to allow it to use ANY SIM card from ANY carrier. The unlocking apps were released. The world rejoiced. And no one expected Apple to support iPhones that weren’t on the AT&T network. Just like installing 3rd party applications, the most you could expect Apple to do would be to wipe and restore your iPhone to its original state.

An application called anySIM was the first free version of these unlocking apps. It was made available through the popular and simple package system (it was pulled a few hours later). During the time it was available, I downloaded it. I didn’t need or want to unlock my iPhone – I’m happy with AT&T’s service (we have two lines of service in our family), and I didn’t even have a non-AT&T SIM card that I could use to test and see if the unlock worked. But I’m a geek and an enthusiast and a blogger, so I ran the unlock software, if only to document the process, just like all the other 3rd party software installations I had done.

And that’s where all the trouble started…

(Click here to read the next part of the saga: I admit it – I ran anySIM to unlock my iPhone (a photo story))