top of page
Search

Apptifly - Aircraft Tracking System Built with Software Defined Radio

  • Apr 13
  • 5 min read

Updated: Apr 14

Introduction

Every second, thousands of aircraft broadcast their position, speed, and identification data over open radio frequencies. With the right hardware and software, this data can be received, decoded, and transformed into a real-time view of global air traffic and you can build your own aircraft tracking system quickly similar to FlightRadar24.


In this project, we set out to explore how Software Defined Radio (SDR) can be used as the foundation of such a system. The result is Apptifly - a real-time aircraft tracking platform combining low-cost radio hardware with a modern cloud-based architecture. You can jump in even right now and see the sky over Apptimia's office in Szczecin, Poland. Go to www.apptifly.com.


Flight-tracking map showing aircraft PGT8EA over Poland at 11,278m and 895 km/h. Nearby aircraft: LOT3934 and SPOPA. Track details visible.
View of apptifly.com webpage

At the core of the solution is an SDR RTL-SDR v3 receiver connected to a Raspberry Pi, responsible for capturing ADS-B signals transmitted by aircraft. This raw radio data is decoded and sent to a backend system, where it is stored and distributed to connected clients. A Go service running on AWS EC2 handles data processing and delivery, while a React-based frontend provides a live visualization layer.


This article describes how we designed and implemented the system end to end. From radio signal acquisition to real-time data distribution and highlights the key technical decisions and challenges encountered along the way.

Sky Statistics screen showing aircraft data. Counts: 1 this hour, 208 today, 388 this week. Graph displays hourly distribution and peak data.
View of Apptifly statistic view from mobile

Software Defined Radio

Traditional radios are built for specific frequencies and signal types, with all tuning and signal processing handled by hardware. This makes them reliable but inflexible, and adding new capabilities often requires entirely new devices.


Software Defined Radio, or SDR, works differently. It captures raw radio signals with a general-purpose receiver and processes them in software. This allows a single device to handle a wide range of frequencies, decode multiple signal types, and even experiment with custom protocols through software updates.


SDR has made radio technology much more accessible. Hobbyists, researchers, and engineers can now explore applications that once required expensive specialized equipment. It is possible to monitor aircraft, ships, or satellites in real time, listen to amateur radio, experiment with IoT wireless protocols, or analyze the radio spectrum for research and education.


Some popular SDR devices include RTL-SDR v3, a low-cost USB dongle for beginners; Airspy Mini, which offers higher sensitivity and bandwidth for advanced users; and HackRFOne, capable of both receiving and transmitting signals across a wide frequency range.

Three SDR devices with USB connectors: a black RTL-SDR, a silver Airspy, and a black HackRF One, are placed on a white background.
Example SDR devices: RTL-SDR v3, Airspy Minim HackRF One

However, SDR comes with some limitations. Signal reception depends on antenna quality, frequency range, and environmental interference. Consumer SDRs, such as the RTL-SDR v3, typically support bandwidths of 2 to 3.2 MHz, which is sufficient for many hobbyist applications but much narrower than professional radios that can handle tens or even hundreds of MHz. SDR devices also have lower sensitivity and higher noise compared with commercial-grade receivers, and processing large volumes of data in real time can strain hardware.


Despite these limitations, SDR is a flexible, low-cost platform that turns radio into a programmable technology, making signal exploration accessible to a much wider audience.


Overview of our aircraft tracking system

Apptifly is designed as a full-stack system that turns raw aircraft broadcasts into a real-time, interactive visualization. The system is structured into three main layers: hardware, backend, and frontend, as illustrated in the diagram below.

Diagram showing an RTL-SDR and Raspberry Pi sending data to AWS. EC2, Go Server, and React Frontend interact with RDS, serving clients.
Diagram of the Apptifly system

At the hardware layer: a single Raspberry Pi paired with an RTL-SDR v3 dongle captures ADS-B signals transmitted by nearby aircraft. ADS-B, or Automatic Dependent Surveillance–Broadcast, is a technology used by modern aircraft to continuously broadcast their position, altitude, speed, and identification over open radio frequencies. The Raspberry Pi runs readsb, an open-source ADS-B decoder, which converts the raw radio signals into structured JSON data and streams it over a TCP connection. The antenna was placed at the highest point of our office building to maximize reception, achieving a coverage range of approximately 100 kilometers.


ADS-B transmissions are typically broadcast on 1090 MHz (Mode S / ADS-B Out used by commercial aircraft) and, in some regions, on 978 MHz (UAT, mainly used in general aviation). These frequencies fall well within the range supported by low-cost SDR devices such as the RTL-SDR v3, making them easy to receive without specialized hardware.


This makes ADS-B a particularly good fit for SDR-based systems. The signal structure is relatively simple, does not require decryption, and is broadcast continuously by aircraft. Combined with the ability of SDR to capture and process raw radio signals in software, it enables building complete tracking solutions using inexpensive and widely available components.

View through a skylight showing a tree with budding leaves against a clear blue sky. Sunlight casts shadows on the window frame, creating a serene mood.
View of antenna at Apptimia office

At the backend layer: a Go server running on AWS EC2 connects to the Raspberry Pi via an SSH tunnel to securely receive the live data stream. Aircraft positions and flight history are persisted to a PostgreSQL database hosted on AWS RDS, enabling efficient querying of historical flights alongside the real-time data stream. The server simultaneously streams real-time updates to connected clients using WebSockets for efficient data transfer.

Raspberry Pi connected to an RTL-SDR dongle on a wooden surface. Text on dongle: RTL-SDR.COM. Ethernet and USB cables attached.
Raspberry Pi with RTL-SDR dongle

Go was chosen over alternatives such as Python due to its strong performance characteristics, built-in concurrency model, and low resource usage. Handling multiple real-time data streams and client connections efficiently is critical in this system, and Go’s goroutines and lightweight threading model make it well-suited for this type of workload. In addition, Go produces a single compiled binary, which simplifies deployment and reduces operational overhead.


This layer ensures low-latency delivery and maintains a complete record of observed flights.


At the frontend layer: a React-based web application renders live aircraft positions on an interactive map. Users can access the system through web browsers on multiple devices, viewing real-time flight information with low latency.


By structuring the system in this way, Apptifly separates data acquisition, processing, and visualization into clear layers: the Raspberry Pi captures and streams signals, the Go server manages data processing and storage, and the frontend provides an accessible, real-time interface. Together, these components form a complete aircraft tracking platform.


Summary

Apptifly shows how Software Defined Radio can be used to build a real-time aircraft tracking system with affordable hardware and a modern cloud stack. From capturing ADS-B signals on a Raspberry Pi to processing data in Go and visualizing it in a React frontend, the project demonstrates a complete end-to-end pipeline.

It highlights both the accessibility of SDR and the importance of efficient real-time data handling in distributed systems.


This is one of many custom cloud-based web applications with embedded component in the avionics space at Apptimia. If you are facing a similar challenge or are curious about the implementation and want to leverage our capabilities and our 10 year UAV and IoT software experience, get in touch with us!

Dominik S., Software Engineer at Apptimia

Michał B., Software Engineer at Apptimia


 
 
bottom of page