Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 

Repository files navigation

Desk Radar — Display and Flight Tracking

A live aircraft radar display built on an ESP32-S3, rendering nearby flight traffic on round TFT LCD displays using real-world ADS-B data.

Author

Dylan Bagwell

Project Info

  • Date: 24/06/26
  • Version: 0.2

Description

This program generates a radar-style flight tracking display on two 1.28" round TFT LCD screens, using the adsb.fi open data API to fetch real flight data. Security has been prioritized throughout the project via TLS certificate verification, per-session tokens, timeouts, and input validation wherever possible.

Features

  • Real-time aircraft plotting by bearing and distance from a fixed ground position (lat/lon)
  • Rotary encoder control for adjusting radar range (short press = step range, long press = wipe saved credentials)
  • Wi-Fi captive config portal (AP mode) for first-time setup, secured with a randomly generated per-session token
  • TLS-verified HTTPS requests to the ADS-B data API using a pinned root certificate
  • Credentials stored in non-volatile storage (NVS) via Preferences, never logged to serial

Hardware

MCU: ESP32-S3-WROOM-1

Component Pin(s)
Display 1 (TFT) DC: 14, CS: 10, MOSI/SDA: 11, SCLK: 12
Display 2 (TFT) (not yet wired — TODO)
RGB LED 48
Rotary Encoder CLK: 5, DT: 6, SW: 7

TODO: Add buttons or another input method for selecting/viewing individual flight data.

Exposure and Risk Summary

Exposure Surface Risk
Config portal (HTTP) with token verification Local AP network only Low
ESP32 in STA mode Local home network Very Low
API requests over TLS Outgoing internet Very Low
Router Public internet Moderate (depends on router model)

How It Works

  1. On boot, the device checks NVS for saved Wi-Fi credentials and coordinates.
  2. If none are found (or the saved network fails to connect), it starts a Wi-Fi AP (PlaneRadar-Setup) hosting a config portal at 192.168.4.1.
  3. The user submits Wi-Fi credentials and their radar's latitude/longitude through the portal, protected by a randomly generated token.
  4. Once connected in station mode, the device polls the adsb.fi API on a fixed interval, calculates each aircraft's bearing and distance using the haversine formula, and plots it on the radar display.
  5. A rotary encoder adjusts radar range; a long press on the encoder button wipes stored credentials and restarts the device.

Dependencies (Arduino Libraries)

  • WiFi.h
  • WebServer.h
  • Preferences.h
  • HTTPClient.h
  • WiFiClientSecure.h
  • ArduinoJson
  • Adafruit_NeoPixel
  • Adafruit_GFX
  • Adafruit_GC9A01A

Flight Data Source

Flight data is obtained from adsb.fi's open data API. More information is available in their README.

Inspiration / Credits

Notes

  • The config portal auto-closes after 5 minutes of inactivity.
  • Wi-Fi passwords are cleared from RAM immediately after use and are never printed to serial.
  • The root CA certificate is pinned for opendata.adsb.fi to ensure verified HTTPS connections.

About

ESP32 with TFT GC9A01 screen radar flight tracker, inspired by other projects. Creating a custom flight tracker to gain better understanding of TFT screens and handling of API data requests on ESP32.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages