r/esp32 • u/theqkash • 10m ago
I made a thing! I built a standalone flight radar on a $35 ESP32 touchscreen. No soldering, no subscriptions, installs from the browser. Open source.
Enable HLS to view with audio, or disable this notification
For the past days I have been building esp32flight: a desk flight radar that runs entirely on a Waveshare ESP32-S3 Touch LCD 7 (800x480, about $35). You plug in USB power, flash it from a browser tab, connect it to Wi-Fi on the touchscreen, and it shows every aircraft around you. No Raspberry Pi, no dongle, no accounts, no API keys required. MIT licensed.
What it shows
- Live aircraft within a configurable radius (10 to 250 NM), refreshed every 8 s, up to 80 aircraft with the nearest kept first
- Airline logos (1300+ bundled), aircraft type, registration with country flag, squawk, ADS-B category
- Routes: origin and destination with city, country flag and local airport times, progress bar, ETA and estimated local arrival time
- A spotter line: where to look in the sky (compass + elevation angle) and a flyover prediction ("passes you in ~3 min at 1.2 km")
- Aircraft photos (planespotters.net), commercial flight numbers (FR4238 instead of RYR638T) with an optional free FlightAware key
- Weather in the header plus the raw METAR from the nearest station
Views
- Flight list + detail panel, ambient auto-cycling mode with a mini map, radar view with a real map background, and a session stats view (hourly chart, top airlines, daily records)
- Full-screen route map with great-circle arc, swipe pan and zoom, flight trails
- Map screensaver after idle: full-screen map of your area with every aircraft, your observation circle, clock and weather; tap a plane to see where it is heading
- Night mode (backlight off during quiet hours), 7 color themes, English and Polish UI
Data
- Free community ADS-B APIs (airplanes.live, adsb.lol) with automatic failover, or your own dump1090/readsb receiver as a source with internet fallback
- Routes are cross-checked against the aircraft's actual position, so stale database entries get rejected instead of displayed
- Bundled OurAirports database (8000+ airports), map tiles with an on-device cache
Alerts and integrations
- Push notifications to your phone via ntfy.sh (free, no account): emergency squawks, watchlist aircraft, predicted flyovers
- Watchlist with gold highlighting; military and notable heavies (A380, AN-124, C-17...) are always highlighted
- MQTT with Home Assistant auto-discovery, generic JSON webhooks (Node-RED, n8n)
- Alert history stored on flash and browsable in the web panel
Web panel
- Live Leaflet map with trails and country flags, flight table, session and 30-day stats, spotting history with CSV export
- Full device configuration with per-field help, OTA firmware updates from the browser (locked by default, armed from the device)
- Documented HTTP API: live state JSON, config, logs, Prometheus /metrics, even a /screen.bmp live screenshot endpoint
- Optional password protecting the panel and the whole API
Install
Browser installer (Chrome/Edge): https://theqkash.github.io/esp32flight/
Source: https://github.com/theqkash/esp32flight
Happy to answer questions. If you have your own RTL-SDR receiver, this thing turns it into a proper desk display in about five minutes.


