SDR-J DAB-0.99, SDR-J FM-0.98 and SDR-J SW 7.1 (update)

The SDR-J software for Linux and Windows

SDR-J is a suite of a few programs for Software Defined Radio, at least the receiving side. Started as a hobby project (it still is!!!) for getting some sound using an Elektor card, it evolved into the current set of programs.
As usual, cross-compiled Windows versions for the programs exist while for use under Linux (or for recompiling for Windows or other systems) sources are available.

Differences with previous versions

There are differences with previous versions. One of them is that we changed from using Qt4 to Qt5. Another one is that all precompiled software is (cross-)compiled for 32 bits Windows (however, no garantees are given that it will run on really old machines). I have it running (walking may be a better word here) on a pretty old XP laptop (at least when Windows itself stops using the processor for whatever action).

The DAB software

The DAB software has a redesigned - smaller - GUI (part of the operation of having it run on a 32 bits machine) and is cross-compiled for 32 bits. The update contains an "updated" version (both sources and executables), there was a silly error in the original 0.99 version causing output-samples to vanish before reaching the soundcard.
Apart from the GUI, the DAB software now supports - in a limited way - some devices using the "extIO-XXX.dll". It was tested with the extIO dll for the SDRplay and the extIO dll for the DABsticks.


The software might run with other extIO dll's (e.g. Airspy) but was not tested with it. Note that the software handling such an extIO dll assumes that the device provides at least 2000000 IQ samples per second through an USB interfaces. Note further that you have to provide the extIO dll if not standard available.
Note finally that the software does not support dynamic changing of samplerates (a possibility in e.g. the new extIO-SDRplay. To keep things simple all "signals" from dll's are ignored.)
New is an interface to the rtl_tcp server, but of course, setting up this server is your own responsibility. The interface was tested with a 100 Mb (wired) link between an RPI 2 running the rtl_tcp server and my laptop.
Under Linux the configuration file (either the "pro" file or the CMakeLists.txt file) provides opportunities to specify inclusion or exclusion of support for the devices from the list: the SDRplay, DABsticks, rtl_tcp and the Ettus Research USRP devices. Obviously, when configured in, the libraries should be available.

For Raspberry fans: the software will definitely not run on an RPI A or B, however new is the inclusion of the sources for an - experimental - version that compiles and runs pretty well on an RPI 2. Emphasis is on "experimental" though.

The sdr-j-swreceiver-7.1

The 7.1 version of the smallband sw-receiver underwent - again - a major restructuring.
For use of the software under Windows, handling of Winrad compatible dll's is still limited to those devices with an extIO dll that provides data using a regular soundcard.
Direct support for the Elektor card and for the pmSDR under Windows disappeared, since using the dll handler is an excellent alternative.
The SDRplay and DABsticks are supported directly, both for Linux and Windows, the Elad-s1 is supported under Linux. Under Linux direct support for the Elektor card and the pmSDR is still available.
Furthermore, components are included in the source tree to setup a (very simple) SDRplay mini-server for use with a "remote" handler in the sw-receiver.
As before, for configuration purposes (the ".ini" file has to be told where to find the plugins for the input handling and for the decoders), there is a small configuration utility that will set the paths in the ".ini" file. When starting the program from within the "windows-bin-sw" directory (for Windows) the plugins will be found directly.


New is an experimental DRM decoder, a decoder for DRM transmissions (currently audio only). Its "version number" (0.1) shows that it is in an early stage of development. The figure below shows the reception of a british DRM program using a pmSDR device through an extIO-PMSDR.dll and an EMU 202 external soundcard under Windows.


The sw-receiver is cross-compiled for 32 bits (to accomodate handling devices with Winrad compatible dll's) and runs in 32 bits and 64 bits Windows and under Linux.
While Windows users can use the DRM decoder directly, Linux users have to do some extra work in creating an adapted faad library to get the decoder running (but of course, the software can be installed without DRM decoder).

The sdr-j-fmreceiver-0.985

The current version of the FM software underwent only few minor changes, the display showing the spectrum of the decoded signal is left out to save some space.
The 0.985 version of the FM software is - for Windows - cross-compiled for 32 bits and is now equipped wih improved - though still experimental - support for devices for which an extIOXXX.dll exists (We do require a reasonable inputrate, i.e. 192000 is the absolute minimum). The picture below shows a band of 1.536 Mhz, using the the extIO_SDRplay.dll plugin with an SDRplay device with a samplerate of 2M.


For Windows, extIO dll's were tested for SDRplay, DABsticks, and Airspy as "fast" devices, and pmSDR as device with a soundcard as AD converter.
Next to that, support for some popular choices is "hard-wired" for both Windows and Linux, i.e. the SDRplay, DABsticks and a filereader.
The Windows distribution contains - as was the case in the previous release - a 32 bits fm receiver and a so-called "mini", the latter is unchanged.


The spectrumviewer is unchanged (apart from the transition to Qt5).
The Mirics SDRplay handles samplerates up to 8 Mhz, so a spectrum of nearly 8Mhz can be shown. The picture shows the spectrum of the old band III, where the channels for DAB transmissions are.


The spectrumwidth can be selected - depending on the selected device - within the small control window for the selected device. Automatic stepping through a user-defined range of frequencies, with a user-defined speed and stepsize is also possible.
The spectrum width for DABsticks is limited to 3 MHz, Airspy provides you with either 2.5 or 10 Mhz wide spectra.

Manuals and documentation

The manuals can be downloaded here, dab receiver, the fm receiver, and one for the sw-receiver.
It is assumed that the handling of the spectrumviewer can be done without an additional manual.

An informal description of the synchronization in the DRM decoder is given in this description, the document is still a draft.

The Windows executables

The executables for Windows are packed as always in a "zip" file. There are two files, one is for dab, a zipped folder for the DAB program, the FM program and the spectrumviewer, together some dll's, and the other one is for the sw-receiver together with the plugins for input and decoders.
The zip files contain the executables and many of the required basic dll's. For device specific software, such as the SDRPlay one has to install software libraries from the supplier (for the SDRPlay that is Note that for execution, basic dll's for MS support, such as the msvcr100.dll are also required!!. Furthermore, for running software with a particular extIOXXX.dll, one should obtain that extIOXXX.dll and install the extIOXXX.dll in the windows-bin-xx folder.

The sources

The distribution contains a single file systems.tgz with the full sourcetree.
The topdirectory is called "systems" containing subdirectories for the sources. Apart from the directories for the sdr-j-swreceiver, the sdr-j-fmreceiver, the sdr-j-spectrumviewer and the sdr-j-dabreceiver-0.99, there are a few more:
a. "servers", a directory containing the source for a (very) simple server to allow remote operation of an SDRplay,
b. "sdr-j-dabreceiver-0.99-ubuntu-1404", a directory with the set of sources to generate the sdr-j-dabreceiver-0.99 using Qt4 under ubuntu-14.04, accompanied by detailed instructions, Ubuntu 14.04 gives problems with the standard distribution since the Ubuntu 14.04 LTS does not seem to support qwt6 in combination with Qt5. (Ubuntu 15.04 does provide support).
c. "sdr-j-dabreceiver-0.98", a directory containing the sources of the 0.98 version of the dab software (adapted for Qt5).
d. "sdr-j-dab-rpi.99", a directory with sources to generate an executable on - and for- a raspberry RPI 2. Note that one needs a distribution that understands that an RPI 2 has an arm v7. I am using Arch Linux. Running causes all 4 cores to be loaded to up to 55 a 60 percent. Note further that the GUI is simple and Qwt is not needed, so it will compile with Qt4 and Qt5.

Executables that are generated will be placed by default in a directory "linux-bin" in the top directory (i.e. the directory "systems"). The config file allows to to choose another place.

Using a decent toolchain for local development (or for cross compilation, e.g. Mingw64), it should be pretty easy to generate executables. The software is developed under Fedora 21 and has been tested under Fedora 21, Ubuntu 14.04, Ubuntu 15.04, Windows 7, and Arch Linux (on my RPI 2). The settings in the ".pro" files reflect the development environment and may need adaptation.
For the DAB software there is a choice between using the Qt QMake facility or using CMake. Warning: for the sw-receiver and the plugins the QMake facility should be used, the CMakeLists.txt files contain errors.

Note that different distributions (and even different releases of the same distro) use different naming schemes for Qt5 and qwt. You probably have to adapt the ".pro" file, or - for the DAB software - the CMakeLists.txt file.

The manuals contain more information on how to build an executable, and they contain a list of required libraries. The manual for DAB and the manual for swreceiver contain a validated check for the availability of the required libraries used in Fedora 21 and Ubuntu 15.04.

For device specific libraries, i.e. for the SDRplay, the DABsticks and for the Elad-s1 one has to install software available from the supplier of the device. For the SDRplay one should load software from, there are simple install scripts for Windows, Linux and RPI. Note that for both Windows and Linux the most recent API (i.e. version 1.7) should be installed.
For DABsticks one has to install the osmocom library, available from, note however that many Linux distributions provide a package for these dongles.
For the Elad-s1, the library software is available from


The software is developed as hobby project and is available under a GPL, and as the license state:
SDR-J is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

Reports on user experiences, suggestions as well as contributions (material and immaterial) are welcome.
Have Fun!!!

Pijnacker, September 2015
Jan van Katwijk
Lazy Chair Computing