Open-source project
yashmulgaonkar/FlightScnr_Pi avatar
yashmulgaonkar/FlightScnr_Pi

FlightScnr Pi: a round-display aircraft and marine radar for Raspberry Pi

Desktop flight and marine radar: a real-time aircraft and marine vessel tracker powered by a Raspberry Pi and 4" round screen.

615 stars46 forksPythonNOASSERTION

At a glance

What is it?
FlightScnr Pi puts an animated radar sweep, map tiles and ATC audio on a 720x720 round DSI touch panel, with a local web portal for configuration instead of SSH. The catch is the hardware list and the API keys.
Who is it for?
Adopt FlightScnr Pi if you already own a Raspberry Pi and one of the two supported Waveshare 4-inch DSI panels, and you accept that FR24_API_KEY buys routes and tracked flights while adsb.fi alone gives positions. Skip it if you want a headless feeder, a general-purpose dashboard, or marine coverage you can rely on, since the README calls aisstream.io unreliable.
Can I use it commercially?
Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
Is it still maintained?
Yes. The repository received new commits within the last day.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 1, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What FlightScnr Pi actually replaces

Most aircraft-tracking setups end at a browser tab. FlightScnr Pi is for the other case: a small dedicated appliance on a desk or shelf that shows live traffic without a keyboard nearby. The README describes a round 4-inch touch display for Raspberry Pi with a dark radar UI, an animated sweep, map tiles, gesture navigation, LiveATC audio and a local web portal for setup, and states that no SSH is required for day-to-day use. That last point is the real design decision. Configuration lives in a web portal and in scrollable on-device list pickers, so routine changes such as swapping a map style or picking an ATC channel do not mean opening a terminal.

The audience is narrow on purpose. You need a Raspberry Pi, one of two specific Waveshare panels, and a willingness to assemble a physical object. The repository ships install-pi.sh, a systemd-oriented deployment path, a config.h.example and a .env.example, which tells you the project expects a single-purpose device rather than a library you import into something else.

How the data reaches the radar

The pipeline is a set of independent feeds drawn onto one canvas. Positions come from FR24 or from adsb.fi, with optional local dump1090/readsb as a third source. Weather comes from Tomorrow.io for the clock screen, precipitation optionally from LibreWXR with a RainViewer fallback, and the optional overlays are USGS earthquakes and wildfire layers from CAL FIRE, NIFC and NASA FIRMS. Marine vessels arrive over the aisstream.io WebSocket, which is why websockets appears in requirements.txt alongside pygame for the display.

The configuration model is deliberately flat. The .env.example states that all configuration lives there and that config.py reads exclusively from env vars, with no defaults hardcoded in source for user-specific values. For systemd deployment, install-pi.sh copies .env to /etc/flightscnr.env. That is a clean split: secrets and keys in one file, code in the repository, and a portal on top for the settings a user changes often.

The key constraint is what happens without FR24. The .env.example says that without FR24_API_KEY the app still runs on adsb.fi only, giving positions on the radar but no routes, airline details or tracked flights, and that adsb.fi is a free cloud API requiring no local receiver or dongle. So the free path is real but visibly thinner, and the paid FR24 subscription is what fills the detail screens.

Installing FlightScnr Pi and getting a first radar sweep

The README points at the Wiki for build, install, features and troubleshooting, with Software Setup covering OS, display overlay, install, Wi-Fi and config, and Hardware covering the bill of materials. The repository root holds the pieces those guides drive: install-pi.sh, requirements.txt, .env.example and config.h.example.

Start from the environment file, because every user-specific value lives there.

bash
cp .env.example .env
nano .env

Fill in FR24_API_KEY and TOMORROW_API_KEY. The .env.example is explicit that FR24_API_KEY is the subscription key and token in the format "subscription_key|token", and that it is not the separate FR24 Explorer REST API key. AIRLABS_API_KEY and AISSTREAM_API_KEY are commented out and optional. For a first run without a paid subscription, enable adsb.fi instead, which the same file says gives positions with no routes or tracked flights.

Python dependencies are listed in requirements.txt, including fr24, flask, folium, pygame, websockets and python-dotenv.

bash
pip install -r requirements.txt

Then run the installer, which the .env.example says copies your .env to /etc/flightscnr.env for systemd deployment.

bash
./install-pi.sh

Two hardware notes belong before you power anything on. The README states the newer 4-DSI-TOUCH-C panel needs a different firmware overlay or it stays black, and that on that panel the display power cable is mandatory, not optional DSI power. It also links issue #207 for the overlay problem. The README does not document a rollback path if an update or overlay change goes wrong, so keep a known-good image.

Where FlightScnr Pi breaks or is the wrong tool

The README is unusually candid about one dependency: aisstream.io is described as known to be unreliable, and the guidance is to check portal settings and the upstream status monitors before assuming a FlightScnr Pi bug. That is honest, and it also means marine coverage is not something to build a workflow on. If vessels on the radar matter to you, treat the AIS layer as a bonus rather than a feature.

