SDR-J DAB-0.98, SDR-J FM-0.98 and SDR-J SW 6.0

The SDR-J software for Linux and Windows

Differences with the previous version

Recent changes include correction of a few (minor) errors in the various programs. Furthermore, the "spectrum viewer" is now back, with support or sdrPlay, DABsticks and airspy, and "small" versions of the DAB receiver and the FM receiver are added.

DAB mini

There were some (actually quite some) questions whether it would be possible to have a DAB receiver with a smal(ler) GUI.

dab-mini

The advantage is that running it leaves large parts of the screen open for other things, the disadvantage is that one does not see much of the signal, and sometimes one has to wait quite a while before synchronization occurs. The mini version supports the sdrPlay, dabsticks and the airspy. Selection of the device is on program invocation through a command line parameter. Having used it once, the name of the selected device will be stored, and on next invocations it will be the selected device until it is overruled by another invocation with a command line parameter. Similary, the Band and the Mode are selectable through the command line with as defaults Band III and Mode 1 (see the manual).

FM mini

Next to the DAB mini, an FM mini was created.

fm-mini

The fm-mini version supports the sdrPlay, dabsticks and the airspy. Selection is - as with the dab-mini - on program invocation through a command line parameter. Having used it once, the name of the selected device will be stored, and on next invocations it will be the selected device until it is overruled by another invocation with a command line parameter.
The selectors on the mini are a subset of the selectors for the "regular" FM receiver. For an explanation: see the manual.

Spectrumviewer

The Mirics sdrPlay handles samplerates up to 8 Mhz, so a spectrum of nearly 8Mhz can be shown. 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.

spectrum-example

The sdr-j-dabreceiver-0.98

The DAB decoding software version 0.98 hardly differs - from a users perspective - from version 0.97. Some minor errors were removed and some cleaning up of code was done. A small indicator was added to the GUI indicating the time synchronization (green is good, blue is bad, yellow is hopeless). New is that support for the airspy is built in and that a form will pop up with control settings for the device when the device is selected.

dab-example

The DAB software still needs a reasonable 64 bits machine to run.

The sdr-j-fmreceiver-0.98

The 0.98 version of the FM software is - for windows - cross compiled for 32 bits and is now equipped wih full 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.

fm-example

Support for some popular choices is "hard-wired" for both Windows and Linux, i.e. the sdrPlay, DABsticks, airspy and a filereader.
For Windows, Extio dll's were tested for sdrplay, DABsticks, elad-s1 and airspy as "fast" devices, and pmSDR and Elektor as devices with data through the soundcard.
For Linux plugins exist for the the RT2832 based DABsticks, the Mirics sdrPlay, the pmSDR, the Elad-s1 and the Mirics dongle.

The sdr-j-swreceiver-6.0

The 6.0 version of the smallband SW receiver underwent a major restructuring. The rate for the input data can now be selected while running. For the sdrPlay and for DABsticks one may select an inputrate of 96, 192, 256, 384, 512 or 768 Ksamples/second for processing (an adequate inputrate for the stick or device itself will be selected automatically).
For the soundcard devices the choices are 48, 96 and 192K.
For a wider use of the software under Windows, handling of Winrad compatible dll's for devices delivering data through a soundcard, is significantly improved. The figure below shows the reception of a (german) ssb station with a 2.5K bandfilter, where the control of the pmSDR is through an external (Winrad compatible) dll. Direct support - through plugins - is available for DABsticks, for the Mirics SDRPlay, the Elektor card, the pmSDR and for filereading.

sw-example

For configuration purposes (the ".ini" file has to be told where to find the plugins), there is a small configuration utility that will set the paths in the ".ini" file.

configurator

The SW software runs in 32 bits (to accomodate handling devices with Winrad compatible dll's) and in 64 bits. The precompiled version is for 32 bits Windows versions.

The Manuals

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

The Windows executables

The executables for Windows are packed as always in a "zip" file. There are two files, one is dab receiver, a zipped folder for the 2 DAB programs, these programs require a 64 bit machine, and the other one fm and sw programme, programs cross compiled for 32 bits that will run on bots a 32-bit and a 64 bit machine.
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 Mirics ltd). Note that for execution, basic dll's for MS support, such as the msvcr100.dll are also required!!. Furthermore, for running the FM receiver with a particular ExtioXXX.dll, one should obtain that ExtioXXX.dll and install the ExtioXXX.dll in the windows32-bin folder.

The sources for Linux

The Linux distribution contains four packed files , one for the sources of the DAB receiver (both versions), one for the FM receiver (both versions), one for the SW receiver, and one for the spectrum viewer.

The sources for the dabreceiver can be downloaded from sdr-j-dabreceiver-0.98.tgz. the source for the fmreceiver can be downloaded from sdr-j-fmreceiver-0.98.tgz. The sources for the swreceiver can be downloaded from sdr-j-swreceiver-6.0.tar.gz and the source for the spectrumviewer from sdr-j-spectrumviewer.tgz
The requirements for compiling are described in the manuals. For DAB and FM, generating an executable using Cmake is supported.
Please first have a look at either the CMakeList.txt files or the *.pro files to adjust the destination directories for the generated executables. The destinations used by me assume a tree structure where the sources are stored in a sub-subtree.

The software is developed using Qt and qwt and written in C++ and is available under a GPL as is.
For device specific libraries, i.e. for the sdrPlay and for the Elad-s1 one has to install libraries available from the supplier of the device (Mirics ltd resp. Elad). For DABsticks one has to install the osmocom library, available from osmocom.org.

The sources included here are the exact sources from which o.a. the Windows executables are generated. Using a good toolchain for local development or for cross compilation, e.g. Mingw64, makes it pretty easy to generate executables.
The manuals contains a description of how to build an executable, and they contains a list of the required libraries.
For the DAB and the FM software, there is a pretty well tested CMakeLists.txt file to support building using the CMake system.

Resource constraints

The DAB software needs a pretty heavy machine for running, it runs flawlessly on my laptop with a 2.5 GHz i5 processor both under Fedora and Windows 7. It runs pretty well on an older machine with a 2.0 G duo Core, and it runs even - with some stuttering - on a 7 year old machine. The load of the FM software will - obviouly - increase when higher input rates are chosen and especially when fractional decimation is needed. The load of the SW receiver should not be a real problem.

Reports on user experiences, suggestions and contributions are welcome.
Have Fun!!!

Pijnacker, Februari 2015
Jan van Katwijk
Lazy Chair Computing
J.vanKatwijk-at-gmail-dot-com