Monthly Archives: January 2015

DSD and the Rapsberry Pi

This is a work in progress, and as such is more a journal of things that didn't work

I got DSD+ compiled without any issues, just following the instructions as George M1GEO did, however I did run into a couple of issues trying to decode anything and have been unsuccessful as of yet.

The first was an error “Fatal unable to get cpu freq from /proc/cpuinfo” when running ‘dsd -a’ to list the audio devices attached. I tracked this back to being a problem/bug/feature of the jack package, which is resolved in JACK2. Building and installing that following the instructions here:

http://theredbalcktree.wordpress.com/2014/08/10/fatal-cannot-locate -cpu-mhz-in-proccpuinfo/

There is a JACK2 package in the raspbian repositories which I also installed for good measure, but found that the portaudio19-dev package will complain about it, but if you’ve already got dsd built you can ignore portaudio19-dev (the actual library is in the libportaudio0 or libportaudio2 package).

As an aside, this should also have fixed wspr, fldigi and anything else that uses portaudio.

This is where I ran into my next hurdle, dsd tries to open the soundcard at 48K, which the cheap Chinese usb sound card I was using didn't support so the program ungracefully segfaults, spitting vast quantities of errors to the screen. I did bodge round this by creating an upsampling virtual device, which did at least run. But as you’d expect nothing would decode given the limited bandwidth.

George reports that using 96K worked better for him, and he has a trick for making it work which escapes me atm.

Undeterred by this, I next tried to use an rtl sdr as the receiver rather than the ft857 I had been using before. This however proved to be unsuccessful. However I will detail how I attempted it and you may find it of some use.
From the dsd wiki it outlines that you can pass it raw data via STDIN rather than using an audio device, and the format happens to be compatible with that written by rtl_fm to std out. I should therefore be able to do the following:

rtl_fm -F 145.150M -s 48K -M fm | dsd -i - -o pa:0
and this should decode any dstar on 145.150 MHz, however I was never successful at decoding either the two local repeaters VK3RWN and VK3RMM, or a local transmission. I believe the problem to be with the audio level output from rtl_fm. Playing it back it is significantly lower than the volume of the noise, however there are no options to adjust this. There is a tuner gain option for rtl_fm however none of the values I tried 1 to 10K had any effect.
I would suggest maybe if your going to go down the rtl sdr route to use something like gqrx to demodulate the fm and raise the level before presenting it to dsd. However I haven’t had a chance to do so.