A patch to fix audio_alsa_sink[hw:0,0]: snd_pcm_hw_params failed

Last night, while I was preparing for the AMSAT-OZ satellite weekend, I noticed that my gqrx receiver didn’t work very well on my laptops. Every time I tried to change operating mode the receiver stopped with a runtime error:

audio_alsa_sink[hw:0,0]: snd_pcm_hw_params failed: File descriptor in bad state
terminate called after throwing an instance of 'std::runtime_error'
what():  check topology failed on audio_alsa_sink(1) using ninputs=1, noutputs=0

This happened on both my Acer and my MacBook Pro; both running the lates git of GNU Radio v3.3.1git-96-g1fa9a8ea. This was bad news because I was hoping to show off my new software receiver with Qt GUI during the weekend. Fortunately, there is an easy workaround that eliminates the problem.

Read more

The downsampling experiment

As I mentioned in my previous post, my “optimizations” of the multi-mode receiver code caused a sudden loss in performance.This was a big surprise because what I did was to replace two filters with only one, which I would expected to yield a performance gain and certainly not a loss. What happened at the same time was that the sample rate in the demodulators went from 50 ksps to 250 ksps and it was the responsibility of the demodulators to downsample this to 50 ksps. I suspected that this might have cause the increased CPU load and I have set up a simple experiment to confirm it.

Read more

GNU Radio 3.3.0 on Mac OS X – USRP

I have now tried the USRP on Mac OS X using the MacPorts installation and I am happy to report that it works very well. Indeed, the USRP is really plug and play on OS X and there is no need to configure udev or anything like it is the case on e.g. Ubuntu Linux. The video below shows the FM receiver listening on the local APRS frequency.

Read more

GNU Radio 3.3.0 on Mac OS X

Few days ago Michael Dickens announced that the GNU Radio packages on MacPorts have now been updated to 3.3.0 and so I took this opportunity to try it. I didn’t have MacPorts installed so I had to start from scratch; however, installation was quite straightforward because the dependencies are resolved automatically. All I had to do was to download the latest MacPorts dmg and then execute the command

  sudo port install gnuradio

then let it run overnight. It takes a long time since MacPorts builds everything from source. On my iMac it took more than 6 hours. Note that gnuradio is a meta packages that depends on all GNU Radio components.

Read more