My ADSB tracker project

Some time ago, I bumped into an article on Mashable about Jeremy Merrill using a Raspberry Pi to track aircrafts flying over his house and display the origin or destination of that plane (see article here and github there). As my place is just on a busy plane corridor, that gave me an idea. I decided to work on a similar project based on Piaware. Looking at how he did it and at the long literature you can find on the web on ADSB, I created this site, my own software in Python to run on my Pi and other fun stuffs. I also ran into this site by SonicGoose and that gave me many new ideas (including the basic structure of this site - I never had any experience of html or php before).

One key part is getting access to aircrafts databases to get more info from the ModeS hex code you get from the Piaware tracker. I am sharing my own database of planes I detected with one of my trackers (I have a fixed one at home and a mobile one I take with me during my trips over the world).

[2019/02] Update of installation script and new links
[2019/05] Update of the Radar page that now use my own positions database. Added aircrafts silhouettes and Airlines logo.
[2019/05] Changed the domain to FoxtrotCharlie.ovh !!!
[2019/06] Changed landing page and reworked index for Google
[2019/07] Added Great Circle tracks between origin, destination and seen positions on Radar
[2019/09] Added Airports data, API page, better sitemap for Google index

API to my database

You can access my database of aircrafts and airports through the following API.


Build you own ADSB tracker

For the tracker, I am using a Raspberry Pi. I started with the A version, but it is a little limited (it is often at 100% CPU load, running dump1090, Piaware and my own software. I moved recently to the newewst B+ version, and I am down to 10% which is much better). I used this tutorial to install my first tracker.

To setup your tracker, follow these steps:
WARNING: AS THINGS MAY EVOLVE, YOU MAY NEED TO ADAPT THE TUTORIAL TO YOUR HARDWARE AND SOFTWARE VERSIONS
- First you need to download the latest NOOBS from Raspberry Pi website, onto a SD card formated in FAT (your Raspberry Pi is not recognizing FAT32 format). I do recommand to use minimum 32 GB of flash, specially if you want to have some space for recording positions of the aircrafts you will track. If not, 8 GB is enough.
- Insert the SD card into the slot on the Raspberry Pi and power the board. Then follow the instructions. For this step, you will need a keyboard, a mouse and a TV with HDMI input.
- When it is done, upgrade the Raspberry Pi software and firmware:
        sudo apt-get update
        sudo apt-get upgrade
        sudo rpi-update
    
- Install tightvnc:
        sudo apt-get install tightvncserver
        tightvncserver
- You now have a working Pi, that you can manage from a remote computer with a VNC software (I am using tightvncjviewer.jar on Mac)
- Next step is to install the ADSB tracker. For this, you will need a SDR (Software Define Radio) dongle, that you will plus to your Pi. I am using both that one and Piaware Pro-stick. The pro-stick has an integrated amplifier that will give you some additional range. Now there is a new version with integrated filter.
Install Piaware - that will give you a free access to cool features from Flightaware at the same time. You can first create credentials on Flightaware, to get a USERNAME and a PASSWORD.
        #install piaware
        wget http://flightaware.com/adsb/piaware/files/packages/pool/piaware/p/piaware-support/piaware-repository_3.6.3_all.deb
        sudo dpkg -i piaware-repository_3.6.3_all.deb
        sudo apt-get update
        sudo apt-get install piaware
        sudo piaware-config allow-auto-updates yes
        sudo piaware-config allow-manual-updates yes
        sudo apt-get install dump1090-fa
    
- You now have a working tracker and you can see your data on Flightaware. This is already quite fun. - You can also share your data on several open data servers (OpenSky or adsb-exchange).
        #install opensky
        wget https://opensky-network.org/files/firmware/opensky-feeder_latest_armhf.deb
        sudo dpkg -i opensky-feeder_latest_armhf.deb
        
        #install adsd-exchange
        sudo apt-get install build-essential debhelper python3-dev
        dpkg-buildpackage -b -uc
        sudo dpkg -i ../mlat-client_(version)_(architecture).deb
        ./setup.py install
        /usr/bin/python3.4 /usr/bin/mlat-client --input-type dump1090 --input-connect localhost:30005 --lat xx.xxxxx --lon -yyy.yyyyy --alt zzzzft --user yourusername --server feed.adsbexchange.com:31090 --no-udp --results beast,connect,localhost:30104
    
- Next step is to start optimizing the antenna. The antenna provided with the SDR dongle is generally not optimized for 1090 MHz. You will get a much better performance already by cutting it at the right size and use a better ground: simply cut the antenna down to around 6.5 cm in length and then place it on a metallic surface such as a large can lid that has a radius of around 6.5 cm. If you really want a much better range, you can use a dedicated antenna (that one from flightaware) or build your own.
- Have fun already with that part. I will explain how I built my own tracker software and databases in a later post.

Interesting links

Mashable article
Flyover github
Piaware
Raspberry Pi
SonicGoose
ADSB-Exchange which has great APIs
The very good adsb-receiver and on github
The awesome OpenSky, with it's great interface
The excellent AboveTustin, if you want to tweet the planes flying over

Get updates

If you want to get updates about www.foxtrotcharlie.ovh, please subscribe to my mailing list.