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 is retranslating data from one or multiple ADS-B servers to multiple destinations such as iPhone app, database, web page etc. Since it's written in Java the same jar file can be used on Windows, MacOS or Raspberry Pi. However each platform requires slightly different configuration:
Configuration file in JSON format contains input and output sections with list of input and output endpoints. Endpoint types currently supported (* requires adsb_hub3.jar):
inputadsb_exchange, beast_tcp, feed_info, opensky*, rtl_tcp, sbs_tcp, sbs3_tcp
outputbonjour, elasticsearch*, gdl90, geoevent, kml*, lametric*, realtime, rest, smartwatch*
To learn more about configuration click here