In my spare time, I designed and built a desk display from breadboard to finished product. It shows live air traffic over the San Francisco Bay Area on a 1.28" round screen. An ESP32 pulls real-time ADS-B data over WiFi and draws every nearby aircraft over a cached map. It's housed in a friction-fit enclosure refined through 40+ prints and controlled by a single knob. Running 24/7, it logged 16,972 aircraft across 313 types in its first 16 days.
Design Goal: Create a desk display that shows live air traffic over the Bay Area without having to open an app.
Form Factor: A live map, dozens of aircraft, and detailed stats all had to fit on a 1.28" round screen, in a compact housing.
Interaction Constraint: One rotary knob and no touchscreen, so every feature had to be reachable by turning, clicking, or holding.
Reliability Requirement: Run 24/7 through peak traffic and power cycles without crashing or losing logged data.
Hardware Selection: Chose an ESP32 for its built-in WiFi capabilities and enough flash to cache a full map. It drives a 240x240 GC9A01 round display over SPI, and a push-button rotary encoder is the sole input.
CAD & Fit Testing: Created a custom enclosure in Fusion 360 and refined it through 40+ test prints, tuning tolerances until the display, ESP32, and encoder each lock in with at least one friction fit.
Tolerance Iteration: Split critical features into smaller test pieces, like a bezel-only print for the display and specific prints for the encoder and ESP32.
Design for Assembly: Replaced breadboard jumpers with soldered wiring routed to pack within the enclosure. The final housing has a recessed screen, embossed lettering, and side USB access for power and updates.
Live Radar Map: Aircraft icons are shaped by type and colored by altitude, with trails, model tags (738, A359, 773ER), and smooth motion between data updates over a flash-cached map.
Runways & Approaches: Detects and highlights the active landing and departure runways at SFO, SJC, and OAK, and shows a side-view approach profile of planes on final.
Aircraft Details: Click any plane for its airline, type, distance, speed, altitude, and route. Hold to lock onto the plane and track it.
Alerts: On-screen banners for new speed records, go-arounds, and emergency squawk codes, plus phone notifications for rare aircraft like A380s.
Flight Statistics & Fleet Log: Daily traffic heatmap and 7-day and all-time totals. It recognizes individual aircraft by tail number and tracks repeated sightings.
Web Dashboard: A companion webpage at radar.local shows all stats and logs.
Field Testing & Debugging: Validated the device through continuous operation, diagnosing failures from the serial monitor and health logs. I traced crashes at 100+ planes to RAM limits and switched to parsing one aircraft at a time.
Results: 16,972 aircraft and 313 types logged in the first 16 days, with 212 airlines and 152 airports across 33 countries recorded so far.
Flight data from adsb.fi. Map © OpenStreetMap contributors, Geoapify.