How matixyo/esp32-plane-radar works
Plane Radar is ESP32 firmware whose principal workflow is to configure or reconnect Wi-Fi, load a saved radar center and range, periodically fetch nearby ADS-B traffic, and render it on a round display. The main loop coordinates these stages; the radar view combines aircraft symbols, scale/grid, and optional runway overlays. The README documents portal controls, persistent preferences, reconnect behavior, and runway data capabilities. Several subsystem details are supported by the README and tree but were not sampled, so their internal wiring is shown only where documented.
Main entry points: main.cpp Runtime loop · radar_display.cpp Radar composition · wifi_setup.cpp Wi-Fi portal · runway_overlay.cpp Runway overlay
Components 18
Setup and connectivity
- Runtime loop
src/main.cpp - Wi-Fi portal
src/services/wifi_setup.cpp - Radar location
src/services/radar_location.cpp - Range settings
src/ui/radar_range.cpp - Persistent settings
src/services/wifi_setup.cpp
Traffic data
- ADS-B client
src/services/adsb_client.cpp - Aircraft state
src/services/adsb_client.cpp
Radar presentation
- Radar composition
src/ui/radar_display.cpp - Grid and theme
include/ui/radar_theme.h - Runway overlay
src/ui/runway_overlay.cpp - Airport runway data
src/data/large_airports_data.cpp
Device support
- Display driver
src/hardware/display.cpp - Font support
src/hardware/display_font.cpp - Status screens
src/ui/status_screens.cpp
Other components
- Device user
- Wi-Fi network
- adsb.fi API
- Round display
Connections 31
- Device user → Wi-Fi portal: configures
- Device user → Runtime loop: presses BOOT
- Runtime loop → Wi-Fi portal: connects / reconnects
- Wi-Fi portal → Wi-Fi network: joins
- Wi-Fi portal → Persistent settings: persists settings
- Wi-Fi portal → Radar location: saves coordinates
- Wi-Fi portal → Range settings: resets units
- Runtime loop → Radar location: loads center
- Runtime loop → Range settings: initializes / cycles
- Runtime loop → ADS-B client: requests updates
- Runtime loop → Range settings: gets fetch radius
- Runtime loop → Radar location: gets query center
- ADS-B client → adsb.fi API: fetches JSON
- ADS-B client → Aircraft state: parses aircraft
- Runtime loop → Radar composition: draws / refreshes
- Radar composition → Aircraft state: reads aircraft
- Radar composition → Radar location: reads center
- Radar composition → Range settings: reads scale
- Radar composition → Grid and theme: uses layout
- Radar composition → Runway overlay: draws overlay
- Runway overlay → Airport runway data: reads runway data
- Runway overlay → Radar location: reads center
- Runway overlay → Range settings: reads radius
- Runtime loop → Display driver: initializes
- Runtime loop → Status screens: shows setup state
- Wi-Fi portal → Status screens: shows portal state
- Radar composition → Display driver: renders frame
- Radar composition → Font support: sets text styles
- Runway overlay → Font support: sets label fonts
- Display driver → Round display: drives
- Status screens → Round display: renders