I’m going to hazard a guess and say that everyone whose friends or family have ever flown on a plane, have used Flightradar24 — a free and convenient service for tracking flights in real time.



But, if my friends are any indication, very few people know that the service is community-driven and is supported by a group of enthusiasts gathering and sending data. Even fewer people know that anyone can join the project — including you.

Let’s see how Flightradar and similar other services works.

Hardware


The first question is always “where the data comes from”.

Every civilian airliner is equipped with a special device — the so-caller ADS-B (Automatic Dependent Surveillance-Broadcast) transponder, on the photo, is a box with a «1200» label on it:

image
(photo from Garmin)

This transponder sends various flight telemetry — airplane type, its coordinates, destination etc, using the 1090MHz unencrypted radio frequency.

That’s how the signal looks:

image

And this is a data structure:



The signal is transmitting with a high speed 1MB/s, so it takes only 0.00012sec to transmit the data, in the speaker we can hear only a very short 'click', if we'll try to listen this. But with the proper hardware the signal is very easy to decode. All we need is an RTL-SDR receiver (that costs around $15) connected to a PC.

The idea is pretty clear by that point — if you have a lot of receivers and gather data from all of them, you can see this:

image

And that’s not all. Some planes transmit telemetry packets without GPS coordinates. But if you receive data from a lot of planes that do broadcast their location, then you can triangulate the position of the unknown aircraft by analyzing ping delays from different receivers. The technology is called multilateration (MLAT) and you can learn more about it here.

And finally, the last question — how do this services actually receiving the data. With the equipment being pretty cheap (from $50 to downright free), anyone can send it. Flightradar is not publishing their coverage, but we can see the receivers map of another 'competitor' service — Flightaware.

image

As we can see, some countries are covered very sparsely, so some contributions can actually make a difference.

Let's get started!

Install


To set it up you need:

  • Raspberry Pi2/3 with an Internet connection (starting at $20)
  • RTL-SDR dongle (from $15)
  • A simple antenna made from 2 wires 6.8cm each (1090MHz 1/4 wave dipole).

You would want to set everything up in a place with clear view of at least part of the sky, since signals of that high of a frequency get absorbed by things like houses or trees.

I already had both the Raspberry Pi and the dongle, so I was ready right away, but Flightradar and Flightaware actually send kits for free to users, from locations they don’t have good coverage of. Everybody can send a request to Flightradar or to the Flightaware, though obviously people from remote areas have a higher chance of approval. But my personal opinion, that its better to have own receiver, and to be free to do what you want, to send data to any service, you want, and so on (there are some limitations for people who got receiver for free, as example, they cannot send data from it to a competitor service). And 20-30$ is not such a big value anyway.

I used the RTL-SDR V3-based kit from China, which came with an antenna and a mini-stand. It cost me $27 with free shipping, for all this stuff:

image

By the way, as another incentive to encourage people to join, Flightradar24 and Flightaware offer free premium accounts, unlocking all of the website’s functionality (that normally costs $50 a month). So if anyone really gets a lot out of the service, installing the receiver lets you use it much cheaper.

Run


Installation is pretty easy. You just need to connect Raspberry Pi to a receiver and execute this prompt:

sudo bash -c "$(wget -O - http://repo.feed.flightradar24.com/install_fr24_rpi.sh)"

It will request the data necesary (coordinate, receiver type, email address) and then the software works on its own — no further action from the user needed. Once that’s done, you can set up a premium account here and immediately get to use premium functionality.

If you go to the Raspberry Pi’s IP address, you’ll see its status:

image
Flightradar’s account page reveals a lot more information:

image

I live on the 6th floor of a building near the airport, so even my simple antenna mounted near the window, caught almost 1000 planes in a day. And its range seemed to be around 215 miles — again, not bad for a setup that cheap. Various setups could be found on Ebay, just search “ads-b antenna”.

Alternative solutions


