The NES Radar flight tracker, an open-source project by k6lcm on GitHub, turns a stock Nintendo Entertainment System into a live air-traffic display, using nothing more exotic than a ROM cartridge and a carefully wired cable into controller port 2.
There is no radio hardware involved, despite the name. No ESP32 tucked into the cartridge shell, no Raspberry Pi Pico W hiding behind the label. The cart is a plain ROM that holds the software, full stop. What makes the whole thing work is the cable: k6lcm routes data through the NES’s second controller port, repurposing it as a serial connection. A Python script running on a nearby computer does the actual heavy lifting, fetching aircraft positions and streaming them down to the console.
What the NES Radar Flight Tracker Actually Shows You
Switch the NES on with the cartridge inserted, key in an International Civil Aviation Organization (ICAO) airport code, and the software begins plotting nearby traffic on screen. The scope covers 9 nautical miles and can display at most eight aircraft simultaneously, which is a direct consequence of the NES hardware sprite limit. Put in KATL, the world’s busiest airport, and you will see some of the traffic, but certainly not all of it.
The eight-sprite ceiling is not a design oversight; it is simply the ceiling the 2C02 picture processing unit imposes. Work within it and the result is a clean, readable radar picture on a 40-year-old games console, which is a reasonable trade.
For the serial link itself, the project requires a 5 V FTDI USB serial cable, wired directly to controller port 2. The NES controller port carries the lines needed to make this work at 9600 baud, and the Python script bridges the gap between the console and the internet. Live traffic data comes from adsb.fi, and the script needs outbound HTTPS access to that service to pull current positions. ADS-B, the broadcast positioning system that modern aircraft transmit, has spawned a rich ecosystem of free APIs, and k6lcm’s script taps one of them to keep the NES display current.
Roots in the Commodore 64 and a Familiar Serial Trick
The NES Radar flight tracker did not appear from nowhere. It is based on c64u-radar, an earlier project by the same author that performs the same Python-server trick but relies on the Commodore 64 Ultimate’s LAN port to pull data rather than a serial cable. The C64 Ultimate cartridge gives the Breadbin a proper network interface; the Nintendo hardware has no such luxury, so the controller port was the logical alternative.
This is not the first time someone has pushed serial data into an NES controller port to achieve something the console was never designed to do. A satellite-tracking project used a comparable approach some years ago, demonstrating that the port’s electrical characteristics are accommodating enough to carry more than button presses and D-pad signals.
Both projects sit in a broader tradition of coaxing hardware from the 8-bit era into conversations with the modern internet. The NES launched in North America in 1985; the idea that one can feed it a live stream of transatlantic flight data in 2024, using free public APIs and a five-dollar FTDI cable, says something pleasing about how far the homebrew and hardware-hacking communities have stretched these machines beyond their original purpose.
The full project, including the ROM, the Python script, and wiring instructions, is available under the GPL on the k6lcm GitHub repository. A tip from Levi brought the project to wider attention.
