Mode S and ADS-B Recorder for Android
In this project, we developed an Andoird App for recording ADS-B in mobile or remote scenarios. Recording ADS-B messages in such scenarios is challenging as most existing receivers often need a dedicated power source, have a large form factor and also need a more complex setup with a network interface.
The basic setup for using this App looks like this:
The GNS 5890 receiver has the size of an USB stick. It is powered over the USB port and has a low power consumption < 0.5W. The receiver can be connected via an OTG cable to most Android smart phones and tablets. This device therefore is a good candidate if you want to do ADS-B measurements in (very) remote places.
You have the following settings:
The main emphasis is on recording Mode S/ADS-B messages for further analyis. Along with the raw messages, meta data such as timestamps and the GPS position is stored. The App also displays some live statistics such as number of visible planes and received message per plane:
Example scenarios are:
- Mobile setups
- Inside an airplane
- On a car
or on a mountain:
As part of this project, we developed a USB CDC ACM driver for using the USB device in Android. The data received by the dongle is processed, the CRC will be checked, the ICAO extracted and the current time stamp attached. The data gets then inserted into an SQLite database. By benchmarking the App, we found that the application is able to continuously process more than 5000 messages per second (depending on the phone's hardware).
The resulting file contains the following tables:
position. The entries in table
flight_state are created periodically and describe the data received for each flight. For more details, open the database file and have a look at the database schema (e.g. with the query "
SELECT sql FROM sqlite_master"). The relations between the tables are as depicted in the following image:
- Github repository with the code
- APK of the application for installation
- The application is also introduced in this bachelor thesis (in German)