This is an old revision of the document!
Software Defined Radio
Software Defined Radio is a computer peripheral that allows reception (and ideally also transmission) of arbitrary radio waves. Various peripherals have different frequency range, bandwidth and other capabilities. Best known are USRP (Universal Software Radio Peripherial) and RTL-SDR (extremely cheap DVB-T USB stick chipset).
On the software side, GNURadio is the most popular control software. Its modular design allows defining arbitrary signal decoding pathways visually.
We have SDR station on the table near our library (RadioLab), and some antennas on the roof. A radio-adsb.brm computer has been using RTL-SDR to generate a live map of airplane traffic (ADSB-based) over Prague. Other activities (TETRA etc.) are planned or work in progress.
What is available
Several Linux computers with GnuRadio and rtl-sdr drivers installed and with SSH
TB of storage space for your captured signals :)
Helix and wire antennas on brmlab rooftop covering most of Prague.
400MHz YAGI pointing on
Ruzyně Václav Havel Airport.
Several PMR446 walkie-talkies.
Satellite card (TODO)
HAM portable 2m/70cm transceiver upon request.
Portable 400MHz YAGI upon request.
We are saving up for one. If you'd like to Donate with comment “RadioLab”.
Genius TVGo DVB-T03 USB dongle
Elonics E4000 tuner
TODO: Where/how to get a good antenna?
TODO: What are interesting frequencies to listen to without a super-strong antenna?
Pentium D, 1 GB, 40 GB, Ubuntu 12.04
“public” computer, you can tune in GQRX (run ~/gqrx/gqrx), experiment with gnuradio…
Remote listening - tune radio in brmlab, listen at home!
xtightvncviewer -quality 7 -encodings tight 192.168.77.35:0
Maybe you will need to start a VNC server:
LightDM login in case machine rebooted and autologin got stuck
root@radio-observer:~# x11vnc -display :0 -usepw -forever -auth /var/run/lightdm/root/\:0
radio@radio-observer:~$ x11vnc -display :0 -usepw -forever
ssh firstname.lastname@example.org "parecord --channels=1 | oggenc -q "-1" -r -C 1 -" | ogg123 -
Uncompressed (e.g. for further processing)
ssh email@example.com "parecord --channels=1" | aplay -r 44100 -c 1 -f S16_LE
Average delay of this chain is 1-2 seconds.
Tunnel raw data - connect remote radio to your local receiver
ssh -A -L1234:192.168.77.35:1234 firstname.lastname@example.org 'ssh email@example.com "killall rtl_tcp; rtl_tcp -a 0.0.0.0"'
Then start gqrx locally with
Works for me with 300000Hz bandwith.
P4, 1 GB, 60 GB, 10.04
currently there is a web-server with Virtual Radar map of planes running there
celeron, 512 MB, 80 GB, 10.04
celeron, 512 MB, 40 GB, 10.10
ADSB demodulator, Celeron@2.4GHz is enough (load ~0.9)
Get rtl-sdr tool, compile.
mkfifo /tmp/radio - we will use it to tunnel samples.
Install GNURadio. (Debian Unstable version works fine.)
Switch sink from file to audio, adjust source file to /tmp/radio.
As root, run ./rtl_sdr -f 94.6e6 - >/tmp/radio
In gnuradio-companion, execute the flow graph (click on gear icon).
You should hear CRo Radiozurnal. Quality of reception depends (hopefully) on the antenna.
Detection of pulses from kappi's geiger counter with a soundcard
Cutting and timestamping based on silence detection
GnuRadio on RPi
First attempt: I was able to record GSM channel data with http://nat.brmlab.cz/~sysop/gsm.grc (recorded file here) and decode it with airprobe (gsm_receive.py with modified clock frequency here)
./gsm_receive_rtl.py -I dump.cfile -d 1 B0
That nice QT GUI we are using is called GQRX. (build with qmake)