5.5 KiB
Eiswolfs Flightradar (CYD)
A live ADS-B flight radar running on the ESP32 "Cheap Yellow Display" (CYD, ESP32-2432S028), showing nearby aircraft on a rotating radar screen with altitude/speed/model/route details and a proximity LED alert.
Features
- Live radar screen – circular radar view, sized to the full screen width, with a rotating green sweep line
- Real ADS-B data via the free adsb.fi API, refreshed every 8 seconds
- Color-coded aircraft by altitude (green
<10k ft, yellow10-30k ft, red>30k ft) with an on-screen legend - Tap an aircraft to open a detail panel: callsign, airline, aircraft model (via hexdb.io), altitude/speed/distance/heading in both metric and aviation units, estimated seat count
- Adjustable range (10/25/50/100 km) via on-screen button
- Touch-driven WiFi setup and on-screen keyboard for first-time configuration, with up to 3 saved networks (see WiFi Manager below)
- Location presets – save up to 3 fixed locations, or point the radar at any place in the world (see Location Presets below)
- IP-based geolocation (no GPS module needed) to center the radar on your location
- Proximity LED alert – the onboard RGB LED blinks green when an aircraft is within 3 km (no speaker on this board, so this replaces an audible alert)
- Dual-core design – all networking (WiFi, ADS-B polling, aircraft detail lookups) runs on Core 0, while the display and touch input run on Core 1, so the UI never freezes during a network request
- Data (airline names, aircraft-type seat estimates) loaded from CSV files on the SD card, auto-seeded on first boot
- 6 languages (English, German, French, Turkish, Spanish, Italian), selectable on first boot or anytime from the menu
Feature Deep-Dive
📍 Location Presets
By default the device figures out where it is automatically (via IP geolocation). Under Menu → Flight Options → Location Presets you can additionally save up to 3 fixed locations and switch between them.
Good to know: only one location is ever active at a time – either "Auto" or exactly one of the 3 presets. Tap an entry to make it the active one.
The actual trick: you don't have to enter your own location there – you can enter the coordinates of any place in the world and the radar will show the live air traffic there instead, regardless of where your device physically is.
Examples:
- Enter the coordinates of Milan-Malpensa Airport (
45.6306,8.7281) and watch the traffic there while sitting at home. - Save home, workplace, and a holiday house as 3 presets and switch between them with a single tap, without waiting for IP geolocation to re-run each time.
- More precise than IP geolocation (which is often only accurate to city level) – handy if the device lives permanently at one fixed spot and you know its exact coordinates.
A "?" info button right on the Location Presets screen explains all of this again directly on the device.
📶 WiFi Manager (up to 3 saved networks)
Under Menu → WiFi/Network you can save up to 3 WiFi networks at once (not just one). On boot, the device automatically connects to whichever one it can currently see.
Why would you need 3 networks if you're only ever in one place?
- Portable use: take the device to the office, a friend's place, or a holiday home, and it connects automatically everywhere without re-entering passwords each time.
- Guest network + main network: many routers offer separate guest and main WiFi networks – save both, and the device just uses whichever is reachable.
- Multiple access points/repeaters: if you have several access points around the house (e.g. living room + workshop), the device automatically connects to whichever saved network it can currently reach.
Any saved network can be removed again at any time via the red "X", freeing up a slot for a new one.
Hardware
- ESP32-2432S028 ("Cheap Yellow Display", CYD) – ILI9341 2.8" 240x320 touch TFT
- microSD card (FAT32) for settings, WiFi credentials, and lookup tables
- No GPS, no speaker required – uses IP geolocation and the onboard RGB LED
Pinout used
| Function | Pins |
|---|---|
| TFT (VSPI) | MISO=12, MOSI=13, SCLK=14, CS=15, DC=2, BL=21 |
| Touch (XPT2046) | CLK=25, CS=33, MOSI=32, MISO=39, IRQ=36 |
| microSD (HSPI) | CLK=18, MISO=19, MOSI=23, CS=5 |
| RGB LED (active-low) | R=4, G=16, B=17 |
Getting started
- Flash with PlatformIO (
platform = espressif32,board = esp32dev,framework = arduino) - Insert a FAT32-formatted microSD card
- On first boot: touch-calibrate the screen, then select your WiFi network and enter the password using the on-screen keyboard
- The radar screen appears automatically once WiFi and location are ready
Data sources
- Aircraft positions: adsb.fi (free, no API key)
- Aircraft model lookups: hexdb.io (free, community-maintained, rate-limited)
- Location: ip-api.com (free IP geolocation)
Disclaimer
Aircraft model and seat-count data are estimates from community databases and local lookup tables, not live/official figures. This project is for hobby use and is not intended for navigation or safety-critical purposes.
License
MIT (or add your preferred license here)
