adsb-radar
A native GTK4 radar display built directly on libadsb-reader. It turns the Museum's resurrected Kinetic SBS-1 and AirNav RadarBox V1 / RB-1 into a modern Linux radar screen — without requiring the original Windows software.
The radar that grew out of the resurrection
Once the original ADS-B receivers could be accessed directly from Linux through libadsb-reader, the obvious next step was to build something that made the decoded traffic visible. adsb-radar is that application: a small native C/GTK4 program using the public library API rather than a private hardware-specific path.
The radar began as a simple scope and aircraft table. During live testing it gained target trails, aircraft details, route enrichment, automatic range selection, smoother target motion and a deliberately playful Fake ATC display that derives controller-style commands from observed ADS-B state changes.
Native: talks to libadsb-reader directly and therefore works with the supported SBS-1 and RadarBox hardware.
Live: receives decoded callbacks continuously and updates the radar, target list and aircraft details in real time.
Experimental: the project is part museum exhibit, part engineering playground. Features such as Fake ATC are presentation tools, not real ATC data.
35 targets from a RadarBox V1
This development screenshot was captured during the 0.1.10 test cycle in western Hungary. The receiver shown at the bottom of the application is an AirNav RadarBox V1; the display had 35 active targets while using the same native Linux driver path provided by libadsb-reader.

What 0.1.14 can do
Radar scope
- 25–250 km display radius
- Optional automatic range based on the farthest active positioned target
- Range rings, cardinal directions and animated radar sweep
- Aircraft symbols, registrations and historical trails
- Special squawk highlighting for 7400 / 7500 / 7600 / 7700
Smooth target motion
- ~30 FPS scope animation
- Dead reckoning between real ADS-B position reports
- Uses current ground speed and track
- Extrapolation limited to 30 seconds
- Soft one-second correction when the next real position arrives
- Targets remain visible for up to 90 seconds
Aircraft table & details
- ICAO24, callsign, registration, type, altitude, speed, squawk and distance
- Optional operator, airline and route enrichment through the Museum resolver
- Click a table row to select the same aircraft on the radar
- Aircraft detail window with route and airport information
- Search by callsign, registration, ICAO24, type, airline or squawk
Fake ATC
- Infers presentation-only commands from significant ADS-B changes
- TURN LEFT/RIGHT HEADING nnn for track changes ≥ 10°
- CLIMB/DESCEND TO ... FT for altitude changes ≥ 500 ft
- INCREASE/REDUCE SPEED ... KNOTS for speed changes ≥ 50 kt
- Three-second pulsing halo identifies the affected aircraft
- Fake ATC rows are clickable and select the aircraft
Before compiling
1. Install libadsb-reader
adsb-radar links against the Museum's libadsb-reader. Version 0.1.16 is recommended for this release.
pkg-config --modversion libadsb-reader # expected: 0.1.16
2. GTK4 development files
On Debian / Ubuntu the radar itself needs a C compiler, pkg-config and the GTK4 development package.
sudo apt install \ build-essential \ pkg-config \ libgtk-4-dev
Building adsb-radar from source
# Download and unpack tar xzf adsb-radar-0.1.14.tar.gz cd adsb-radar-0.1.14 # Build make clean make # Optional system-wide install sudo make install
The Makefile obtains GTK4 and library flags through pkg-config:
pkg-config --cflags --libs gtk4 libadsb-reader
make install installs:
/usr/local/bin/adsb-radar /usr/local/share/applications/org.acarsd.adsbradar.desktop /usr/local/share/icons/hicolor/scalable/apps/org.acarsd.adsbradar.svg
Command-line examples
A receiver position is required because the radar has to calculate bearing and distance from the station to each aircraft.
# RadarBox V1, local decoding only adsb-radar --device radarbox --center 46.8300,17.8300 # Kinetic SBS-1 adsb-radar --device sbs1 --center 46.8300,17.8300 # Let libadsb-reader choose the attached supported receiver adsb-radar --device auto --center 46.8300,17.8300 # Enable Museum aircraft / flight / route enrichment adsb-radar --device radarbox \ --center 46.8300,17.8300 \ --resolve \ --location 46.8300,17.8300
Available command-line options
--device auto|radarbox|sbs1 --center LAT,LON --resolve --location LOCATION --resolve-db PATH --resolve-url URL
--center is mandatory unless a numeric --location LAT,LON can be reused as the radar centre.
ADS-B positions without the visual hopping
ADS-B position reports do not necessarily arrive at exactly the same moment as velocity, altitude or identification reports. Drawing only the last received coordinate therefore makes targets appear to jump across the screen.
Since version 0.1.9 the radar keeps the last real ADS-B position separate from the displayed position. Between real position updates it projects the aircraft forward using current ground speed and track. Version 0.1.10 corrected the state-snapshot logic to use updated_fields when deciding whether a new position or velocity value was actually received.
In the current release dead reckoning is allowed for up to 30 seconds. A target begins fading after 30 seconds without reception and is removed after 90 seconds. This makes short reception gaps much less disruptive while preventing aircraft from being projected indefinitely.
Finding the aircraft behind a Fake ATC command
- Fake ATC events now identify the affected aircraft with a conspicuous two-ring pulsing halo for three seconds.
- The matching Fake ATC log row is highlighted for the same interval.
- Fake ATC rows are clickable; clicking one selects the target and opens its aircraft detail window.
- Event timestamps now retain the real local event time.
- The short 700 ms symbol-to-white flash from 0.1.13 remains as an additional visual accent.
Source release 0.1.14
tar.gz
Traditional source archive for Linux and Unix-like systems.
SHA256
917426c8c8d96271dbd2138bb5fc342a0158777eebccb300e4766cdb5932d594
ZIP
The same source tree packaged as ZIP.
SHA256
5416872e93e35723e92f8006be069bcf61346d6e4c774b0bacdfa493b75d73a9
A Museum application that is still evolving
adsb-radar is intentionally compact. It is not intended to replace mature surveillance or air-traffic-control systems. Its purpose is to demonstrate the receivers and the public libadsb-reader API, provide a useful live display for the Museum's hardware, and preserve the engineering work around bringing these classic receivers back to life on modern Linux.
Receiver compatibility is defined by libadsb-reader. The Museum currently claims tested support for the Kinetic SBS-1 and AirNav RadarBox V1 / RB-1 hardware used during development.