SDRangel and Soapy: not detecting devices #windows


I am running 4.14.15 version of SDRangel but can't detect soapy devices. Plugins are correctly loaded but no soapy sampling device appears in the device set list. Here is a portion of the log file:

2020-07-11 21:55:05.785 (I) SDRangel 4.14.15 Qt 5.9.9 64b x86_64 Windows 10 (10.0) DSP Rx:24b Tx:16b PID 13436
2020-07-11 21:55:05.788 (D) MainWindow::MainWindow: load plugins...
2020-07-11 21:55:05.848 (D) PluginManager::loadPluginsDir: fileName: inputsoapysdr.dll
2020-07-11 21:55:05.851 (I) PluginManager::loadPluginsDir: loaded plugin inputsoapysdr.dll
2020-07-11 21:55:05.886 (D) PluginManager::loadPluginsDir: fileName: outputsoapysdr.dll
2020-07-11 21:55:05.888 (I) PluginManager::loadPluginsDir: loaded plugin outputsoapysdr.dll
2020-07-11 21:55:05.897 (D) PluginManager::registerSampleSource  SoapySDR Input  with source name  sdrangel.samplesource.soapysdrinput  and hardware id  "SoapySDR"
2020-07-11 21:55:05.897 (D) PluginManager::registerSampleSink  SoapySDR Output  with sink name  sdrangel.samplesink.soapysdroutput  and hardware id  "SoapySDR"
2020-07-11 21:55:06.011 (D) DeviceEnumerator::enumerateRxDevices: sdrangel.samplesource.soapysdrinput
2020-07-11 21:55:06.011 (D) DeviceSoapySDRScan::scan: Lib Version: v0.7.1-g5838bc91
2020-07-11 21:55:06.011 (D) DeviceSoapySDRScan::scan: API Version: v0.7.1
2020-07-11 21:55:06.011 (D) DeviceSoapySDRScan::scan: ABI Version: v0.7
2020-07-11 21:55:06.011 (D) DeviceSoapySDRScan::scan: Install root: C:\Program Files
2020-07-11 21:55:06.011 (D) SoapySDROutputPlugin::enumOriginDevices: 0 SoapySDR devices
2020-07-11 21:55:06.011 (D) DeviceEnumerator::enumerateTxDevices: sdrangel.samplesink.soapysdroutput

Please, can anyone help me?


Jon Beniston

The problem appears to be that the Windows distribution does not include any of the soapy support modules in lib/SoapySDR/modules0.7 that are needed for each radio (E.g: airspyhfSupport.dll, uhdSupport.dll)

Note that the fix doesn't appear to be as simple as copying them across from the Pothos installer, as that results in:

2020-08-25 20:37:57.263 (W) DeviceSoapySDRScan::scan: cannot load module C:\Users\jon\sdrangel\sdrangel\build/lib/SoapySDR/modules0.7/airspyhfSupport.dll: LoadLibrary() failed: A dynamic link library (DLL) initialization routine failed.

There are instructions for building some of the support modules on Linux here:


Jon Beniston

Soapy can be made to work on Windows, just so long as we copy specific versions of the DLLs in the expected place. From your log file, we have:

DeviceSoapySDRScan::scan: ABI Version: v0.7
DeviceSoapySDRScan::scan: Install root: C:\Program Files

To get version 0.7 of the Soapy modules for Windows, they can be found in: (more recent versions of Pothos use ABI v0.8, so are not compatible with SDRangel 4.15.1, which is the version I'm testing this with)

After installing that, you need to make sure they are in the expected place (The "Install root" in the log file), so copy C:\Program Files\PothosSDR\lib\SoapySDR to C:\Program Files\lib\SoapySDR. This should give you a directory, C:\Program Files\lib\SoapySDR\modules0.7, that contains dlls such as LMS7Support.dll, rtlsdrSupport.dll, uhdSupport.dll

If you want USRP radios to work via the UHD library, you also need a specific version of uhd.dll: (If you have a more recent version of uhd.dll you need for something else, just extract the uhd.dll from this .exe and put in the SDRAngel directory, C:\Program Files\SDRangel, so only SDRangel uses it).

It would be nice if these DLLs were included in future Windows builds directly.