Actions

Broadcastify Raspberry Pi Image

From The RadioReference Wiki

Revision as of 10:34, 18 April 2021 by Blantonl (talk | contribs)
Raspberry Pi Broadcastify Feed Appliance

The Broadcastify Raspberry Pi Image comes preinstalled with the following software:

  • Darkice - Audio Streamer for Broadcastify Feeds
  • Trunk Recorder - SDR Trunked Radio Capture Software for Broadcastify Calls
  • RTLSDR-Airband - SDR Capture and Broadcastify Feed Software for AM Aircraft
  • VoxCall - Broadcastify Calls Audio Capture Software
  • BCFY Shell - Management shell for configuration, management, and update of Broadcastify Feed Services


The appliance also features preinstalled and configured utilities for SDR Software, including RTL-SDR, Airspy, and HackRF utilities.


For downloads and basic installation instructions see:

Installation and Configuration Videos

Darkice Feed Configuration

Darkice is easily configured and managed using the BCFY Shell.

Configuring Broadcast Volume

  • Plug your scanner's headphone jack into the mic jack on the USB sound card dongle
  • Open a shell and start alsamixer
alsamixer
  • press F6, choose the "USB Headphone Set" entry
  • press your tab key to select the "Capture" device volume control
  • use your "up arrow" key to adjust the level to it's lowest level possible (6)
  • press escape to exist alsamixer
  • run the following command to save the volume settings
sudo alsactl store

Troubleshoot clicking sound in the audio stream

If your stream has a clicking sound when there is no audio, you may be able to eliminate it by turning off Auto Gain Control.

  • Open a shell and start alsamixer
alsamixer
  • Press F6 and select your audio device
  • Press Tab to select "Auto Gain Control"
  • Press the "m" key to toggle it off
  • Press Escape key to exit alsamixer
  • Save your settings with the following command
sudo alsactl store

Trunk Recorder Configuration

Mutiple Airspy Support

Trunk Recorder is compiled with multiple AirSpy support on the image.

If you are using an AirSpy SDR, you must specify the serial number of your AirSpy device(s) in your trunk recorder config with the following syntax

"device": "airspy=0xABCDEFABCDEF01"

You can determine your AirSpy Serial Number by executing the "airspy_info" command at a shell prompt:

pi@bcfy-xxxxxx:~ $ airspy_info

airspy_lib_version: 1.0.9

Found AirSpy board 1
Board ID Number: 0 (AIRSPY)
Firmware Version: AirSpy MINI v1.0.0-rc10-0-g946184a 2016-09-19
Part ID Number: 0x6906002B 0x00000030
Serial Number: 0xABCDEFABCDEF01989
Supported sample rates:
	6.000000 MSPS
	3.000000 MSPS
Close board 1
 

Log File

The Trunk Recorder log file is located at

/home/pi/bcfy/logs/trunk-recorder.log

The log file is rotated daily. If you want to watch calls uploaded to Broadcastify Calls in real time, execute the following command at a shell prompt.

tail -f /home/pi/bcfy/logs/trunk-recorder.log

RTLSDR-Airband Configuration

To edit the config file for RTLSDR-Airband enter this command:

sudo nano /usr/local/etc/rtl_airband.conf 

and paste the following into the editor

# This is a minimalistic configuration file for RTLSDR-Airband. 
# More complex configurations are possible.
# Refer to https://github.com/szpajder/RTLSDR-Airband/wiki
# for description of keywords and config syntax.
# Just a single RTL dongle with one FM channel
# sent to a single Broadcastify stream. 
# Note that the center freq is 100 KHz offset from the receive freq
# Also, you must enter your server number, stream name, mountpoint and 
# password from your Broadcastify stream "Technicals"
devices:
({
  type = "rtlsdr";
  index = 0;
  gain = 25;  # This may need adjustment depending on your hardware
  centerfreq = 153.87;
  correction = 0;   # this can be determined using "cumulative" output from running 'rtl_test -p' for several minutes
  channels:
  (
    {
      freq = 153.77;
        modulation = "nfm";
        highpass = 320;
     outputs:
        (
       {
          type = "icecast";
          server = "audio#.broadcastify.com";
          port = 80;
          mountpoint = "MOUNTPOINT";  # Note: Do not include a leading slash "/"
          name = "Fire Dispatch";
          genre = "Fire";
          username = "source";
          password = "PASSWORD";
        }
      );
    }
  );
});

Run

It’s time to test. RTLSDR-Airband must run as root in order to have access to the GPU hardware.

sudo /usr/local/bin/rtl_airband -f 

You should see a readout of numbers. The numbers should be larger when a signal is detected. Check your Broadcastify stream to see if the feed is streaming live. Once you confirmed everything is working, kill the program with CTRL+C.

Create a service

Now you will want RTLSDR-Airband to run on startup of the Pi as well as restart if there are any errors or crashes over time (bound to happen eventually). Navigate to your systemd startup script folder and create the following serivce file:

cd /etc/systemd/system/rtl_airband.service
sudo nano rtl_airband.service

Paste the following into this file:

[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

# 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=Restart=no
RestartSec=5s

[Install] 
WantedBy=multi-user.target

Save (ctrl+x and y) and then run these commands to activate the service:

sudo chown root.root /etc/systemd/system/rtl_airband.service
sudo systemctl daemon-reload
sudo systemctl enable rtl_airband

Now to run it, you simply need to type

sudo systemctl start rtl_airband 

or just reboot the Pi!

More info, expansion and troubleshooting

Much of this information I gleaned from this very helpful tutorial: https://viatorci.com/posts/rtlsdr-police-scanner/#install-rtlsdr-airband There are so many more possibilities with this setup and you can scan, receive multiple channels within the rtl-sdr's bandpass and a multitude of other things. This page is intended to get you streaming quickly and is not intended to address all of those scenarios.