Mode-S Receiver

From Noisebridge
Revision as of 22:20, 3 November 2012 by Adi (talk | contribs)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

WTF is Mode-S?

Mode-S is how airplanes tell radar who and where they are. (The radar echo is also used, but obviously doesn't give tail number.)

Mode-S is the radio protocol used for secondary surveillance radar in the United States and most of the world. It is a direct descendent of Mode-A/C, which were originally used to add simple supplemental data to the primary radar returns on air traffic controllers' displays (like altitude and assigned squawk code). It is not literally RADAR, but it is a data protocol on a separate frequency (1090MHz), with equipment generally co-located with primary surveillance radar systems (often 1030MHz). In Europe now and the US eventually, a new higher-level protocol, ADS-B, is being implemented on-top of Mode-S. ADS-B allows for more sophisticated two-way data transfer data between ground stations and equipped aircraft. Right now in the US, most aircraft only transmit Mode-S, but any flight going to Europe generally supports ADS-B. Most importantly, ADS-B-equipped aircraft generally transmit their location, so that aircraft can be tracked by anyone within line of sight, instead of relying on primary radar returns. (The US is eager to move to ADS-B, as it means they can get rid of those hundreds (thousands?) of secondary surveillance radar stations they have to maintain across the US territories, and replace them with very simple systems not dissimilar to that described here! Also note that the US will also support ADS-B implementation via the UAT datalink instead of "1090ES"; this is a different thing and isn't covered by this project.)

What's at 2169

ronin.noise current data

mid and Balint installed an antenna tuned for 1090MHz on the noisebridge antenna masts. It runs to bunny, a Geode LX800 motherboard with a microADS-B PIC decoder inside a NMEA/IP-67-rated weatherproof can powered over fake-PoE. It's running Voyage Linux, why not. In testing, it has been able to follow aircraft over 150 miles away (we picked up the Aeroflot flight from LAX to Moscow on the other side of the Sierra last weekend, as well as flights en route over Paso Robles).

Things were delayed for a while since we needed a bigger box on the masts to hold the Mode-S decoder. But this has been solved, and we're now ready to put the decoder in place and start sharing bits. The plan is to offer the data up in several different ways:

  • via "port 30003" protocol, probably via PlanePlotter running under Wine on an Atom board downstairs
  • to the MLAT PlanePlotter world via UDP (this network uses the timing of Mode-S packets to determine aircraft positions instead of ADS-B inside the Mode-S, very cool!)
  • via logfiles posted every 5min to S3, for running hadoop/EMR jobs against

Long-term plan

  • Provide a freely-usable timestamped stream of data in the "port 30003" protocol used by most of the rest of the ADS-B hobbyist community
  • Put up a fun slippy map display
  • Pool data with other bay area hobbyists to try to do real-time multilateration on aircraft that only transmit non-positional Mode-S data
  • Provide archive of data for analysis by anyone who wants to. The sorts of queries people generally want to do are fast and the data is mostly schemaless, so hadoop/EMR is probably the best way to go.


  • mid started this and donated a bunch of hardware
  • jbm has been helping make bunny work
  • Balint has been contributing motivation and has vast radio knowledge whenever he's in town
  • jmhayes donated the microADS-B decoder and a lot of knowledge