Install Airband Receiver on Raspberry Pi

This Post Gives Upgraded Method of Compilation of RTSDR-Airband Source Code:

From Original: Cmake make make install
To: dpkg-buildpackage, which creates a .deb Package
 

The repository RTLSDR-Airband uses following method to build & install

cd <cloned source folder>
sudo mkdir build && cd build
cmake ../
make
make install

I wanted to build .deb package from this source code. This repository lacked folder debian with necessary files to enable building of .deb package..

To achieve my objective to build .deb package, I did following:

  1. Forked the above noted repository.
  2. Inside my fork’s source code, I added a folder named debian.
  3. Inside the newly created folder debian, created several files as shown in Screenshot-2
  4. Wrote necessary code in all the newly created blank files.

Above steps enabled building .deb package by running command:
sudo dpkg-buildpackage -us -uc -b.

Screenshot-1: The Finished Product

Screenshot-2: Contents of folder debian

 

Screenshot-3: Contents of file debian/control

 

Screenshot-4: Contents of file debian/compat

 

Screenshot-5: Contents of file debian/rules

 

Screenshot-6: Contents of file debian/postinst

 

Screenshot-7: Contents of file debian/rtl-airband.install

 

Screenshot-8: Contents of file debian/rtl-airband.service

 

 

3 Likes

I have uploaded to my fork of RTLSDR-Airband at Github, the pre-build packages of rtl-airband for 32-bit & 64-bit (armhf & arm64) RPi OS Bookworm and Trixie.

Please visit following page to see instructions for downloading and installing these packages:

 

Screenshot 1 of 2 : Icecast status page

 

Screenshot 2 of 2 : ATC audio stream playing in browser’s embeded audio player

 

 

Ah that’s nice, I have an unused airband reciever lying around ( The Airnav Yellow setup).

I will give it a try this week to see if i can get it to operate. Thanks for that.

1 Like

when configuring file /etc/airband/rtl-airband.conf, dont forget to change default port from 8080 to 8000. The part 8080 is used by dump1090-fa, and it will cause conflict if you are running dump1090-fa on same RPi.

Contents of default config file /etc/airband/rtl-airband.conf.
You will need to edit some of these parameters to suit your install.

Scroll down to see full code

# Scanning mode example
# Single dongle, three frequencies, output to Icecast server and to a file.
# Refer to https://github.com/rtl-airband/RTLSDR-Airband/wiki
# for description of keywords and config syntax.

devices:
({
  type = "rtlsdr";
  index = 0;
  gain = 25;
  correction = 80;
  mode = "scan";
  channels:
  (
    {
      freqs = ( 118.15, 124.7, 132.1 );
      labels = ( "Tower", "Ground", "Approach" );
      outputs: (
        {
          type = "icecast";
          server = "icecast.server.example.org";
          port = 8080;
          mountpoint = "stream.mp3";
          name = "Tower + Ground + Approach";
          genre = "ATC";
          description = "My local airport - aggregated feed";
          username = "source";
          password = "mypassword";
          send_scan_freq_tags = false;
        },
        {
          type = "file";
          directory = "/home/pi/recordings";
          filename_template = "TWR+GND+APP";
        }
      );
    }
  );
 }
);


 

If you want to record audi as mp3 files, you will have to create a folder /home/pi/recordings.

If you dont want to save recordings, comment our code pertaining to recording, as shown below:

       },  ## In this line, remove comma "," after curly bracket "}"
        #{
        # type = "file";
        # directory = "/home/pi/recordings";
        # filename_template = "TWR+GND+APP";
       #}

 

Airband DIY Antenna.

I am using a ¼ wl + ¼wl dipole made of RG6 coax. I actually made it for AIS 162 MHz, with each limb 46cm, but it works ok on airband also.

If you are making for airband, use each limb 58cm which is calculated for center frequency (122 Mhz) of vhf airband (108 ~137 mhz)..

 

 

1 Like

Well something is not ok with the airband package I guess, or, as usual, the issue is between the chair and the keyboard., installed it on 32 bit Bookworm with the appropriate debian package.

It gives me an failure on the service:

sudo service rtl-airband status
● rtl-airband.service - RTL Airband Receiver
Loaded: loaded (/lib/systemd/system/rtl-airband.service; enabled; preset: enabled)
Active: activating (auto-restart) (Result: exit-code) since Mon 2026-03-30 20:05:38 CEST; 3s ago
Process: 1476 ExecStart=/usr/bin/rtl-airband -F -c /etc/airband/rtl-airband.conf (code=exited, status=1/FAILURE)
Main PID: 1476 (code=exited, status=1/FAILURE)
CPU: 29ms

Airband config file:

The password is edited out for security reasons :wink:

I’ve tried it with the yellow airband dongle from Airnav and the antenna that comes with it and with a RTL-SDR v3 dongle both to no avail.

Icecast server is up and running on port 8000 but has no mountpoints due to the rtl airband service not running.

@abcd567 Am i doing something wrong here ?

@tomvdhorst

This error is caused by rtl-airband and another program (e,g dump1090-fa or readsb) are trying to use same dongle.

In your config file, rtl-airband is required to use dongle index 0.

Please check if dump1090-fa or readsb are not using dongle index 0. This can be checked by following command:

