Software Defined Radio devices, often abbreviated as SDR, is a radio communication system where components that have been traditionally implemented in hardware (e.g. mixers, filters, amplifiers, modulators/demodulators, detectors, etc.) are instead implemented by means of software on a personal computer.
In short SDR is a programmable radio-receiver which you can connect to your PC. Software on your PC tunes it, and processes/receives/reads the radio-data.
There are numerous cheap USB-dongles which you can buy for approximately €10, and the one I purchased looks like this:
The USB-device identifies itself as follows when inserted into my desktop:
[17844333.387774] usb 3-9: New USB device found, idVendor=0bda, idProduct=2838 [17844333.387777] usb 3-9: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [17844333.387778] usb 3-9: Product: RTL2838UHIDIR [17844333.387778] usb 3-9: Manufacturer: Realtek [17844333.387779] usb 3-9: SerialNumber: 00000001
The first use I found for my SDR device, and the reason why I bought it, was for tracking aircraft flying above me.
Getting started was very simple, thanks to the existing software. Getting started involved installing the appropriate dependencies upon my Debian GNU/Linux system:
# apt-get install librtlsdr-dev libusb-1.0-0-devOnce that was done I could clone antirez's repository, and build it:
$ git clone https://github.com/antirez/dump1090.git $ cd dump1090 $ makeAnd run it:
$ sudo ./dump1090 --interactive --netThis failed initially as a kernel-module had claimed the device, but removing that was trivial:
$ sudo rmmod dvb_usb_rtl28xxu $ sudo ./dump1090 --interactive --netOnce it was running I'd see live updates on the console, every second:
Hex Flight Altitude Speed Lat Lon Track Messages Seen . -------------------------------------------------------------------------------- 4601fc 14200 0 0.000 0.000 0 11 1 sec 4601f2 9550 0 0.000 0.000 0 58 0 sec 45ac52 SAS1716 2650 177 60.252 24.770 47 26 1 secBecause the
--net
flag was provided I could also point my web-browser at the local HTTP-server, and view aircraft in real-time:I was later informed, via private email, that
librtlsdr0
installs a suitable collection of udev-rules that include my device.I can confirm that restarting udev, and removing + re-inserting the radio-receiver allows me to run the
dump1090
command as my regular-user, without the need forsudo
.
A lot of cheap hardware uses Radio transmissions at 433Mhz, for example the "home automation" kits that consist of a small remote control that will allow you to turn on/off electrical outlets, and a large number of wireless temperature sensors.
I took advantage of this myself in my Smart Alarm Button-project, because there is a great piece of software which allows decoding a lot of protocols and devices.
You can download the receiver/decoder from the following link:
Once built, following the instructions, you can launch it like so to listen for all known traffic:
./rtl_433 -GLeaving that running for a while I soon started receiving interesting data. For example :
2018-02-10 11:53:33 : Schrader : TPMS : 25 ID: 1B747B0 Pressure: 2.500 bar Temperature: 6 C Integrity: CRCThis example is me receiving something called "TPMS", which is Tire-pressure monitoring system - transmitted by local car.