Have you ever wondered why it sometimes takes your GPS module 10-20 minutes to get a GPS fix? This post will explain why.
Each satellite sends a message every 30 seconds. This message consists of two main components;
- Ephemeris data, used to calculate the position of each satellite in orbit
- Almanac , which is information about the time and status of the entire satellite constellation.
Only a small portion of the Almanac is included in a GPS message. It takes 25 messages (12.5 minutes) to get the full Almanac. The full Almanac is needed before a GPS fix can be obtained. This is Time To First Fix (TTFF).
TTFF is a measure of the time required for a GPS receiver to acquire satellite signals and navigation data, and calculate a position solution (called a fix).
The above happens during a cold start, this is when the GPS module has been off for some time and has no data in its memory. A full Almanac download is required to get TTFF. If the GPS module has clear line of sight to all satellites, the shortest time for TTFF is 12.5 minutes.
In a warm start scenario, the GPS module has valid Almanac data, is close to its last position (100km or so) and knows the time within about 20 seconds. This approximate information helps the receiver estimate the range to satellites. The TTFF for a warm start can be as short as 30 seconds, but is usually just a couple of minutes.
A receiver that has a current almanac, ephemeris data, time and position can have a hot start. A hot start can take from 0.5 to 20 seconds for TTFF.
Smarts phones use Assisted GPS (aGPS), this allows them to download the Ephemeris data and Almanac over the cell network which greatly reduces the TTFF.
6 thoughts on “Why does it take so long to get a GPS fix?”
If my Pi has a 3G/4G GNSS connection, can the BerryGPS v3 be configured for A-GPS (assisted)?
The BerryGPSv3 uses the ublox CAM-M8 GPS module. This module does support assisted GPS, however it can only be done with a uBlox GSM module.. they speak to each other via i2c.
We will soon release a product which will have these two on the same PCB. Getting a GPS will only take a few seconds.
I hope you are still receiving comments. 🙂 So, I leave my Android smart phone on all the time and GPS is enabled all the time. So I guess my GPS starts would be warm or hot. That being said, over time, it seemed to take Google Maps MUCH longer to acquire a GPS signal than it did when I first bought the phone. I did not change my GPS setting in any way that I’m aware – the GPS acquisition simply got slower as time continued.
My question is this: Would getting a new smart phone help in this matter? Does the age of a smart phone somehow factor into GPS acquisition performance?
Mark, I read the following at https://www.novatel.com/support/known-solutions/gnss-ephemerides-and-almanacs/:
“Thus, the receiver is capable of computing a position without having an almanac present. The almanac helps out with fixing the satellites for the first time but that is about it. The ephemerides however are vital for positioning computation.”
In this article it says: “The full Almanac is needed before a GPS fix can be obtained.”
I have checked the u-blox M8T datasheet. It specifies TTFF < 1minute with cold/hot start. I have practically tested the module under cold start and mostly I get a fix in < 30seconds. If the complete navigation message take 12.5minutes then how the TTFF is achieved in less than a minute ?