From The RadioReference Wiki

Revision as of 10:34, 6 May 2021 by Rodyeo (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Raspberry Pi Broadcastify RTL-SDR VHF Sharing Feed Appliance

RTLSDR-Airband or rtl_airband receives analog radio voice channels and produces audio streams which can be routed to various outputs.


Broadcastify Fully Supports RTLSDR-Airband or rtl_airband.

Please read and follow the initial setup guide for RTLSDR-Airband or rtl_airband.

User's Manual:

RTLSDR-Airband or rtl_airband support multiple frequency channel scanning features.

After you have completed the initial setup guide by "szpajder" the come back here to follow this custom setup guide which have been tested working!

Here is a custom rtl_airband.conf config file for Broadcastify server and local Icecast server if you have it setup in your Raspberry Pi unit.

Else you can set "disable = true;" if you do not need that section profile enabled. Otherwise set "disabled = false;" if you need that section profile to be enabled for active usage.

Note: If you uses two RTL-SDR dongle in a Raspberry Pi unit, please set a unique serial number to either one of the units using rtl_eeprom software.

Install RTL-SDR drivers and setup essentials for RTL-SDR dongle ...

sudo apt-get update -y
sudo apt-get upgrade -y

sudo cat <<EOF >/etc/modprobe.d/no-rtl.conf
blacklist dvb_usb_rtl28xxu
blacklist rtl8192cu
blacklist rtl2832
blacklist rtl2830
blacklist e4000

sudo apt-get install git-core -y
sudo apt-get install git -y
sudo apt-get install cmake -y
sudo apt-get install libusb-1.0-0-dev -y
sudo apt-get install build-essential -y

git clone git://
cd rtl-sdr/
autoreconf -i
sudo make install
sudo make install-udev-rules
sudo ldconfig
sudo reboot

--- BOF /usr/local/etc/rtl_airband.conf ---

# Sample file of "rtl-airband.conf" output to icecast streaming server
# RTLSDR-Airband - User's Manual:
# Refer to here for PPM Offset correction guide -

# index = 0 => First dongle 
# index = 1 => Second dongle

devices: ({
  type = "rtlsdr";
  index = 0;
  gain = 25.4;
  correction = 0;
  mode = "scan";
  sample_rate = 2.4;
  buffers = 10;
# squelch = 30; # Uncomment to set squelch manually
      freqs = ( 118200000, 119450000, 121900000, 124200000 );      # MODIFY_YOUR_AIRPORT_AIRBAND_FREQUENCY
      labels = ( "Tower", "S-Approach", "Ground", "N-Approach" );      # MODIFY_YOUR_AIRPORT_AIRBAND_FREQUENCY_NAME_LABELS
      outputs: (

	  # For local IceCast server
          type = "icecast";
          server = "";
          port = 8000;
          mountpoint = "local";
          name = "Airport_ICAO";
          genre = "ATC";
          username = "source";
          password = "hackme";
          send_scan_freq_tags = false;
	  description = "Local IceCast Server";
	  # For remote BroadCastify server
          disable = false;      # THIS_PROFILE_TEMPLATE_ACTIVE_IN_USED
          type = "icecast";
          server = "";     # FROM_YOUR_RR_FEED_PROVIDER_PAGE
          port = 80;      # PORT_OF_RR_FEED_PROVIDER_ICECAST_SERVER_USUALLY_8000
	  genre = "ATC";
          username = "source";
          send_scan_freq_tags = false;
	# If you need more outputs, put under here ...

	# NOTICE: Make sure you remove the comma at the end of the profile segment template. 
        # e.g. From "}," to "}" else you get an error. For the last profile template segment only.


--- EOF /usr/local/etc/rtl_airband.conf ---

Recommended RTL-Airband sample compile script for Raspberry Pi 2/3 uses V3D GPU mode by Tomasz Lemiech

--- BOF /root/ ---

cd ~
apt-get install build-essential libmp3lame-dev libshout3-dev libconfig++-dev libraspberrypi-dev librtlsdr-dev git cmake libfftw3-dev libxslt1-dev -y
git clone
cd RTLSDR-Airband
git checkout master
make help
sleep 10
cp /usr/local/etc/rtl_airband.conf /usr/local/etc/rtl_airband.conf.old
rm /usr/local/etc/rtl_airband.conf -R -f
make clean

if cat /proc/cpuinfo | grep ARMv6
   export PLATFORM=rpiv1
   if cat /proc/cpuinfo | grep Model | grep "Pi 2"
      export PLATFORM=rpiv2
       if cat /proc/cpuinfo | grep Model | grep "Pi 3"
          export PLATFORM=rpiv2
          export PLATFORM=armv8-generic

export NFM=1
make install

--- EOF /root/ ---

Instruction to activate and run at service mode...

--- BOF /etc/systemd/system/rtl_airband.service ---

Description=SDR AM/NFM demodulator

ExecStart=/usr/local/bin/rtl_airband -Fe -c /usr/local/etc/rtl_airband.conf
# The program may exit only due to startup failure (eg. misconfiguration)
# or due to failure of all SDR devices (eg. disconnection). In either case,
# there is no point to restart it, because it would fail once again.


--- EOF /etc/systemd/system/rtl_airband.service ---

Else see here is the summary of commands on the shell terminal...

sudo chown root.root /etc/systemd/system/rtl_airband.service
sudo chmod 0777 /etc/systemd/system/rtl_airband.service
sudo systemctl disable rtl_airband
sudo systemctl daemon-reload
sudo systemctl enable rtl_airband
sudo systemctl restart rtl_airband
sudo systemctl status rtl_airband

Insert this Audio web tag at the end of the html code to auto play the local icecast server VHF audio streams...

--- BOF /var/www/html/index.html ---

                  <b>WMSA - Sultan Abdul Aziz Shah Airport - Subang - Air Traffic Controller</b><br>
                  <audio controls autoplay> <source src="" type="audio/mpeg">Click to play</audio>
                  <b>WMKK - Kuala Lumpur International Airport - Sepang - Air Traffic Controller</b><br>
                  <audio controls> <source src="" type="audio/mpeg">Click to play</audio>

--- EOF /var/www/html/index.html ---

Install IceCast Audio Streaming Server ...

sudo apt-get update -y
sudo apt-get install icecast2 -y

Listen to your local IceCast AirBand streams via a web browser link to the Raspberry Pi ip address http://Your-RaspPi-IP:8000/local

  • Acknowledgement to Tomasz Lemiech for his constant guide and tutorial mentoring to make this simplifed manual guide easy for newbies... a big "Thank You" to him... else I would not have perfected my RTL-Airband audio streaming.

Multiple source streaming sample file config and IceCast local server config sample file @ by Rodney Yeo (9W2YJ)

Also reference to another thread posting ...