Raspberry Pi RTL-SDR Broadcastify

From The RadioReference Wiki

Revision as of 18:41, 30 July 2015 by Blantonl (talk | contribs)

These instructions show you how to purchase and setup a completely self contained Raspberry Pi with an RTL-SDR stick(s) to broadcast a live audio feed to

Purchase Equipment

Raspberry Pi 2 Model B Project Board - 1GB RAM - 900 MHz Quad-Core CPU

RTL-SDR - RTL2832U & R820T USB Stick

Male MCX Connector to...

Power Supply for Raspberry Pi

Memory Card for Raspberry Pi

Case for Raspberry Pi

Install pre-reqs and update raspberry pi to latest version

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install git cmake build-essential
sudo apt-get install libmp3lame-dev libvorbis-dev libshout-dev
sudo rpi-update && sudo reboot

Install the latest rtl-sdr code

This latest git release is needed for padding zeros when squelch is enabled (-E pad option)

git clone
cd rtl-sdr/
mkdir build
cd build
cmake ../
sudo make install
sudo ldconfig
sudo mv $HOME/rtl-sdr/rtl-sdr.rules /etc/udev/rules.d/rtl-sdr.rules

Blacklist the kernel's bundled RTL drivers

We do this so we don't conflict with the RTL drivers we're about to install

sudo su -
echo "blacklist r820t" >> /etc/modprobe.d/dvb-blacklist.conf
echo "blacklist rtl2832" >> /etc/modprobe.d/dvb-blacklist.conf
echo "blacklist rtl2830" >> /etc/modprobe.d/dvb-blacklist.conf
echo "blacklist dvb_usb_rtl28xxu" >> /etc/modprobe.d/dvb-blacklist.conf

Install and configure ezstream

sudo apt-get install ezstream

Create this configuration file at /etc/ezstream_bcfy.xml and replace with your mount, password, and stream name

    <svrinfoname>Stream Name</svrinfoname>

Command for AM Aviation Scanning

rtl_fm -M am -f 124.55M -f 133.4M -f 121.6M -l 65 -p 69 -g 40 -t 0 -E pad -s 8k 
| lame -r -s 8 -m m -b 16 --cbr --lowpass 4 --scale 16 - - 
| ezstream -c /etc/ezstream_bcfy.xml &
rtl_fm - command line tuner for rt stick
-M am           tune to AM Mode
-f 124.55M      tune to 124.55 MHz (use multiple -f entries to scan through frequencies)
-l 65           set scanning squelch to 65 (adjust as needed)
-p 69           ppm offset
-g 40.2         gain (0-49.6) - adjust as needed
-t 0            scanning delay (I set to 0, default is 10)
-E pad          when squelch is enabled pad output with zeros (required when broadcasting)
-s 8k           sample at 8k

which is then piped to the mp3 lame encoder...

lame - MP3 encoder
-r           accept raw data input
-s           encode at 8k
-m           encode mono
-b           encode at 16kbs bitrate
--cbr         use Broadcastify’s mp3 cbr standard
--lowpass 4  use a low pass filter of 4
--scale 16   turn up the volume

which is then piped to ezstream

ezstream -c /etc/ezstream_bcfy.xml