Automatic Dependent Surveillance-Broadcast (ADS-B) allows to track private, commerical, military airplanes or even helicopters in close proximity (100-250 miles) without expensive equipment. You just need USB dongle with antenna and any computer with USB port. Amount of information sent by each airplane can vary but usually includes: ICAO 24-bit aircraft address (ICAO24), callsign, ground speed, altitude, vertical speed, heading, squawk. You can enter callsign in Google
to get additional information about flight. Just make sure it has prefix of the operator like DAL or VIR. Some airlines don't report it and in this case www.airframes.org
can help. Enter ICAO24 there and get prefix of the operator plus registration number, type, model, serial and line numbers, delivery date of particular airplane. Another useful web site is FlightAware
and it usually appears in Google's search results whenever you're looking for flight number. Private airplanes or helicopters may report tail number instead of flight number, for instance I see N401TD above Manhattan pretty often. Web resources mentioned above are helpful in this situation as well.
1 USB receiver
In order to receive and process an information from airplanes you will need a specific model of the USB dongle with high sensitivity on frequency 1090MHz. One of the best chips for that is R820T designed by Rafael Micro. It's relatively cheap and package includes small antenna. Another option is FlightAware Pro Stick which you can easily find on Amazon
2 ADS-B antenna
Good antenna is absolutely necessary for decent coverage and precise detection of aircrafts. NooElec R820T USB receiver is coming with basic antenna which provides good start for ADS-B setup. However I would recommend to invest some money into indoor or outdoor antenna specifically designed for 1090MHz. You can build it yourself or buy from DPD Productions
. Just don't forget you will need MCX male connector for NooElec receiver.
3 USB driver
Special driver is necessary in Windows to communicate with USB devices.
4 ADS-B server
This component is getting signal from USB receiver, creates listening socket and waiting for client to connect. Whenever client connects server starts to send ADS-B messages to it. There are 2 formats of communication supported: rtl1090 is using Beast
binary format by default and rtl_tcp is sending raw data in I/Q
On Raspberry Pi you can install rtl_tcp using commands:
- wget http://www.realadsb.com/dl/realadsb.zip
- unzip realadsb.zip
- cd realadsb
- sudo ./install_rtl.sh
Reboot after installation is required.
You can also run dump1090 to get ADS-B feed. In this case command line will look like: ./dump1090 --net --net-beast
It tells dump1090 to create a listener on port 30005 which provides feed in Beast format. In case you're using PiAware
dump1090 is already running so you can connect to port 30005 right away.
On Windows you will need to download RTL-SDR
package, unzip it and copy rtl-sdr-release\x32\rtlsdr.dll, msvcr100.dll and libusb-1.0.dll
to your application (rtl1090 or dump1090) folder.
5 ADS-B hub
Hub can be used to retranslate data from one or multiple ADS-B servers to multiple destinations such as iPhone app, database, web page etc. It's written using Java so same jar file can be used for Windows and MacOS X. But there is a difference in configuration:
Windowsjava -jar adsb_hub.jar rtl1090.json
MacOS X or Raspberry Pi 3java -jar adsb_hub.jar rtl_tcp.json
If you downloaded realadsb.zip you can start both rtl_tcp and adsb_hub using same command:
Any platform with dump1090java -jar adsb_hub.jar dump1090.json
Integration with PiAwareInstructions
Configuration file in JSON format contains input and output sections with list of input and output endpoints. Endpoint types currently supported:
inputbeast_tcp, rtl_tcp, sbs3_tcp
outputbonjour, rest, realtime, kml, geoevent
To learn more about configuration click here