Skip to content
This repository has been archived by the owner on Jun 25, 2020. It is now read-only.

ADS B receiver

Nick Sweeting edited this page May 5, 2020 · 3 revisions

Have you ever dreamed of decoding data transmissions from planes directly in your hand without using Flightradar24 ? No ? Me neither. But it's fun and there's a lot less latency !

The ADS-B receiver listens on the standard 1090MHz frequency for valid Mode S frames and lists heard aircraft in a decaying list view. Recently heard aircraft are moved up so that those which go out of range are automatically pushed down.

Retrieved info is the ICAO identifier (hex number), callsign, position, airline name, and the timestamp of the last received frame for the particular ICAO address.

Everything is logged in the adsb.txt file.

Setup

  1. Copy the contents of sdcard/ from this repo onto the root of a microSD card (FAT formatted)
  2. Download the airlines.txt ADS-B dataset from somewhere like http://xdeco.org/?page_id=30 (AcarSDeco2/datasets/airlines.txt) to sdcard/ADSB/airlines.txt
  3. Generate the airlines.db and world_map.bin files
cd firmware/tools
python2 adsb_db.py
python2 adsb_map.py
  1. Put the microSD card into the portapack and reboot, then go to the ADS-B receiver. Flights should now show up with their airline and GPS location on the world map image.

Troubleshooting

You should easily receive ADS-B frames outdoors with a simple telescopic antenna and the default LNA:40 VGA:40 AMP:0 settings. I've already had valid position data from aircraft more than 30km away in clear weather.

If no entries show up, make sure that an aircraft having an ADS-B transponder is near (most do). If you can see a commercial airliner above you but don't see anything in the receiver, you might want to check your HackRF's RF stage.

If enabling the RF amp (AMP:1) reduces the amount of frames received, your HackRF's LNA is probably fried.