I have had some time to hack on the GQRX receiver – my experimental AM/FM/SSB receiver implemented in Python (GNU Radio) and qith Qt GUI. Most notably, I have implemented audio recording, playback and squelch.
I woke up at 4 AM last night and couldn’t fall into sleep right away, so I got up and started reading emails. To my great surprise there was an email from Matt Ettus announcing the availability of the USRP E100 in mid December. The E100 here is according to the new naming convention used by Ettus: E=embedded, 1=first generation, 00=revision number – or something like that. So it is indeed the Embedded USRP I wrote about in July, which back then was based on some info I picked up on another mailing list and a press release.
Just a quick note that I have successfully installed the Universal Hardware Driver (UHD) for the USRP. The UHD is the next generation hardware driver for the USRP family hardware from Ettus Research and it provides better hardware abstraction and portability as the current drivers. I already tried to make the switch few weeks ago … Read more
Wednesday, November 10, Pete MI3EPN reported that he heard what sounded like FM transmissions on the lower end of the HO-68 / XW-1 linear transponder and it didn’t sound like ham radio operators making contact over a satellite. It was an interesting coincidence because I could remember that I have seen some FM-like signals while I was recording HO-68 on Tuesday evening but I thought it was some local interference.
Video recording of the HO-68 / XW-1 Chinese amateur radio satellite in linear transponder mode on November 9, 2010. Recorded using the Universal Software Radio Peripheral (USRP) with RFX400 daughterboard and GNU Radio software receiver.
The gqrx software receiver implemented with GNU Radio and Qt GUI is now taking shape and becoming useful. Yesterday evening I went to OZ7SAT and had the USRP+WBX connected to a real antenna tracking amateur radio satellites. The video below shows reception of the evening pass of HO-68, aka. XW-1.
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.
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.
I have been a bit quiet over the last few weeks but don’t you worry, it is only because I have been busy and I can now present you what I have been tinkering with during the last few weeks: An AM, FM, SSB and CW receiver implemented using GNU Radio (python) and Qt graphical user interface.