An ADS-B Bot, derived from AboveTustin (a Twitter bot).
Uses dump1090-fa to track airplanes and posts whenever an airplane flies nearby Groningen Airport Eelde (IATA: GRQ, ICAO: EHGG).
Posts screenshots to Bluesky, taken from a local tar1090 installation.
WARNING: this is Frankencode!!
Currently it runs on a RPi4 and on my MacBook Pro M2 (most recent macOS with Homebrew packages).
Checkout this repo as "AboveGRQ" and use uv to setup a project env.
Copy the file config.example.ini to config.ini and make all the necessary changes in that file.
Set Blueksy credentials in a .envrc (or .env) file. See .envrc.example.
Run with uv run tracker.py:
$ uv run tracker.py
Will crop
Map URL: http://rpi.lan/tar1090/
Getting web page http://rpi.lan/tar1090/
Waiting for page to load...
Reset map
Zoom in
Now: 2026-01-26 18:52:41.600000
Now: 2026-01-26 18:52:42.700000
Now: 2026-01-26 18:52:43.700000
--- cut --- 8< ---Obligatory screenshot, taken from Ivory for iOS:
- Use Python 3.1x and uv.
- Use a Firefox based browser.
- Uses tar1090 for ADSB message decoding, airplane tracking, and webserving.
- Uses selenium for screenshots with geckodriver.
- Uses pillow for image processing.
- Uses requests for API calls.
- Uses geckodriver for headless web browsing.
- A PiAware Raspberry Pi-based ADS-B receiver & decoder with MLAT support, with web server and local databases.
- kevinabrandon/AboveTustin
- shbisson/OverPutney
- ladewig/OverPutney
- ggoodloff/AnyFlightTracker
- Use latest Python 3.x version.
- Replace Twitter with Mastodon.
- Make hashtags work with "facets".
- Replace Mastodon with Bluesky.
- Fix "Loading image..." in screenshots when in headless mode.
- Replace Google Chrome & Chromedriver.
- Remove FlightAware API / FlightXML3 code.
- Fix additional hashtags.
To enable tar1090 web screenshots, the tar1090 config.js on the rpi needs to be edited.
Edit file /<dir>/tar1090/html/config.js and remark out (//) the ICAO line in the HideCols section.
