Back to top

Fighting My Way Towards SDR on the HackRF One

I've been busy working on hardware and working at work, but I started to do some software at home that I kind of want to talk about. At least I want to write what I've discovered down where I can find it and who knows, maybe this will get picked up by a search engine and it might help someone else. In my last blog post, I talked about buying a HackRF One a few months ago, and I've been building a power amplifier for that. The first version of that power amplifier let the magic smoke out as soon as I powered it up, even before applying a signal to it. After considering the problem for a long time, I think I understand why and I've been working up the enthusiasm for building another one while I wait for new parts funds to become available. In the meantime, I've been looking into the sort of software I might want to run to do the software part of software defined radio.

I knew that I didn't want to do much software development, if any at all, for this new project. The point is to have a radio to use to talk to people, not to have another software project that I can endlessly fiddle around with. I've got enough of those, already. Anyway, after discussing things with the linuxhams mailing list, I decided that I wanted to use something called quisk for this. So, I downloaded it. It's written in Python, which is a plus as far as I'm concerned, but the first thing it wants you to do is install PIP and override a bunch of packages. Now, I understand why it wants you to do this, but the operating system I run (Debian GNU/Linux "sid") has a package manager that I really prefer to use. Fortunately, other people have thought of this, and have come up with a way of installing project-specific packages. This is called "virtualenv," which is packaged for Debian. You just install virtualenv and activate an environment and then do all the PIP commands inside that environment and, once you're done, deactivate the environment. It saves the state, so you can go back to it, and best of all it allows you to work both the way Debian wants you to and the way quisk wants you to.

Of course, that just means that I get farther before getting stuck. When installing wxPython, I was getting messages to the effect that it couldn't install because a media option had been set, but gstreamer wasn't available. So, I installed all the gstreamer packages I could find or think of and it still gave me the error. One of the reasons I don't like using PIP to download packages is because it's a wrapper around what does the work so if things go wrong it's hard to figure it out. I guess it's my day to learn new things, and today I learned that you can just go to pypi.org and download the package and run it manually. PIP tells you what command it was trying to run when it failed and it's not too hard to figure out how to massage that command to get it to do manually what it was trying to do automatically. An hour or so of futzing around with it and I discovered that I needed to install the dev packagers for the gstreamer plugins. Having done that, and Bob's my uncle. One more iteration because it also needs wxgtk's WebView package, and I was able to install wxPython and, after that, the most recent version of quisk. Yay!

So, now I'm up to speed I can do what I first set out to do this morning, see if I can't receive a signal using quisk and my rtl-sdr dongle. Wish me luck!