How to Use SoapySDR Radios with Quisk

April 2019.

SoapySDR

SoapySDR is an interface package. It has modules to connect to a wide variety of software defined radio hardware. It then presents a consistent API to a user program like Quisk. That makes it possible to add support for many more radios to Quisk. For example, I plan to use my new Lime Mini on Quisk using Soapy. For information about SoapySDR see the home page at https://github.com/pothosware/SoapySDR/wiki. It has links to the list of supported radio hardware and other useful information.

SoapySDR is a work in progress so you need to install a recent version, and this version must be compatible with Quisk. For Windows, Quisk currently uses version 2019.03.24 available here. Only a 64-bit Windows version is available, and this will only work with a 64-bit version of Quisk and a 64-bit version of Python2.7. If you have a 32-bit Quisk/Python, you can change to 64-bit fairly easily.

For Linux, follow the instructions here to enable your package manager to update to a recent SoapySDR. Then use your package manager to install the packages libsoapysdr-dev, soapysdr-tools and soapysdr-module-all. Make sure you do not have an older version installed in addition to the latest version. I use Synaptic for this. Then change to the soapypkg directory and enter "make" to re-compile and link the soapy shared library. It is convenient to use SoapySDR on Linux because Linux comes with compilers and you can always rebuild with whatever version of SoapySDR you have.

Once Soapy is installed, enter the command

SoapySDRUtil --find

and you should get a list of your connected radios. Enter

SoapySDRUtil --probe="driver=redpitaya, addr=192.168.1.70"
SopaySDRUtil --probe=driver=lime

or similar command to get detailed information for that radio. The information should agree with the Quisk SoapySDR hardware screen.

Quisk Support

Quisk has limited Soapy support starting with version 4.1.35. The 64-bit Windows DLL and 64-bit Ubuntu shared library are included. For Linux, you can recompile for a different Linux by entering "make" in the soapypkg directory. To add a Soapy radio to Quisk, go to the Config/Radios screen and add a radio of type "SoapySDR" and give it a meaningful name; for example, "lime" for a lime SDR. Then go to the new radio screen and change the "Device name". If SoapySDRUtil found the radio, then Quisk should find it too. Then check the various Soapy parameters to make sure they are what you want.

Start Quisk in a terminal (command prompt) when using SoapySDR. Soapy is a work in progress and there is a lot of diagnostic output. Quisk has some diagnostics too.

Status

This feature is very rough, and at present I really only hope that Quisk can find the hardware. I have tested on a Lime Mini (it sort of works), Red Pitaya (hardware not found) and an SDR-IQ (it freezes). I need help for other hardware. There is a thread on http://groups.yahoo.com/neo/groups/n2adr-sdr for soapy support. There are probably quirks with each hardware that will require more features and settings. For example, not all sample rates are supported by all hardware. And it will be necessary to add more parameters. If you want to help, please test your Soapy hardware with Quisk and report the results. Insight on how to fix things would be even better.

Update April, 2019

I added Rx and Tx sample rate and bandwidth to the SoapySDR hardware screen. I am asking SoapySDR for the available rates and bandwidths, but unfortunately they are incorrect, at least for my Lime Mini. You will have to guess the rate and bandwidth and look at the error messages. Try to use an Rx sample rate that is a multiple of 48 or 50 kHz if you plan to decode the audio. Quisk only supports a few Tx sample rates. If your hardware can not use one of those rates, please post to the Yahoo group and I will try to add it. But at the moment, I have not been able to get transmit to work at all. And choosing a Tx rate seems to restrict the choice of Rx rates and vice versa.

There is also an option to Enable/Disable transmit. Soapy does not seem to offer an option to turn transmit off. And having transmit enabled produces spurs in the receive spectrum for the Lime Mini. Feel free to play with it. If you change this option, you must restart Quisk.