A standalone flight radar on a single ESP32 board with a touchscreen. Every aircraft around you with routes, airline logos, photos and flyover alerts - plus rain, airspace, harbour ships and the ISS if you want them. After the first day your local map even renders with no internet at all.


Point it at your Wi-Fi and it starts talking directly to open, free data networks. Your location and history never leave the device.
Aircraft within 2–460 km, merged live from three community ADS-B networks (or your own dump1090 antenna). List, detail card, zoomable real-map radar, session stats and a phosphor retro CRT view.
Airline with logo, route with cities and flags, progress bar, photo of the exact airframe, ETA in the destination's local time and a spotter line telling you where to look. Routes are position-verified, cross-checked between databases and evicted the moment the flight contradicts them.
Optional layers, each one switch: rain radar, airspace zones, weather balloons, harbour ships with destinations, and the ISS when it crosses your sky.
Emergency squawks, watchlist hits and „passes over you in ~3 min” pushed to your phone via ntfy.sh; webhooks for Node-RED and n8n; Home Assistant sensors over MQTT.
Every setting in the browser, a live map, spotting history, Prometheus metrics and a documented JSON API with a full data-model reference.
Hackable C on ESP-IDF with an Android build of the same core for retired tablets. Aviation or metric units, English and Polish, 7 themes, OTA updates with a wrong-board guard, offline map cache, and a wiki that documents every switch.
Straight off the device - real captures, real traffic (the radar spent this week visiting Frankfurt, Rotterdam and Taipei).









One board, a USB-C cable and Wi-Fi. No soldering, no extra parts, nothing to assemble.
| Board | Screen | Price | Notes |
|---|---|---|---|
| Waveshare ESP32-S3 Touch LCD 7 | 7″ 800×480 | about $35 | the original target, best tested |
| Waveshare ESP32-S3 Touch LCD 4.3 / 4.3B / 5 | 4.3–5″ 800×480 | about $20 | 16 MB build, or 8 MB for N8R8 units |
| Waveshare ESP32-S3 Touch LCD 7B | 7″ 1024×600 | about $40 | sharpest panel, real brightness control |
| Guition JC8048W550 | 5″ 800×480 | about $15 | the budget pick |
| Sunton ESP32-4827S043 (C or R touch) | 4.3″ 480×272 | about $15 | community-contributed; UI downscales cleanly |
| Sunton ESP32-8048S070 and clones | 7″ 800×480 | about $22 | colors and centering bench-tuned by the community |
| Elecrow CrowPanel 5.0 | 5″ 800×480 | about $25 | 4 MB class: updates via the flasher, logos on demand |
| Elecrow CrowPanel 7.0 and 7″ Amazon rebrands | 7″ 800×480 | about $30 | 4 MB class; most unbranded Amazon 7″ boards are this |
| Waveshare ESP32-S3 Touch LCD 7C BOX | 7″ 800×480 | about $70 | enclosure, battery and audio hardware on board |
| BigTreeTech Panda Touch | 5″ 800×480 | about $75 | the Bambu pendant reborn; replaces its stock firmware |
| M5Stack Tab5 | 5″ 1280×720 | about $60 | ESP32-P4, portable with a battery; all three panel generations |
| Elecrow CrowPanel Advance 7.0 (V1.2+) | 7″ 800×480 | about $35 | the newer Advance series, real backlight dimming |
| Guition JC8012P4A1 | 10.1″ 800×1280 | about $40 | ESP32-P4, the biggest screen of the fleet |
Not sure about your flash size? Check the metal module: N16R8 = 16 MB, N8R8 = 8 MB, N4R8 = 4 MB. Unbranded 7″ board? See the identification hint under the flash buttons. An old Android tablet (5.0+) works too - same firmware core, packaged as an APK. New boards hatch on the test builds page - right now that is where the CrowPanel Advance 7.0, the 10.1″ JC8012P4A1 and the Panda Touch live until the next release.
Connect the board over USB, click Install, pick the serial port. Everything - firmware, airline logos, maps, airport database - is written in one go. Chrome or Edge on desktop required (Web Serial).
Unbranded 7″ board and not sure which of the two
it is? Sellers ship both designs under identical listings. Read the metal ESP32 module on
the PCB: N16R8 = the Sunton build, N4R8 = the CrowPanel 7.0 build.
A genuine Sunton also has "8048S070" printed on the board. Picked wrong? Nothing
breaks - the screen just stays black; flash the other one.
Updating? Leave Erase device unchecked and your Wi-Fi and settings survive. Check it only for a first install.
Android instead? Grab esp32flight-v0.4.5.apk from the
latest release. After the first
flash, updates go over the air from the device's web panel.
Every screen, every switch and every integration documented with real screenshots: getting started, boards, layers, updating, FAQ.
Everything the panel shows is plain JSON on port 80: state, config, backup, Prometheus metrics, live screenshots. Curl examples included.
Experimental firmware for people helping chase specific problems - flashed from the browser, settings survive, going back is one click.
Community ADS-B (airplanes.live, adsb.lol, adsb.fi) with routes cross-checked against the aircraft's real position; maps by CARTO © OpenStreetMap contributors; rain by RainViewer; weather by Open-Meteo; METAR/TAF from aviationweather.gov; photos by planespotters.net; balloons by SondeHub; ISS by wheretheiss.at; ships by aisstream.io and airspace by openAIP (the last two with your own free keys). The full field-by-field reference lives in DATA-MODEL.md.
esp32flight is free and open source. Every supported display got here because a physical board landed on my desk - a coffee on Ko-fi funds the next port.
☕ Support the project on Ko-fi