What are your expectations?
I've had iPhones since the beginning and hacked them all. When I was using the 3G, I spent the vast majority of the time leaving it on GPRS-only (I use Vodafone in the UK, no EDGE) because of a combination of the fact that the 3G baseband occasionally got into a loop when transmitting 3G data and switching between cell towers (causing the phone to eat the battery rapido and get *very* hot), and that I thought that the main battery drain was 3G.
I'm now not so sure. I'm still trying to replicate the 3G cell-tower switch loop problem with the 3GS (the baseband is the same in the 3GS as the 3G, but there have been updates since the particular one I was running), but I'm coming to the opinion that it's searching for Wifi that is the big one.
Now MobileSubstrate is safe on the 3GS, I'm using SBSettings to quickly switch the various functions on and off (and checking using Terminal.app and the CLI tools).
My usual procedure is to pick the iPhone out of the charger / holder in the morning, go to work, don't charge it at work, come home, and only connect to charge when I go to bed or if I need to sync some tunes onto the phone (everything else syncs over the network). So I haven't tried longer than single-day tests, but it's very clear when one day has eaten more battery than another.
Firstly, my usual method was to leave 3G off, and use GPRS instead because of my mistaken belief that 3G ate too much power (and my train journey into London and back sometimes caused the baseband bug). My data use is light but regular - IMAP email on regular fetch from my OS X servers, plus a MobileMe account, and Bloomberg news and text-only news websites / forums. GPRS is slow but just about usable for this.
The 3GS ended the day with 60% battery life remaining - which was a lot less than the old 3G, which could do the same day with 80% remaining. I was hacking about a lot more with the 3GS though because it's so much faster it can do so much more...
So I tried putting 3G on for the day - and it ended up with 55% battery life remaining. 3G is *not* the problem.
I noticed that as the train travelled through London, even though I had 3G off, and 'light power' GPRS on, I'd constantly get Wifi popups asking about joining networks - this must really eat power so I tried switching Wifi off for a day, and using 3G instead (until I got home where there is a secure Wifi network). 80% at end of day.
The 3GS is also a LOT more aggressive at shutting down the Wifi when the screen blanks out - irritating if you're on an SSH session to the phone - so I've had to install Insomnia which works well.
I reckon the Wifi on the 3GS is either a bit more powerful or it checks for networks more frequently, because the change in battery consumption when I switched it off for the work day was very noticeable and more so than my 3G.
Note that I only do 'work' stuff and hacking with my iPhone - I don't play games much, and the 3GS is *so* much faster than the other models that the CPU must eat a lot more power. I'd guess any regular game playing would drain the battery much faster on a 3GS than an old 3G.
These are just anecdotal observations made over the last few days since I've got the thing up and running the way I want to (i.e. jailbroken and with certain tools) - it's not proper controlled data. But Wifi seems to make a lot more difference than the 3G radio. I'll try to do some more controlled tests.
Obviously check for runaway OS processes - though Terminal.app always seems to start upside down for me, it more or less works, and can tell me if something is taking up more CPU than expected. It's difficult to tell if the baseband processor is stuck in a loop and burning through battery though, other than unexpected heat and short battery life. Anyone know if there are any commands you can send through minicom to check how active the BB CPU is?
|