ATC Raspberry Pi Setup

Manual steps to install ATC software on Raspberry Pi:

Configuration of RTLSDR Airband and Client Set-up

To help you configure the Airband software, please answer the questions below.

The Airband software is use to record multiple air traffic control (ATC) frequencies through your SDR dongle(s). If the information on this page is not enough, you can find more details on the RTLSDR-Airband Wiki.

1 Choose recording device(s)
Which SDR devices will you be using to record the ATC frequencies?
  • The Id is the index of your SDR dongle. The first device -> 0, second device -> 1.
  • The Name is a descriptive name you can choose to identify your device, e.g. RTLDSR Dongle A
  • The Bandwidth is the maximal bandwidth in MHz which your device supports
Id Type Name Bandwidth Actions
{{ device.number }} {{ device.type }} {{ device.name }} {{ device.bandwidth }}
2 Choose your location
From which location will you be running the receiver?
  • Find out coordinates by address
  • location image
    {{ selectedAddress.street }} {{ selectedAddress.postalCode }} {{ selectedAddress.adminArea6 }} {{ selectedAddress.adminArea5 }} {{ selectedAddress.adminArea4 }} {{ selectedAddress.adminArea3 }} {{ selectedAddress.adminArea2 }} {{ selectedAddress.adminArea1 }} {{ selectedAddress.geocodeQuality }}
or directly enter coordinates (for instance from Google Maps)
  • Geographic coordinates (decimal format)
3 Choose the airport
Which airport do you want to listen to?
Based on your location {{ Math.abs(parseFloat(latitude)) }}° {{ (parseFloat(latitude) > 0) ? 'N' : 'S' }} {{ Math.abs(parseFloat(longitude)) }}° {{ (parseFloat(longitude) > 0) ? 'E' : 'W' }}, the following airports seem to be near by. The airports are sorted by distance.
No airports available near coordinates
We recommend a maximal distance of 10km to the airport for an acceptable quality.
4 Choose which frequencies to record
Which ATC channels/frequencies do you want to record?
Based on the chosen airport {{ selectedAirport.name }} the following frequencies are available. You specified that you have {{ devices.length }} SDR devices available with bandwidths {{ devices.map(dev => dev.bandwidth + 'MHz').join(', ') }}. For each device the frequencies that you select and assign to them, have to be within the bandwidth. Example: If you select and assign 118.0, 119.0, 120.0 to a device that has a bandwidth of 2.4 that is ok as they are maximally 2.0 apart.
  • ATC communication frequencies
  • Recording device:
5 Result - suggested configuration for RTLSDR-Airband

Based on your answer, we suggest to use the following configuration for Airband. Copy this text to file /usr/local/etc/rtl_airband.conf to your Raspberry Pi (you need to be root (e.g. sudo cp /path/where/you/saved/it /usr/local/etc/rtl_airband.conf). Once copied the content over, restart the service with sudo systemctl restart rtl_airband and check that it is running with sudo systemctl status rtl_airband.

For non-RTLSDR type devices, you might need to modify or add some of the generated configuration. Further reading MiriSDR and SoapySDR

    devices:
    (
{ type = "{{ device.type }}"; index = {{ device.number }}; gain = 25.0; correction = 0; mode = "multichannel"; centerfreq = {{ device.centerFrequency.toFixed(3) }}; channels: (
{ freq = {{ frequency.frequency.toFixed(3) }}; outputs: ( { type = "rawfile"; directory = "/home/pi/output_airband"; filename_template = "{{ frequency.template }}"; continuous = true; } ); },
); },
);
6 Set-up Opensky ATC Client

Once you have restarted and tested rtl-airband is recording .c16 files, you are ready to configure the feeder:

  1. Register your new device with the following command. When asked for the username, use the one you are already using on opensky-network.org. For the password, choose any new password: opensky-atc-feeder register -u -p
  2. Configure the feeder to match your rtlairband config with:
    
    opensky-atc-feeder configure -a="{{ selectedAirport.icaoCode }}"\
     -f="{{ feederFreqConfig }}"\
     -l="{{ latitude }},{{ longitude }}"\
     -o="{{ selectedAirport.country }}"
                            
  3. Start the feeder service to send the recordings to Opensky Network: sudo systemctl start opensky-atc