Bonus for those whose attention span is long enough to reach that point. Some readers might ask — is there a way to avoid third-party services like Flightradar entirely? Of course there is — you can run the decoder on the Raspberry Pi locally. The source code is published on github (https://github.com/antirez/dump1090).

All you need is to enter these 3 commands:

git clone https://github.com/antirez/dump1090.git
cd dump1090/
make

And then launch the decoder:

./dump1090 --interactive --net

The decoder gets to work, and we see “raw data” — a list of visible planes:

image

You can also log into the Raspberry Pi with a browser and see your own, local «Flightradar». It looks something like this:

image

Why would you need that? Well, just for thrills, but also Flightradar24 censors some of the data, not showing some of the planes (for example, military, government aircrafts or business jets). If you launch your own station, you see everything — even censored stuff, although your data set will be limited by your location and antenna quality, and you won’t have access to MLAT. Again, the source code mentioned above lets you create your own Flightradar, with blackjack and all the bells and whistles you would want.

Conclusion


As we can see, it’s an involving, inexpensive and rather simple experience. Just for comparison: 10 years the Airnav RadarBox receiver cost around $1000, now the RTL-SDR, that does exactly the same thing, can be had for $10.

In my case, the receiver didn’t have any practical purpose, since Flightrader’s coverage in Europe is nearly complete anyway. But those living in the wilderness can genuinely help out air travelers from all over the world, extend the coverage map and even get a premium account for your troubles.

Комментарии (11)


  1. OlegXD
    17.02.2019 22:26

    My english is not so good as I want but this topic I can read and understand.
    It's a pity, there are not so much receivers in a big part of Russia.
    Waiting for english readers and their comments impatiently.
    Thank you!


    1. DmitrySpb79 Автор
      17.02.2019 22:32
      +1

      True, my friends were flying from Siberia to St.Petersburg, and there is really no Flightradar coverage in the middle part of Russia — if the plane is delayed, you cannot see where actually is it. It looks weird for me — its really cool to be first and cover the uncharted territory. Everybody who works in IT, can spend 50$ for the rlt-sdr and Raspberry Pi, and cover hundreds of square kilometers area with this device. There is no such a feeling «to be first» in Europe — there are hundreds of receivers installed, and adding another one is not adding any real value.


      1. radiolok
        18.02.2019 11:50
        +1

        How significant outgoing traffic is? Assume coverage problem is not only in receiver, but in stable good and cheap internet connection.


        1. DmitrySpb79 Автор
          18.02.2019 12:41
          +1

          I didn't check the values myself, my internet is unlimited at home.

          According to the old forums (3 years ago) answer:

          The data varies by location and amount of traffic received from aircraft.
          In a very busy area with good range, the upload maybe 30MB per 24 hours.
          Netlimiter is a useful, free utility to measure the actual data volume.

          But that time MLAT was not supported, so I am not aware of the current situation, maybe its bigger.


    1. KvanTTT
      18.02.2019 12:28
      +1

      English Habr is too young. I hope the situation will have been improved next year.


  1. encyclopedist
    18.02.2019 14:21

    There is also very similar system for sea-going vessels, called AIS (automatic identification system), and very similarly operating websites to monitor traffic, such as marinetraffic.com.


    image


    1. ProRunner
      18.02.2019 15:11

      Where are the tracking devices located in this case? (You can't just put Raspberry Pi in the middle of the ocean.) On the other vessels or on the shore or both?


      1. DmitrySpb79 Автор
        18.02.2019 15:15

        There are AIS decoders for rtl-sdr as well: bitsex.net/sdr/2015/ais-reception-with-rtl-sdr


      1. encyclopedist
        18.02.2019 15:16

        On the shore, on vessels and on satellites. If you hover over some of the more remote vessels, you'll see "Position received via satellite".


  1. sebflorent
    19.02.2019 13:54
    +1

    Hi, thx a lot for this post: I'm really interested to try it as my raspberry is sleeping right now ^^
    Would you have a direct link to buy RTL-SDR V3-based kit? Thanks a lot!


    1. DmitrySpb79 Автор
      19.02.2019 13:56
      +1

      I'm not sure that direct links are allowed here.
      You can just search for the kit name «RTL-SDR Blog V3 RTL2832 1PPM TCXO HF BiasT SMA Software Defined Radio + Antennas» :)