I love these incredibly simple and elegant classic technologies. GPS is one of the best. It seems like it would be incredibly complicated and mysterious, but it's actually quite straightforward.
I'm working on a presentation now to explain how GPS works to second graders. If they understand it, I'll take some photos and do a write-up.
sizzzzlerz 1 days ago [-]
even though the concepts are straightforward, the implementation requires great care in order to maintain and extract the required precision. Throw that tech into space takes everything to an even higher level requiring radiation hardening, weight management, and long term reliability. You can't send repair crews to fix them if they break. As an engineer, I am in awe of those who design and build these things.
aaron695 5 hours ago [-]
[dead]
seanalltogether 1 days ago [-]
Do the satellites broadcast their own position, or is that all held in a database on your phone? Also why is it so draining on your battery to get GPS location, if it's just solving a simple calculation.
throw0101d 1 days ago [-]
Both: they broadcast not the location but the orbital characteristics (ephemeris), and devices can save the last received value. As the satellites get 'perturbed' in orbit, their orbital data is updated and re-broadcast.
The information necessary for a fix is broadcast. The locally stored database helps improve the time to get a fix. A GPS receiver, going from a cold start, needs to listen for many minutes to acquire and decode enough signals to have the required satellite position and timing information to do the calculation.
Most of the power consumption is for the radio reception that has to detect and decode signals from multiple constantly shifting sources, dealing with their very low signal-to-noise ratios and other challenges like multipath distortion due to atmosphere and surface reflections.
It's pretty remarkable how much miniaturization has improved the efficiency of these radios. E.g. going from the early "portable" GPS units that essentially had a lead-acid car or motorcycle battery to today's wearables that run on a tiny power budget while supporting a wider range of satellite constellations and radio bands.
dwa3592 1 days ago [-]
Yes, satellites broadcast their position and time continuously. There's also the database approach (check A-GPS) where you store the satellite's position and query that but just know that it needs to be updated after a while.
Now about the battery draining - the more satellites your phone GPS captures the higher the precision. You need at least 4 satellites to trilaterate aka get precise lat, long. Listening to the signal from the GPS and then trilaterating is an expensive operation- why? because the satellite signal is very very weak and your phone has to run quite a lot of operations (how far the satellites are, then direction) to get the signal from the noise that's hitting your phone constantly. This is loosely the reason for why it drains the battery (even more so during cold starts).
I started to build a gps tracker for my cat which wouldn't require a monthly subscription- after burning the first micro-controller I gave up and decided to leash train my cat. Now my cat is leash trained.
linzhangrun 18 hours ago [-]
Because the satellite is very far from you, its antenna power is only a few tens of watts.
Your phone needs to extract that faint signal from a noisy background—not from just one satellite, but at least three. That's why it uses so much power.
rcxdude 20 hours ago [-]
Just receiving on a radio is often a surprisingly expensive operation, especially for a small battery powered device that is otherwise well optimized, and especially when you need to receive continuously like with GPS.
linzhangrun 18 hours ago [-]
In principle it's actually easy to imagine: the speed of light is known, the orbital positions are known, the time differences give distances, and then it's just trilateration with three spheres. The idea isn't complicated.
Engineering-level precision that’s hard to imagine: light can circle the Earth seven times in one second, so tiny deviations make a world of difference — the atomic clocks on GPS even have to account for relativistic effects. So cool!
ikidd 1 days ago [-]
Also, RTK is an interesting way to correct the signal to get sub-centimeter accuracy. Using the timing differences between satellites with a stationary unit and then sending the that to the rover is a cool workaround and can be used without expensive equipment now.
Waterluvian 1 days ago [-]
VRS RTK can even get 1cm RMS without needing a stationary unit. Just need atmospheric correction data for your approx location. Which has been amazing for outdoor mobile robotic applications.
UltraSane 22 hours ago [-]
They sell robotic lawn mowers with LIDAR and RTK GPS. LIDAR combined with RTK GPS is very neat because you can place every point in the point cloud on earth's surface.
magneticnorth 1 days ago [-]
A slightly related question, if anyone knows - has phone GPS gotten worse in recent generations? More reliance on local wifi networks or something like that?
I ask because I do a lot of backcountry hiking, camping, and foraging and rely on true GPS-only navigation. My most recent two phones (iphone and pixel) have noticeably worse GPS performance than previous phones, and I even changed OS ecosystems mostly hoping for better GPS, but it didn't help. Maybe I've had bad luck, but two noticeably bad phones in a row seems like it may be a pattern.
And is there any way to find phones with very good GPS performance?
shibapuppie 17 hours ago [-]
I've noticed very similar degradations in performance moving from a Pixel 3XL to a 7A.
When disabling "Android intelligence" (iirc this is what runs WiFi location scanning in the background) from running in the background, the 7A would take much, MUCH longer to get a GPS lock on a window sill, vs the 3XL right next to it... as well as lower SNRs and fewer satellites seen and used.
I don't get it.
Boxxed 1 days ago [-]
I don't know, but I have noticed that the GPS in my watch (Garmin) seems to be better than the one in my phone.
r4sz 1 days ago [-]
Because Garmin tools are good
myself248 1 days ago [-]
Garmin is a GPS company first, a watch company second. It shows.
antonvs 1 days ago [-]
Aggressive battery saving, thinner phones, competition between multiple radio transceivers in a small device - these can affect GPS performance.
Try disabling battery saving measures as much as possible and see if it helps.
empiricus 23 hours ago [-]
I found much more interesting the way the gps electronics work. What do you mean you need to know the exact moment you receive a message from a satellite with nanosecond precision? when the message itself is several seconds long.
hyperbolablabla 14 hours ago [-]
GPS (using TOA or absolute time of a arrival) is cool and everything, but I'm a much bigger fan of TDOA, when you trilaterate using time _difference_ of arrival, relative to each station. This involves finding the intersection of 3 hyperbolae... Which is where my user name comes from!
Lukas_Skywalker 1 days ago [-]
The explanation about the spheres is slightly inaccurate. With one satellite, you won't get a circle on the earths surface, but a sphere.
GPS is not constrained to earths surface (or the oblate spheroid approximating it), luckily.
throw0101a 1 days ago [-]
> With one satellite, you won't get a circle on the earths surface, but a sphere.
With one satellite you get a sphere in 3D space, but if you are on a surface (like that of the Earth), that gets translated into circle.
If you are in a plane in the sky (3D space), then you get a spherical 'location fix'.
Lukas_Skywalker 1 days ago [-]
True. But the GPS receiver doesn't know whether you are on the surface or not (and at what elevation), so it must always assume 3d space, hence a sphere.
throw0101a 21 hours ago [-]
Not wrong, but I think most folks are interested in lat-long.
If you have lat-long and place it on a pre-canned map, then it's unlikely that most people will be either underground or in the air, and so whatever the surface elevation of the lat-long on the map is, that's most likely (>99% of the time?) where the person is.
At least from a UX/responsiveness perspective, this is probably a good way to do the math. (In the background get a more accurate 3D fix.)
21 hours ago [-]
dmk 1 days ago [-]
The fact that they deliberately manufacture the satellite clocks to tick at the wrong frequency on the ground (10.22999999543 MHz instead of 10.23 MHz) so that relativity makes them tick correctly in orbit is one of my favorite engineering details in any system.
petee 1 days ago [-]
Maybe i missed it, but the first step kinda skips over how the inital time is calculated - the cell can't know when the signal was transmitted without some prior time or location knowledge?
toast0 21 hours ago [-]
> the cell can't know when the signal was transmitted without some prior time or location knowledge?
The signal that GPS satellites broadcast includes the current time, so knowing when the signal was transmitted is easy.
Knowing when it was received is harder, you would need a calibrated, synchronized clock. But you need to receive multiple signals to figure out your clock, so keep reading for that.
22 hours ago [-]
oofbey 1 days ago [-]
Good catch. The trick is you don’t need a good clock on the phone. Really all you’re measuring is the difference in time signals between the satellites. The clocks on the satellites are (effectively) perfectly synced with each other. So what you measure is that one satellite is ### meters further away from another. Not absolute distance to each satellite.
It means you need to connect to one more satellite to remove that extra degree of freedom. If your phone had an atomic clock you could get your absolute position in 3D only listening to three GPS satellites, but because of local clock skew you need a signal from a fourth satellite.
ck2 1 days ago [-]
Wish they could solve the GPS altitude weakness
Watches that use GPS for altitude are terribly inaccurate
It is interesting to run the opensource GPSTEST app on a smartphone and watch the MSL "settle" over time but each sat seems to disagree
Decreased vertical precision is an artefact of measurement geometry more than e.g. number of frequencies.
Horizontal position has the benefit of having satellites at almost all azimuths. But the vertical position estimate only gets satellites from at most half of possible elevations (above the horizon).
* https://ciechanow.ski/gps/
* 2022: https://news.ycombinator.com/item?id=29981188
* 2023: https://news.ycombinator.com/item?id=36180316
* Others: https://news.ycombinator.com/from?site=ciechanow.ski
Standford's "An Introduction to Satellite Navigation" course is also instructive (recorded 2014):
* https://www.youtube.com/playlist?list=PLGvhNIiu1ubyEOJga50LJ...
I'm working on a presentation now to explain how GPS works to second graders. If they understand it, I'll take some photos and do a write-up.
* https://gssc.esa.int/navipedia/index.php/GPS_Navigation_Mess...
* https://www.e-education.psu.edu/geog862/node/1737
* https://gssc.esa.int/navipedia/index.php/GPS_and_Galileo_Sat...
* https://en.wikipedia.org/wiki/Ephemeris
Most of the power consumption is for the radio reception that has to detect and decode signals from multiple constantly shifting sources, dealing with their very low signal-to-noise ratios and other challenges like multipath distortion due to atmosphere and surface reflections.
It's pretty remarkable how much miniaturization has improved the efficiency of these radios. E.g. going from the early "portable" GPS units that essentially had a lead-acid car or motorcycle battery to today's wearables that run on a tiny power budget while supporting a wider range of satellite constellations and radio bands.
Now about the battery draining - the more satellites your phone GPS captures the higher the precision. You need at least 4 satellites to trilaterate aka get precise lat, long. Listening to the signal from the GPS and then trilaterating is an expensive operation- why? because the satellite signal is very very weak and your phone has to run quite a lot of operations (how far the satellites are, then direction) to get the signal from the noise that's hitting your phone constantly. This is loosely the reason for why it drains the battery (even more so during cold starts).
I started to build a gps tracker for my cat which wouldn't require a monthly subscription- after burning the first micro-controller I gave up and decided to leash train my cat. Now my cat is leash trained.
I ask because I do a lot of backcountry hiking, camping, and foraging and rely on true GPS-only navigation. My most recent two phones (iphone and pixel) have noticeably worse GPS performance than previous phones, and I even changed OS ecosystems mostly hoping for better GPS, but it didn't help. Maybe I've had bad luck, but two noticeably bad phones in a row seems like it may be a pattern.
And is there any way to find phones with very good GPS performance?
When disabling "Android intelligence" (iirc this is what runs WiFi location scanning in the background) from running in the background, the 7A would take much, MUCH longer to get a GPS lock on a window sill, vs the 3XL right next to it... as well as lower SNRs and fewer satellites seen and used.
I don't get it.
Try disabling battery saving measures as much as possible and see if it helps.
GPS is not constrained to earths surface (or the oblate spheroid approximating it), luckily.
With one satellite you get a sphere in 3D space, but if you are on a surface (like that of the Earth), that gets translated into circle.
If you are in a plane in the sky (3D space), then you get a spherical 'location fix'.
If you have lat-long and place it on a pre-canned map, then it's unlikely that most people will be either underground or in the air, and so whatever the surface elevation of the lat-long on the map is, that's most likely (>99% of the time?) where the person is.
At least from a UX/responsiveness perspective, this is probably a good way to do the math. (In the background get a more accurate 3D fix.)
The signal that GPS satellites broadcast includes the current time, so knowing when the signal was transmitted is easy.
Knowing when it was received is harder, you would need a calibrated, synchronized clock. But you need to receive multiple signals to figure out your clock, so keep reading for that.
It means you need to connect to one more satellite to remove that extra degree of freedom. If your phone had an atomic clock you could get your absolute position in 3D only listening to three GPS satellites, but because of local clock skew you need a signal from a fourth satellite.
Watches that use GPS for altitude are terribly inaccurate
It is interesting to run the opensource GPSTEST app on a smartphone and watch the MSL "settle" over time but each sat seems to disagree
* https://github.com/barbeau/gpstest
btw watches are now getting THREE multi-band L1+L5 GPS chipsets, should help things
quad-band GNSS coming soon too!
* https://the5krunner.com/2026/03/06/tri-band-gps-garmin/
Horizontal position has the benefit of having satellites at almost all azimuths. But the vertical position estimate only gets satellites from at most half of possible elevations (above the horizon).
See "Vertical Dilution of Precision":
https://en.wikipedia.org/wiki/Dilution_of_precision