In the CQDL edition of Nov. 2012 there was an article about a SDR software called SDR# (SDRSharp). This tool can work with the cheap so called RTLSDR sticks (for example Noxon DAB sticks and others) and runs under windows and because its written in C# under linux within the mono framework as well.
Because its not that easy to get the stuff running i try to document it here. Just give me a hint if something is missing or wrong.
Thats the status of today…
The versions:
sdrsharp SVN revision 995
Xubuntu 12.10 64bit
RTLSDR from git repository Nov. 1st, 2012
Noxon DAB stick Rev1
Getting SDR# working:
First you need some required packages:
sudo apt-get install mono-complete
sudo apt-get install libportaudio2
Get sdrsharp sources (and the tool to get it):
sudo apt-get install subversion
svn co https://subversion.assembla.com/svn/sdrsharp/
cd sdrsharp/trunk
Build on command line:
xbuild /t:Rebuild /p:Configuration=Release SDRSharp.sln
You will most probably get a warning but no errors.
Try to run the binary with mono:
cd Release
mono SDRSharp.exe
If you get some errors about Portaudio then try the line:
ln -s /usr/lib/x86_64-linux-gnu/libportaudio.so.2 libportaudio.so
in the directory were your binary of SDRSharp is located. Then try again running the binary.
If the GUI comes up quit it.
Download the release package from the SDRSharp page:
http://sdrsharp.com/index.php/downloads
Unpack into a folder of your choice
Go to the binary Release path were your self-compiled binaries are and overwrite all files from the downloaded package by the self compiled. Also copy the symlink you created eventually.
Try to run SDRSharp from the new directory.
In the left top edge of the window there should be a button named „Play“. Right of this there s a selection list. There should be an entry RTL-SDR/TCP. If not download the RTLSDR files from the SDRSharp page and copy into your SDRSharp folder. After restart of the GUI the entry should be visible.
Connecting the RTLSDR:
I have a Noxon DAB Stick Rev1. This one can be tuned between 22MHz and 1100MHz.
The frequency accuracy is relatively poor. I have -51ppm offset from nominal frequency.
Noxon DAB Stick inside...
Check how it connects:
Plug the stick to the USB port, wait a few seconds, then type dmesg.
[ 7013.844041] usb 1-1: >new high-speed USB device number 2 using ehci_hcd[ 7013.987872] usb 1-1: >New USB device found, idVendor=0ccd, idProduct=00b3[ 7013.987882] usb 1-1: >New USB device strings: Mfr=1, Product=2, SerialNumber=3[ 7013.987888] usb 1-1: >Product: DAB Stick[ 7013.987892] usb 1-1: >Manufacturer: NOXON[ 7013.987897] usb 1-1: >SerialNumber: 0
On my other (Ubuntu based) PC i there get the information that some DVB-T driver get loaded automatically.
dmesg gives then:
[ 7116.475304] usb 2-1.1: Product: DAB Stick
[ 7116.475306] usb 2-1.1: Manufacturer: NOXON
[ 7116.475309] usb 2-1.1: SerialNumber: 0
[ 7116.679026] dvb-usb: found a ‚NOXON DAB/DAB+ USB dongle‘ in warm state.
[ 7116.704932] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
[ 7116.706616] DVB: registering new adapter (NOXON DAB/DAB+ USB dongle)
[ 7116.720596] rtl28xxu: rtl2832u_frontend_attach: FC0013 tuner found
[ 7116.729442] DVB: registering adapter 0 frontend 0 (Realtek RTL2832 (DVB-T))...
[ 7116.759431] fc0013: Fitipower FC0013 successfully attached.
[ 7116.759439] Registered IR keymap rc-empty
[ 7116.759545] input: IR-receiver inside an USB DVB receiver as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/rc/rc0/input14
[ 7116.759946] rc0: IR-receiver inside an USB DVB receiver as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/rc/rc0
[ 7116.759951] dvb-usb: schedule remote query interval to 400 msecs.
[ 7116.769919] dvb-usb: NOXON DAB/DAB+ USB dongle successfully initialized and connected.
[ 7116.776795] usbcore: registered new interface driver dvb_usb_rtl28xxu
lsmod shows:
dvb_usb_rtl28xxu 26619 0
rtl2830 18340 1 dvb_usb_rtl28xxu
dvb_usb 24540 1 dvb_usb_rtl28xxu
dvb_core 111077 2 rtl2830,dvb_usb
If thats the case at yours you need to remove the drivers by typing:
sudo rmmod dvb_usb_rtl28xxu
sudo rmmod rtl2830
This needs to be done everytime you plug the stick to the PC in case the driver is loaded automatically.
Get the binaries for the RTLSDR:
this is the project page: http://sdr.osmocom.org/trac/wiki/rtl-sdr
you need to use git for checkout
sudo apt-get install git
Then get the code:
git clone git://git.osmocom.org/rtl-sdr.git
cd rtl-sdr
sudo apt-get install autoconf2.13
sudo apt-get install libtool
sudo apt-get install libusb-1.0-0-dev
follow the instructions for building with autotools:
autoreconf -i
./configure
make
sudo make install
sudo ldconfig
If you do not want to access the dongle as root user you need to install udev rules:
sudo make install-udev-rules
Run the whole thing:
You need to reconnect the RTLSDR stick to the usb before you are able to run the server application.
You can start it with:
rtl_tcp
If that does not work start it with sudo.
Then you can start SDRSharp again.
In the GUI press configure and type localhost in the field „Hostname“.
Keep the other settings for the moment. Press update and close the configuration window.
Then you can start the reception pressing the „Play“ button.
The waterfall window migh look strange. This seems to be a bug. If you rescale the window it should work (at least for a while) afterwards.
The tune frequency can be entered in the field „Center“. Attention: If you invalid frequencies the stick may hook up and you cannot tune anymore. Then you have to replug the stick and start all applications again.
Unfortunately the processor load is extremely high under linux-mono. I get 100% CPU usage on a 2.4GHz AMD64 CPU. This leads to audio stutters. On my I7-2600 i get around 180% load compared to one of the 3GHz cores when decoding FM-stereo with 2MSpl/s and IQ correction switched on.
You could reduce the datarate by starting the rtl_tcp server with option -s 1024000. 512kSpl/s did not work correctly at my side. You need to set the correct rate also in the sdrsharp configuration. If it still stutters switch IQ correction and FM Stereo off to reduce the CPU load.
This screenshot shows SDRSharp receiving a wideband FM broadcast signal. It also features a RDS decoder.
SDRSharp
Thats it. Probably it runs smoother under windows. There the installation should be also a bit easier. Unfortunately i do not have any windows system available.