I wish I could upvote this several times over. This is hacker news a thousand times over, and makes up for all the dotcom, and ruby rubbish you have to wade through on this site.
Having done two balloon launches, it is not that hard to find resources that specify what GPS modules will work and what ones won't work.
We used a
Garmin GPS 18
and it worked flawlessly (other than our night launch, where we recorded really low freezing temperatures and we think that our GPS froze because it stopped giving us data).
Our first launch got to 92k+ ft and the GPS kept reporting without issues.
The L1 carrier is spread over a 2 MHz bandwidth and its strength at the Earth's surface is -130 dBm. Thermal noise power in the same bandwidth is -111 dBm, so a GPS signal at the receiving antenna is ~ 20 dB below the noise floor.
This is slightly misleading; the bandwidth of the entire signal is 2MHz (it's a 1MHz chip). The bandwidth of the carrier is much narrower - it is above the noise floor typically by somewhere between about 15 and 50dBHz (you can see this quite easily on a spectrum analyser). The spread-spectrum part of the signal is indeed well below the noise floor.
That minor quibble aside, this is a pretty awesome effort for one guy to do end-to-end.
great combination of electrical engineering, core physics (classical and if you want it - GPS does touch SR and GR), programming (at app and VSDL levels). Such projects should be a regular part of lab curriculum for any engineering student (including programmers).
Thought this was great, will be trying to make one myself I think. Keep up the awesome work, I'm keeping your site bookmarked now. (I saw a whole bunch of other cool stuff.)
http://lea.hamradio.si/~s53mv/navsats/theory.html