With help from this manual you can make your own APRS Igate with a Raspberry Pi and RTL-SDR dongle.

If you find any incorrect information or you have additional info, please leave a comment!

Offcourse change some of the commands to your personal settings like Callsign, gain, correction factor etc.


Warning, don´t put the RTL-SDR in your Raspberry Pi. Wait till the installation is complete.


Install Raspian operation system to your Raspberry Pi. See: Installation manual
My advice is to let the system boot to termial in stead of the graphical user interface (GUI). This will keep as much as possibile processor power and memory free.

Update your Raspberry:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo raspi-config
mkdir ~/src

Prevent the default RTL-SDR drivers from being loaded automatically. Open the file raspi-blacklist.

sudo nano /etc/modprobe.d/raspi-blacklist.conf

Add the next lines to the file:

blacklist dvb_usb_rtl28xxu
blacklist dvb_usb_v2
blacklist rtl_2830
blacklist rtl_2832
blacklist r820t

Reboot the Raspberry PI.

sudo reboot

Install driver for RTL-SDR dongle

cd ~/src
sudo apt-get install git build-essential cmake libusb-1.0-0-dev
git clone git://git.osmocom.org/rtl-sdr.git
cd rtl-sdr
mkdir build
cd build
sudo make install
sudo ldconfig

Connect RTL-SDR dongle to Raspberry Pi.

Install MultimonNG decoder

cd ~/src
sudo apt-get install qt4-qmake qt4-default libpulse-dev libx11-dev patch pulseaudio
git clone https://github.com/EliasOenal/multimonNG.git
cd multimonNG
mkdir build
cd build
qmake ../multimon-ng.pro
sudo make install

Install calibratie tool

cd ~/src
sudo apt-get install libtool autoconf automake libfftw3-dev
git clone https://github.com/asdil12/kalibrate-rtl.git
cd kalibrate-rtl
git checkout arm_memory
sudo make install

Calibration example of a RTL-SDR dongle (write down PPM value for later)

kal -s GSM900
kal -c 36

(Channel 36 was strongest at my place. You may find another channel to be stronger)

Install APRS IGate software

cd ~/src
sudo apt-get install python2.7 python-pkg-resources
git clone https://github.com/asdil12/pymultimonaprs.git
cd pymultimonaprs
sudo python2 setup.py install

Make bootscript

sudo cp pymultimonaprs.init /etc/init.d/pymultimonaprs
sudo chmod +x /etc/init.d/pymultimonaprs
sudo update-rc.d pymultimonaprs defaults

Generate APRS-IS password for your callsign

(If you allready have a APRS password, you can use that offcourse.)
Change ‘CALLSIGN’ to your own callsign. Don´t add the SSID like CALLSIGN-10. That would give you another (wrong) key.

cd ~/src/pymultimonaprs
./keygen.py CALLSIGN
Key for CALLSIGN: 12345

Change the configfile (Call, password, position, gain, ppm, etc.)

sudo nano /etc/pymultimonaprs.json

Test system

Start system to test funtionallity. (Ctrl+C for stop)

rtl_fm -f 144800000 -s 22050 -p 18 -g 42.0 - | multimon-ng -a AFSK1200 -A -t raw -

The -p 18 is correction in PPM, -g 42.0 is one of the possible gain factors. You have to make a choice from the following supported values:

Supported gain values (29): 0.0 0.9 1.4 2.7 3.7 7.7 8.7 12.5 14.4 15.7 16.6 19.7 20.7 22.9 25.4 28.0 29.7 32.8 33.8 36.4 37.2 38.6 40.2 42.1 43.4 43.9 44.5 48.0 49.6

Start Igate

Start pymultimonaprs

sudo /etc/init.d/pymultimonaprs start


USB_open error -3

See which USB number the RTL-SDR dongle has:


Check by USB number if the group by RTL-SDR device is ‘input’. ls –lR /dev/bus/usb

For example: If RTL-SDR device is in (group) Bus 001 and Device 004:

cd /dev/bus/usb/001
sudo chgrp input 004

Source: https://yd0nxx.wordpress.com/2013/04/30/aprs-igate-using-raspberry-pi-board/

By Stefan

One thought on “Raspberry RTL-SDR RX-Igate”

Leave a Reply