RTL 820 SDR "Pi-Gate" Recipes
Introduction - Updated
For a very neat rundown of configuring a Pi as an iGate
see QSO365 which I used to build my Pi Gate version 2.
The rest of this page documenting my Pi Gate version 1 has been largely superseded and is left for interest/history!
I thought I would try a different format to my usual Blog style
web page. One of our SADARS club
members recently offered a good deal on RTL
820 dongles. Many members were keen to have a closer look
and purchased one.
All this got me experimenting with an RTL 820 dongle, Raspberry Pi and various
software configurations. After great thought and a couple of
glasses of white wine, I called these experiments Pi-Gates!
A lot has already been published - and duplicated! about using
RTL 820 based dongles. So, I will link to existing articles and
just add my own notes.
This will be updated.
Basic Pi, RTL 820 and APRS Configuration Recipe
I have finally got the Pi and SDR to decode APRS packets. This
recipe was the starting point -
With one minor confusion... When I looked at this months ago I noted the tuner frequencies were off. OK, it is not calibrated and a program Kal is provided to calibrate against local cell tower transmissions to see how far out your tuner is. OK so far. I ran the calibrate process and found my tuner to be out by -38 ppm. I plugged this number into the rtl_fm program as -p -38 it all loads, plays Radio 4 and says it is using a -38 freq offset. But the tuned freq remains the same.... hmmm
Search the GSM900 band for reference channels.
kal -b GSM900
Calculate PPM error for a channel
kal -c 70
My DVB Dongle was -38.740 ppm and August Dongle -31.378 ppm
Quick test with Radio 4
Radio 4 rtl_fm -M wbfm -f 93.5M -g 42.1 | play -r 32k -t raw -e s -b 16 -c 1 -V1 -
I experiment further and change the "dial" freq by roughly the ppm * mhz as a rough cross check. I can then decode the pager signals. Progress. Clearly the -p adjustment is not working as I thought.
I then revisit 144.800 and the kal program. I tune the "dial
freq" to 144.796 and finally start to decode locally sent
I revisit the kal program and think it is showing the error in
PPM and remove the - from the -38 parameter in rtl_fm. It now
uses the ppm number correctly and decodes packets! It seems the
"direction" of the error does not matter.
rtl_fm -f 144.800M -s 22050 -p 38 -g 42.1 -l 0 | multimon-ng -a AFSK1200 -A -t raw -
Found 1 device(s):
multimon-ng (C) 1996/1997 by Tom Sailer HB9JNX/AE4WA
(C) 2012-2014 by Elias Oenal
available demodulators: POCSAG512 0: Realtek, RTL2838UHIDIR, SN: 00000001
Using device 0: Generic RTL2832U OEM
POCSAG1200 POCSAG2400 EAS UFSK1200 CLIPFSK FMSFSK AFSK1200 AFSK2400 AFSK2400_2 AFSK2400_3 HAPN4800 FSK9600 DTMF ZVEI1 ZVEI2 ZVEI3 DZVEI PZVEI EEA EIA CCIR MORSE_CW DUMPCSV SCOPE
Enabled demodulators: AFSK1200
Found Rafael Micro R820T tuner
Tuner gain set to automatic.
Tuner error set to 38 ppm.
Tuned to 145053575 Hz.
Oversampling input by: 46x.
Oversampling output by: 1x.
Buffer size: 8.08ms
Exact sample rate is: 1014300.020041 Hz
Sampling at 1014300 S/s.
Output at 22050 Hz.
APRS: M1HOG-7>XSUYYY,RELAY,WIDE:'wXl K\>
Hurrah first packet decoded...
Now to look at and configure the python scripts that send the data to APRS.FI and to see how sensitive the RX / aerial combo is - not very I suspect!
Decoding ADB - S - Aircraft Beacon Data Recipe - Updated 21.12.14
Install the Dump1090 software -
git clone git://github.com/MalcolmRobb/dump1090.git
Remember to use your dongles PPM error -
./dump1090 --interactive --net --ppm 38
The Dump1090 web service is now started.
Browse to your Pi on port 8080 for example http://192.168.1.150:8080