The second limitation is hardware lock-in. The display support is written around the Waveshare 4inch DSI LCD (C) and the newer 4-DSI-TOUCH-C, both 720x720. The requirements.txt comment says pygame is there for the 1080x1080 FlightScnr UI, which does not match the 720x720 panel described in the README; that inconsistency is worth resolving against your own panel before you order parts. A generic HDMI screen is not covered by the documented setup.

The third is scope. This is a display appliance. The README does not describe a REST API, a database, a historical archive or a headless mode. If you want to feed a map, log positions or query traffic programmatically, a plain dump1090 or readsb setup plus your own front end gives you the raw data without the panel, the gestures and the pygame layer.

FlightScnr Pi against a plain ADS-B receiver setup

The obvious alternative is a conventional ADS-B receiver: a Pi, a dongle and dump1090 or readsb, with a browser map such as tar1090 on top. The difference is where the work sits. A receiver setup is headless and data-first. You point a browser at it, and every consumer is something you add. FlightScnr Pi is presentation-first. It assumes a fixed round screen, draws its own radar, and puts configuration behind a portal rather than a config file you edit over SSH.

That changes the data story too. A dongle-based setup hears aircraft directly and keeps working when the internet drops, at least for positions. FlightScnr Pi defaults to cloud sources, FR24 and adsb.fi, and treats a local dump1090 or readsb as optional. So the two approaches fail differently: the receiver loses range, while the cloud-fed appliance loses everything if connectivity or an upstream API goes away.

FlightScnr Pi also bundles layers a receiver setup leaves to you: weather, precipitation, earthquakes, wildfires, FAA VFR sectionals, aircraft photos and LiveATC audio. If you want those assembled for you on a small screen, that is the trade you are making. If you want raw messages, it is overhead.

Maintenance, releases and licence status

The last push to main was on 2026-09-11, the same day as releases 2026.9.11.2 and 2026.9.11.1, with 2026.9.8.1 a few days earlier. The repository is not archived. The README's own text is out of step with the release list, claiming a current release of 2026.8.21.2, so trust the releases page and the VERSION file over the README body when you are checking what you are running. Note also that the README describes a 1080x1080 UI in one place and a 720x720 panel in another; the hardware sections are the ones to follow.

Upgrades are handled from the portal, which the README lists as offering Update Now, Later tonight, Finish install and Repair & Update. The presence of a Repair & Update option suggests the maintainer expects interrupted updates, which is a reasonable thing to plan around. The README does not document rollback.

The licence field is NOASSERTION, which means GitHub could not map the repository's LICENSE file to a standard SPDX identifier. A LICENSE and a NOTICE file both exist at the root. Read them before you redistribute anything or ship a device built on this code, particularly given the NOTICE file, which often carries attribution requirements for bundled assets. This is a description of the repository state, not legal advice.

Editorial conclusion

Adopt FlightScnr Pi if you already own a Raspberry Pi and one of the two supported Waveshare 4-inch DSI panels, and you accept that FR24_API_KEY buys routes and tracked flights while adsb.fi alone gives positions. Skip it if you want a headless feeder, a general-purpose dashboard, or marine coverage you can rely on, since the README calls aisstream.io unreliable. Before buying hardware, confirm your panel is the 4inch DSI LCD (C) or the 4-DSI-TOUCH-C and that you have the firmware overlay and the mandatory power cable for the newer panel; then check the LICENSE and NOTICE files, because the repository does not declare a standard SPDX licence.

Frequently asked questions

Where does FlightScnr Pi get its flight data from?

The README lists FR24 and adsb.fi as position sources, with an optional local dump1090 or readsb receiver. Route enrichment comes from an optional route source, and the .env.example notes AirLabs is used for schedule lookup when a flight is not airborne yet.

Is there a free version of FlightScnr Pi?

Yes, with limits. The .env.example states that without FR24_API_KEY the app still runs on adsb.fi only, showing positions on the radar but no routes, airline details or tracked flights, and that adsb.fi is a free cloud API requiring no local receiver.

How accurate is the radar data in FlightScnr Pi?

The repository does not make accuracy claims. Accuracy depends on the upstream feed you configure, FR24, adsb.fi or a local dump1090/readsb receiver, and the README does not publish latency or coverage figures for any of them.

Is Raspberry Pi allowed in flight?

The repository does not address aviation rules or carrying a Raspberry Pi aboard an aircraft. It only covers building and running the tracker on the ground, and the README mentions a boot safety disclaimer shown on the device.

Official sources

  1. Issues
  2. README
  3. Releases
  4. yashmulgaonkar/FlightScnr_Pi on GitHub
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/yashmulgaonkar-flightscnr-pi.svg)](https://hysenlabs.com/projects/yashmulgaonkar-flightscnr-pi)