How to Get Perfect GPS Tracking From iPhone
Some time ago I had a good friend explain to me how GPS works. It seems that it uses the CPU to create a mesh of the signals from the various GPS satellites tracking around the Earth. The signal is very faint, so it has to use DSP to improve the quality of the signal, and then begin to tighten down the mesh until the grid square that the device is in is small enough to provide reasonable accuracy. To obtain altitude, the device has to find a signal from a 4th satellite that is at something of a horizontal to you to figure out how high you are relative to sea level. Finding this satellite takes a while which is why current GPS devices are so terrible and take so long to determine altitude.
The iPhone, and other phones, get a boost in speed by using the cellular network to get a rough location, and to download the locations of the satellites instead of trying to get it from the satellite network itself. This is called aGPS, which is what the iPhone uses.
Another piece of information I discovered with a few friends a while back was that when the iPhone is either on a congested Wi-Fi network, or is hunting for Wi-Fi, in addition to draining the battery, the performance of the CPU is degraded, especially on 3D gaming.
Recently on my last ride, I put these things together and turned off 3G ( leaving EDGE on ), turned off Wi-Fi, in addition to disabling push notification and setting fetching for email to manual, turned off bluetooth, and disabled auto-lock. This left my iPhone in a near airplane mode state. After my ride, I reviewed the map and to my surprise all of the inaccuracies I was blaming on my iPhone having subpar GPS went away. The tracking was perfect, the best I’ve seen as well as having fairly little battery consumption. I’m not sure what impact 3G has on the CPU, but it is likely significant as I had done some of these other things in the past and not had such rock solid GPS tracking before.
I think I’ve found a new riding configuration, if only Apple would update the settings application to give me custom settings bundles so that I could drop it into my riding configuration with one tap. Maybe for iPhone OS 4.0?
