Flight-test helicopter
ADS-B transponder broadcast
Engineering case study
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.
01 — The challenge
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.
ADS-B transponder broadcast
Low-latency UDP messages
Decode · select · record · transmit
Position tracking feed
Relevant flight data
Map · trail · feedback · coverage
02 — The solution
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
Receives and decodes ADS-B messages, maintains the current aircraft state, records flight data, and publishes the tracking feed.
Displays aircraft movement, antenna feedback, system status, and altitude-dependent terrain coverage.
Supporting interfaces and tooling
Transmits the latest aircraft position over UDP at the 10 Hz rate expected by the antenna system.
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
The helicopter broadcasts its position through its ADS-B transponder.
The on-site Radarcape receives and publishes the aircraft message over UDP.
The tracking engine decodes the message and identifies the configured flight-test helicopter.
The latest latitude, longitude, altitude, speed, heading, and timestamp are decoded and stored as the current aircraft state.
The engine sends the most recent aircraft position to the telemetry antenna at 10 Hz.
Flight data is recorded to CSV and published separately for dashboard visualisation.
04 — Key engineering decisions
The tracking feed operates independently from dashboard rendering, so interface latency cannot interrupt position updates.
The Radarcape UDP output provides aircraft messages as they are received, avoiding the slower refresh behaviour of the available JSON interface.
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.
Aircraft identifiers, receiver settings, antenna communication, site coordinates, recording, and coverage resources are externalised where supported by the implementation.
05 — Low-latency tracking
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
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
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
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.
Antenna communication does not depend on dashboard rendering.
Relevant aircraft states are retained in CSV files for traceability.
Operators can compare aircraft position with the antenna’s reported direction.
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
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 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
Real-time equipment communication should remain independent from visualisation and non-essential services.
Connected systems rarely operate at the same frequency. A robust interface must handle this mismatch explicitly rather than hiding it.
Replacing a legacy tool is an opportunity to improve maintainability, configurability, observability, and future deployment.
Delivering the system required combining software architecture, networking, hardware integration, flight-test operations, and geospatial analysis.