Actions

Broadcastify/RTLSDR-Airband

From The RadioReference Wiki

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.


Download: https://github.com/szpajder/RTLSDR-Airband


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: https://github.com/szpajder/RTLSDR-Airband/wiki


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
EOF

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://git.osmocom.org/rtl-sdr.git
cd rtl-sdr/
autoreconf -i
./configure
make
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 BroadCastify.com icecast streaming server
# RTLSDR-Airband - User's Manual: https://github.com/szpajder/RTLSDR-Airband/wiki
# Refer to here for PPM Offset correction guide - https://viatorci.com/posts/rtlsdr-police-scanner/#rtl-sdr-dongle-offset-tuning


# 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;
  channels:
  (
    {
# 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
        {
          disable = true;      # IF_NO_LOCAL_ICECAST_SERVER_IS_AVAILABLE_SET_IT_TO_TRUE
          type = "icecast";
          server = "127.0.0.1";
          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 = "audioXXXXXXXX.radioreference.com";     # FROM_YOUR_RR_FEED_PROVIDER_PAGE
          port = 80;      # PORT_OF_RR_FEED_PROVIDER_ICECAST_SERVER_USUALLY_8000
          mountpoint = "XXXXXXXX";      # MOUNT_POINT_FROM_YOUR_RR_FEED_PROVIDER_PAGE
          name = "XXXXXXXX";      # FEED_NAME_THAT_RR_GAVE_YOU_WHEN_YOU_APPLIED
	  genre = "ATC";
          username = "source";
          password = "XXXXXXXX";      # PASSWD_FROM_YOUR_RR_FEED_PROVIDER_PAGE
          send_scan_freq_tags = false;
	  description = "XXXXXXXX";      # DESCRIPTION_ASSIGNED_FROM_YOUR_RR_FEED_APPLICATION
        }
		
	# 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 szpajder@gmail.com


--- BOF /root/rtl-airband-compile.sh ---

#!/bin/bash
clear
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 https://github.com/szpajder/RTLSDR-Airband.git
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
then
   export PLATFORM=rpiv1
else
   if cat /proc/cpuinfo | grep Model | grep "Pi 2"
   then
      export PLATFORM=rpiv2
   else
       if cat /proc/cpuinfo | grep Model | grep "Pi 3"
       then
          export PLATFORM=rpiv2
       else
          export PLATFORM=armv8-generic
       fi
   fi
fi

export NFM=1
make
make install
ldconfig

--- EOF /root/rtl-airband-compile.sh ---



Instruction to activate and run at service mode... https://github.com/szpajder/RTLSDR-Airband/wiki/Running-the-program


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

[Unit]
Description=SDR AM/NFM demodulator
Documentation=https://github.com/szpajder/RTLSDR-Airband/wiki
Wants=network.target
After=network.target

[Service]
Type=simple
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.
Restart=no

[Install]
WantedBy=multi-user.target

--- 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 ---

                <p>
                  <b>WMSA - Sultan Abdul Aziz Shah Airport - Subang - Air Traffic Controller</b><br>
                  <audio controls autoplay> <source src="http://rodyeo.dyndns.org:8000/wmsa" type="audio/mpeg">Click to play</audio>
                </p>
                <p>
                  <b>WMKK - Kuala Lumpur International Airport - Sepang - Air Traffic Controller</b><br>
                  <audio controls> <source src="http://rodyeo.dyndns.org:8000/wmkk" type="audio/mpeg">Click to play</audio>
                </p>

--- 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 szpajder@gmail.com 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 @ https://disk.yandex.ru/d/RC7se4bIIVzgfg by Rodney Yeo (9W2YJ) rodyeo@yahoo.com


Also reference to another thread posting ... https://wiki.radioreference.com/index.php/Raspberry_Pi_RTL-SDR_Broadcastify