Resurrection project • Linux application • 8 September 2026

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.

From driver to application

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.

Live screenshot

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.

adsb-radar GTK4 application showing 35 live ADS-B targets on a green radar scope with aircraft table
Development screenshot, 8 September 2026. The current 0.1.14 release adds the Fake ATC locator and target halo on top of this radar UI.
Features

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
Fake ATC is not received ATC traffic. It is a visual simulation generated locally from changes in ADS-B state. It does not decode controller voice, clearances or any hidden ATC channel.
Requirements

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

libadsb-reader documentation and download →

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
Compile & install

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
Starting the radar

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.

How the motion works

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.

0.1.14 release notes

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.
Download

Source release 0.1.14

tar.gz

Traditional source archive for Linux and Unix-like systems.

adsb-radar-0.1.14.tar.gz

SHA256
917426c8c8d96271dbd2138bb5fc342a0158777eebccb300e4766cdb5932d594

ZIP

The same source tree packaged as ZIP.

adsb-radar-0.1.14.zip

SHA256
5416872e93e35723e92f8006be069bcf61346d6e4c774b0bacdfa493b75d73a9

Project scope

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.