/rtl-and-liquid

An AM/FM software-defined radio application using RTL-SDR and liquid-dsp.

Primary LanguageJavaScript

rtl-and-liquid

It's an AM/FM software-defined radio demonstration application that uses RTL-SDR and liquid-dsp. It is written purely in C and has quite good performance, capable of ~70 ksamples/s throughput with FM on a BeagleBone Black. It also features a novel web-based interface that uses WebSockets (via libwebsockets) to stream data and WebAudio to play it. The interface is a prototype and is rather fragile. It works with Chromium (run with --disable-web-security) or Firefox 29+.

Usage

Install dependencies as in provision.sh. If you want to use the AM receiver, you'll need an upconverter such as the Ham-It-Up. You may need to change ARCH_OPTION flag -mfloat-abi=softfp to =hard in liquid-dsp's configure.ac.

Deploying to BeagleBone

I used Arch Linux ARM. You should be able to use Angstrom or OpenEmbedded as you like. Procure uSD card, then follow the directions here. Hold the button by the uSD card slot to boot from it (or install to the eMMC if you like). Run an upgrade, pacman -Syu, and install the following packages (pacman -S <package>):

base-devel // pick and choose if you like to save space
cmake
fftw
git
unzip
wget

Then copy over the provision script, scp provision.sh root@192.168.x.x:/root and run it (usually building as root isn't a good idea, so consider creating another user). Additionally, do the following:

$ echo "/usr/local/lib" >> /etc/ld.so.conf.d/libc.conf
$ ldconfig
$ echo "install dvb_usb_rtl28xxu /bin/false" >> /etc/modprobe.d/blacklist.conf
$ cp build/librtlsdr-master/rtl-sdr.rules /etc/udev/rules.d/

Attributions

Alex Little, Ryan McCall, and Patrick Evensen worked on this project for Virginia Tech's ECE 4984: Software-Defined and Cognitive Radio Design course, offered in Spring 2014. Thanks to assitance from Dr. Dietrich (course instructor) and Dr. Gaeddert (liquid-dsp). Also thanks to Osmocom (RTL-SDR), especially Kyle Keen (rtl_fm).

License

MIT