In reply to G4OWG:
GPS is always going to be power hungry. Our software is used by the chip makers to play with power optimisation and it’s surprising how much of the phone can be shutdown when you aren’t actually making a call but just sat there “sniffing” the network for incoming messages etc.
But with GPS, timing is everything. Simply maintaining lock of the spread C/A signal only gives +/-300m accuracy. If you can’t keep the time sync accurate you appear to jump about in position. So 1mS error will make your position jump back and forwards 300m. A 100nS error is 30m. If you try to shutdown the GPS and power it up you have to wait to regain code lock then fine tune your position. That can take a few seconds. The end result is a lot of the GPS electronics stays running all the time and that sucks the life out of the battery.
If you use an external GPS then from the phone’s view, it only talks over Bluetooth every sec. Bluetooth is 1600 slots/sec and max sleep time is 2secs without dropping into park mode. So for 1 position report from the external GPS the Bluetooth RX can sleep for 1596 slots then wake up, spend up to 4 slots regaining timing sync with the GPS, grab the position data into 2 slots and go back to sleep. The power saving is huge compared to having GPS on all the time. The apps CPU can wake up, chew on the data, decide you’ve not moved (or you GPS timing is good!) and sleep again in few hundred uS. Again not much current draw. It only really eats into the battery if it has to transmit your position.
The only reason non-smart phones had standby times of 10days was because they were hardly ever active. They also had a simple slow application/UI CPU and single GSM/CMDA core. Early smart phones like my E71 had a 380MHz ARM11 CPU with a few cores for GPS/Bluetooth/Wifi. Even with it all on there’s not much happening very fast! One of the modern Android phones uses an SoC we’ve worked on that features 1x dual core ARM Cortex A9 apps CPU at 1.2GHz, 2x 324MHz ARM1136 CPU for stuff, MPEG encode/decode audio/video core, GPU, 5x ARM7 CPUs for housekeeping, 600MHz 32bit DSP, USB, MMC/SD, GPS, Wifi, Bluetooth, GSM/3G/CDMA cores plus 7 band RF RX/TX, Wifi RX/TX, Bluetooth RX/TX. And it all fits in your pocket! But if you use it the battery dies quickly.
I remember back to my first analogue cell phone which had a standby time of about 20hrs. So considering what you get now in a smart phone it’s really impressive you get any battery life at all.