`rtl_test -t

 

In my case, device index 0 is being used by dump1090.

I have therefore changed device index to 1 in rtl-airband.conf .

 

SERVER NAME & PASSWORD:

INCOMPLETE COMMENT OUT:

 

Hi all,

I was just playing with rtl_airband a month or so ago.

The .conf file supports either the device index number (0, 1, 2, ..) or the serial number. Using serial gets rid of many of the problems that pop up with just using index, which might possibly change.

From the documentation:

index (integer) - indicates which RTL device this section applies to. This is important when you have more than one RTL device connected at the same time. Alternatively you may provide serial number of the device using serial option.

serial (string) - another way to indicate which RTL device shall be used. The advantage over index is that this number does not change across reboots or when reconnecting dongles in different order. If both serial and index options are given, serial takes priority. To find out serial numbers of your dongles, launch rtl_test utility - it discovers all connected devices and prints their details.

Here is how it looks using serial instead of index:


devices:
({
type = “rtlsdr”;
serial = “502”;
gain = 38.6;


When I first started configuring the program and .conf file, I made multiple errors and then tracked them down one at a time. Running a stable program as a service is fine, but I find it much easier to initially run the program manually, so that I can immediately see every error as it happens. When running it manually as below, if there is any error in the .conf file, the program will output the error and the .conf line number. That makes it easier to locate. I also made the classic extra “,” error you did.

When running the program manually, I ran it with the run-rtl_airband script below, which also explains the two switches I used. The script also has the program -h info as remarks, which often saves time.

dan@Acer-722:~$ cat run-rtl_airband
# run in foreground
rtl_airband -c /home/dan/rtl_airband.conf -f -e

# -f  to run in foreround for troubleshooting
# -e  to see messages in output (not in log)

# normal logging goes to /var/log/syslog
# Use this to tail the syslog
#  tail -f -n 20 /var/log/syslog

# dan@Acer-722:~$ rtl_airband -h
# Usage: rtl_airband [options] [-c <config_file_path>]
#         -h                      Display this help text
#         -f                      Run in foreground, display textual waterfalls
#         -F                      Run in foreground, do not display waterfalls (for running as a systemd service)
#         -Q                      Use quadri correlator for FM demodulation (default is atan2)
#         -e                      Print messages to standard error (disables syslog logging)
#         -c <config_file_path>   Use non-default configuration file
#                                 (default: /usr/local/etc/rtl_airband.conf)
#         -v                      Display version and exit

I am not currently using the program now, but just wanted to tinker with it for a few hours one day. To be honest, I did not use it long enough to actually figure out how to use the pulse audio feature for live local audio. All my testing was to file.

Regards,
-Dan

2 Likes

@MC130E
Thank you very much Dan for your valuable advise and tips.

Thanks I’m going to check tonight.

Indexnumber shouldn’t be an issue since it is hooked up to a separate Raspberry Pi that has no other dongle connected.

Well progress is made, the process is running now after the edits but it throws a socket error now

If you need additional items let me know, all suggested adaptions in your post have been set.

 

Seems on RPi setups localhost doesn’t resolve correctly inside services.

Initially I also faced same problem of Socket error.
In rtl-airband config I changed localhost to 127.0.0.1, and that solved the Soocket problem. Please see screenshots below.

 

Click on Screenshot to See Larger Size

 

Yep that has cleared the error. Thank you for the guidance.

When home again I’m going to see if I can get some noise out of the system :wink:, the normal media player is on a different system ( working remote at the moment).

The stream is up and running anyway, if this works ok then I can add some additional frequencies.

Glad to know your setup isnow running OK

The installation on bookworm and trixie is icecast ver 2,4, black interface and lacks mp3 support.

on forky, the icecast2 is version 2.5, has white interface and best of all it has support to play mp3 in embeded player of browser.

1 Like

Thanks for the additional information, I’m not ready for forky yet. I keep all the Pi’s on the same OS level, only testing machines can have a different one. That keeps the maintenance works more simple and needs one big maintenance window instead of multiple ones when upgrading.

By using the link on the icecast server I can run the mediaplayer in a different browser window (That’s how I intend to use it).

I have not recommended you to use forky. I mentined it to clarify why in my earlier post, the screenshot of icecast is white and has an extra button to play mp3.

1 Like

Thanks I understand that you didn’t recommend forky. I’m glad I have been able to put the set I had lying around here to use with the help of your guidance.

It is installed at the place intended now, has got additonal frequencies (added FIS channel and the emergency channel) and now I can listen in whenever I want to do so. Lot of GA activity over the weekend here so it will be nice to listen in.

1 Like

@tomvdhorst

Which antenna and dongle are you using for Airband?

I use DIY vertical dipole made by splitting core & shield of 58cm length of RG6 coax.

I am using a generic DVB-T Black. I have couple of these which I purchased during 2012 ~ 2014. These became surplus when I replaced these by FA ProSticks and RB24 FlightSticks when these were marketed after 2015.

 

I’m using this setup:

I’ve bought it around a year ago second hand together with an ADSB setup from a guy that intended to set them up both but never did. So both were unused new in the packaging for 70 euro. The ADSB setup is already in use but I still had to set this one up properly.

It comes with a yellow Airnav dongle for the VHF frequencies but I also can deploy a RTL-SDR with it if needed.

1 Like

Feeding Airband audio to AirNav Radarbox24 Site from my rtl-airband running on Raspberry Pi. Just added one more output to AirNav Radarbox24

 

https://www.airnavradar.com/stations/EXTVHF000597

 

 

1 Like

Yes that could be done as well but I scan multiple frequencies with my setup so that makes a live feed more complicated.

I haven’t hooked it up to a site yet, I use it for my own preferences.

1 Like