Engineering case study

ADS-B Tracking
Platform

A low-latency platform that acquires live aircraft positions, supplies tracking updates to a telemetry antenna, and provides real-time operational awareness during flight-test campaigns.

10 Hzantenna update stream
~2 Hzlive ADS-B acquisition
2supported operating sites
120 pointsaircraft track history
Dynamicterrain coverage

01 — The challenge

A critical flight-test tool could no longer evolve.

During telemetry flights, a directional ground antenna must continuously follow the helicopter to receive live engineering data.

The existing LabVIEW application provided ADS-B positions to the antenna system, but it had become difficult to maintain, contained known limitations, and depended on a software version incompatible with the required Windows 11 migration.

Without reliable automatic tracking support, an engineer would need to monitor the position feed and antenna operation manually while also supervising the flight.

The challenge was therefore not simply to replace an ageing interface. It was to preserve an operationally critical capability while making it maintainable, observable, configurable, and ready for future flight-test sites.

Source

Flight-test helicopter

ADS-B transponder broadcast

Receiver

On-site Radarcape

Low-latency UDP messages

Critical path

Real-time tracking engine

Decode · select · record · transmit

10 Hz UDP

Telemetry antenna

Position tracking feed

Traceability

CSV recording

Relevant flight data

Published state

Operational dashboard

Map · trail · feedback · coverage

Offline / pre-generated
Terrain elevation dataCoverage generatorCoverage layersDashboard

02 — The solution

A modern tracking platform built around the critical data path.

The platform receives live aircraft messages from an on-site Radarcape, identifies the selected helicopter, records its state, and supplies tracking positions to the telemetry antenna.

The runtime architecture is divided into two independent layers. The real-time tracking engine handles acquisition, aircraft selection, antenna communication, recording, and logging. The operational dashboard consumes a separate published state for visualisation.

Supporting modules provide the antenna interface and generate terrain-coverage resources outside the live tracking path.

Runtime layers

Real-time tracking engine

Receives and decodes ADS-B messages, maintains the current aircraft state, records flight data, and publishes the tracking feed.

Operational dashboard

Displays aircraft movement, antenna feedback, system status, and altitude-dependent terrain coverage.

Supporting interfaces and tooling

Telemetry antenna interface

Transmits the latest aircraft position over UDP at the 10 Hz rate expected by the antenna system.

Coverage generator

Transforms digital elevation data into reusable line-of-sight coverage layers for multiple aircraft altitudes and operating sites.

Independent runtime layers keep dashboard refreshes and user interaction from interrupting the tracking feed.

03 — Real-time workflow

From aircraft broadcast to antenna tracking update.

  1. 01

    The helicopter broadcasts its position through its ADS-B transponder.

  2. 02

    The on-site Radarcape receives and publishes the aircraft message over UDP.

  3. 03

    The tracking engine decodes the message and identifies the configured flight-test helicopter.

  4. 04

    The latest latitude, longitude, altitude, speed, heading, and timestamp are decoded and stored as the current aircraft state.

  5. 05

    The engine sends the most recent aircraft position to the telemetry antenna at 10 Hz.

  6. 06

    Flight data is recorded to CSV and published separately for dashboard visualisation.

04 — Key engineering decisions

Keep visualisation outside the critical path

The tracking feed operates independently from dashboard rendering, so interface latency cannot interrupt position updates.

Use UDP for low-latency acquisition

The Radarcape UDP output provides aircraft messages as they are received, avoiding the slower refresh behaviour of the available JSON interface.

Bridge different update frequencies

ADS-B positions arrive at approximately 2 Hz, while the antenna expects 10 Hz. The engine continuously retransmits the latest valid position until a newer message is available.

Make site behaviour configurable

Aircraft identifiers, receiver settings, antenna communication, site coordinates, recording, and coverage resources are externalised where supported by the implementation.

05 — Low-latency tracking

The latest valid position remains continuously available.

Each incoming ADS-B message immediately updates the current aircraft state. A separate transmission loop sends the latest state to the antenna interface at the required 10 Hz rate.

Because ADS-B positions typically arrive at approximately 2 Hz, several consecutive updates may contain the same coordinates. The system does not interpolate or predict movement; it maintains the expected communication rate until a newer position is received.

The antenna’s internal fine-tracking capability then maintains accurate signal alignment.

UDP trade-off

Immediate messages without blocking the tracking path.

The Radarcape offered both JSON-based access and UDP output. JSON was easier to inspect, but refreshed less frequently. UDP was selected because aircraft messages are available as soon as they are received.

UDP does not guarantee delivery, but the system continuously transmits the latest valid state. For this operational use case, occasional packet loss is preferable to introducing additional latency or blocking the tracking loop.

06 — Terrain-aware coverage

Coverage changes with altitude because terrain does too.

The flight-test sites are located in mountainous terrain, where line of sight is strongly limited at low altitude.

The legacy application displayed one fixed coverage estimate. The new platform uses multiple terrain-derived layers and automatically selects the layer closest to the helicopter’s current altitude.

SwissTopo elevation data is processed through an automated Python pipeline that calculates visibility from the antenna location, generates coverage polygons, simplifies them for efficient display, and exports them for the dashboard.

The same workflow can be reused for another site when suitable terrain elevation data is available. Coverage is no longer a static background image. It is an operational layer that adapts to the aircraft altitude.

07 — Operational reliability

Designed for the telemetry room, not only for development.

The platform records aircraft data to CSV for post-flight traceability and produces logs that make communication and configuration issues easier to investigate. Antenna feedback is displayed alongside the aircraft position, while the recent trail, automatic zoom, and coverage switching reduce manual interaction during a flight.

Independent tracking engine

Antenna communication does not depend on dashboard rendering.

Recorded operational data

Relevant aircraft states are retained in CSV files for traceability.

Visible antenna feedback

Operators can compare aircraft position with the antenna’s reported direction.

Configurable deployment

Site-specific parameters can be changed without redesigning the application.

Most importantly: a failure or slowdown of the visual interface does not stop the tracking engine.

08 — Results

A legacy dependency replaced by a maintainable real-time platform.

10 Hzcontinuous antenna update stream
~2 Hzlow-latency ADS-B acquisition
2configurable operating sites
Windows 11ready architecture
Altitude-awareterrain coverage
Independenttracking and visualisation layers

The platform preserves the essential tracking capability of the legacy tool while removing its obsolete LabVIEW dependency. It adds a clearer operational interface, traceable flight data, reusable site configuration, and independent tracking and visualisation layers.

09 — My role

I rebuilt the software layer behind the telemetry tracking workflow.

I was the sole software developer responsible for translating the operational requirements into the new platform architecture.

I designed and implemented the real-time tracking engine, Radarcape UDP acquisition, aircraft selection logic, telemetry antenna communication, CSV recording, logging, configuration system, dashboard, mapping features, and terrain-coverage generation pipeline.

The operational requirements were refined through discussions with instrumentation and flight-test engineers. I then selected the technical approach and introduced additional improvements including aircraft history, automatic zoom, improved configuration, and altitude-dependent coverage selection.

10 — Lessons learned

Protect the critical path

Real-time equipment communication should remain independent from visualisation and non-essential services.

Design around actual update rates

Connected systems rarely operate at the same frequency. A robust interface must handle this mismatch explicitly rather than hiding it.

Modernisation is more than rewriting code

Replacing a legacy tool is an opportunity to improve maintainability, configurability, observability, and future deployment.

Engineering crosses domains

Delivering the system required combining software architecture, networking, hardware integration, flight-test operations, and geospatial analysis.