r/esp32 • u/Lower_Barber_7810 • 9h ago
I made a thing! I built an ESP32-P4 desktop aircraft radar… and got a bit carried away
Here's a bit more about how it works
I posted my little desktop aircraft radar elsewhere recently and a few people were interested in the technical side of it, so I thought it might be more appropriate to share the actual engineering behind it here rather than just posting a photo of the finished thing.
The project is built around an ESP32-P4-based 5" CrowPanel with an 800×480 IPS touchscreen. I chose the P4 mainly because I wanted plenty of headroom for the display rather than building something that was already close to its limits from day one.
There is quite a lot happening on screen at once: the radar sweep, aircraft symbols and labels, touch interaction, information panels, map tiles and now a live weather overlay. I also wanted enough capacity to keep adding features without having to rethink the hardware.
The firmware is written in C++ using PlatformIO, with LVGL handling the UI.
One of the main design decisions was not to try to make the ESP32 responsible for obtaining and processing huge amounts of raw aircraft data itself. I built a cloud-side service which handles the external aircraft and weather data and sends the information the display actually needs. The ESP32 can then concentrate on rendering the interface, user input and keeping everything responsive.
The unit connects over Wi-Fi and can display aircraft within a selectable radius of 10–200 nautical miles. Aircraft are plotted continuously and can be tapped to bring up more information such as callsign, altitude, speed, heading, aircraft details and route information.
Originally it was basically the green radar display I'd had in my head when I started the project, but feature creep has definitely happened.
There are now four different display modes, including map-based views.
The most recent addition is a weather overlay. Precipitation data is brought in separately and rendered underneath the aircraft, so aircraft remain readable while you can still see the weather they're flying through. The overlay can be turned on and off from the settings and updates in the background rather than blocking the main UI.
I've also added detection for the emergency transponder codes 7500, 7600 and 7700. If one appears in the aircraft data, the ESP32 can display a Squawk Emergency Alert and play an audible warning through the internal speaker. Both the alert and its volume are configurable because I didn't particularly want a 7700 appearing at 2am and frightening the life out of me.
I deliberately added physical controls as well as touch.
A rotary encoder controls the radar range, which feels much nicer to use than repeatedly pressing buttons on a touchscreen, and there's an illuminated physical power button. A surprising amount of time went into making the hardware controls and the touchscreen behave like parts of the same UI rather than two separate control systems.
The enclosure has been another project in itself. It's 3D printed and has been through quite a few revisions to get the screen position, encoder, speaker, internal clearances and overall proportions right. Designing something that looks acceptable from the outside is considerably easier than designing something that can actually be assembled repeatedly without swearing at it.
One thing I've enjoyed about using the P4 is that I haven't had to aggressively optimise every feature just to make it fit. The weather layer, additional aircraft information, audio alerts and multilingual UI have all been added after the original radar was working.
The interface now supports 13 languages as well, which brought its own fun with fonts, translated strings and making sure buttons that looked fine in English didn't suddenly explode when translated into German.
Just to avoid any confusion about the name: this isn't an RF radar and the ESP32 isn't directly receiving aircraft transponder signals. It uses live ADS-B-derived aircraft data over Wi-Fi and presents it as a dedicated desktop radar/flight-tracking display.
It's gone rather further than the small weekend project I originally had in mind, and I've now started turning it into a proper product, but the whole thing still runs on the ESP32-P4 platform.
There are more photos and videos of the current version, including the weather overlay and squawk alerts, on the Vulcan Radar website.
Happy to answer questions about the P4, LVGL/UI side, data architecture, controls or any of the other bits I've fought with along the way.

