Triangulation came up in a different thread and it reminded me to recommend everyone who doesn't know how GPS works to look up how it works, because it's really cool!
The thing to keep in mind here is that GPS is a _broadcast_. Every receiver that sees a satellite gets the same signal from it, and there's never any communication going in the other direction.
Part of the GPS signal from a satellite is just the satellite telling you which one it is; ignoring other logistics for now, assume you know about all the GPS satellites beforehand.
As mentioned, this is basically a triangulation problem, but here's the fun issue: what kind of signal can you broadcast that lets you precisely tell how far away the satellite is? I mean you could include other characteristics like signal strength to get a very rough idea,
but that's affected by tons of things like weather, interference, how built-up the area you're in is, etc., so that's really really noisy and not very useful.
The solution, since I don't want to leave you hanging: the main things a GPS broadcast signal tells you are:
1. I'm satellite X (so you know who it's coming from),
2. I'm on orbit Y,
3. the current time is T
GPS satellites use atomic clocks for timekeeping, and they send very precise time in UTC. The signal takes a while to reach you. So when you're listening to several satellites at once, they all tell you where they are and what they think the current time is.
Their clocks are synchronized(*); you can use the clock to figure out where they were on their orbit when they sent the message, and also to figure out how long the message travelled.

(*) for the purposes of this thread, I will sidestep relativistic/clock skew etc. issues here
You can follow @rygorous.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled: