[HD2 Android NAND Development] memin1857:
Some info on GPS and AGPS

I will try to keep this as simple as possible for general public.

- A GPS receiver (such as the one in the HTC HD2) listens to signals transmitted down to earth from gps satellites and by using the information can calculate where you are located with high accuracy.

- The signal is very weak and very slow. A full message is transmitted every 30 seconds and a gps receiver needs to learn current sat information by listening to the message. It needs to be able to receive the full message so it usually takes about 1 minute to get a lock/fix on gps but may take longer.

- AGPS means assisted gps and it consists of a gps receiver located on top of a building that continuously listens to gps messages and shares the information on the internet for agps capable hardware.

- With proper AGPS, cold starts (meaning first lock without sat info) is usually between 5-10 seconds because the phone does not need to listen to whole message since it already learned it from the internet. (so an active data connection is required, but very little bandwidth is used)

- After an initial lock (with or without agps) relocks within few hours to half a day will be very fast since the reasonably accurate sat info is already known and hasn't expired.

- AGPS should not be confused with the location service, which, by the use of your wifi connected ip or gsm service towers it gives you a rough location in just 1 second. (accuracy is usually a few hundred meters)

- gps signals are one way only. (your phone does NOT transmit any signal to satellites!)

- Since the signals are very (read: VERY) weak, a gps receiver/phone has to be outside to be able to get a lock/fix. Being near tall buildings, trees, clouds, rain, being inside a moving car all affect the ability to receive the signal so under those conditions it will probably take longer to get a fix. Still with proper agps usual lock times are around 20-30 seconds under bad conditions. You usually can't get a lock inside a building. (maybe near the window but not always)

- The problem with HD2 is, it was originally built as a windows phone and android (or specifically linux kernel and drivers actually) was ported to it by the community. It took several months, and Android on HD2 is almost perfect except agps support. HD2 hardware is capable of agps (it works flawlessly in winmo) but the custom written hd2 gps driver and/or linux kernel doesn't have proper support (yet)

- HD2 wasn't meant to be running Android and being able to run free Android on our phones is hard work of a lot of people, so we can't really complain about it. But it would be nice to see agps working since HD2 is one of the best cheap piece of hardware out there and most of us can't afford a new native android phone with agps support. Given the progress of HD2 Android project in the last 8 months, IMO it is possible for some developer to implement agps. They just need motivation (hint: donation)

- I currently have a second business phone with agps and it gets a fix really fast making using navigation much more convenient. From what I can see, HD2 gps time lags exactly 1 second behind a proper phone. It also lags speed calculation. (but it is accurate as long as your speed is constant) Also a proper phone reports satellites before an actual fix is made. HD2 accuracy report is also wrong (usually almost always reports 1 meter accuracy while other phones report 4-6 under the same conditions) These are some minor glitches with the hd2 gps. Use AGPS appears under location & security menu in Android whenever agps support is available.

- A proper way to test agps support is to use GPS STATUS app from the market and try to clear agps data and redownload to see if it actually downloads.

I hope this info helps.

More info:

http://en.wikipedia.org/wiki/Gps

http://en.wikipedia.org/wiki/Assisted_GPS