JvanKatwijk / sdr-j-fm

sdr-j fm software
GNU General Public License v2.0
43 stars 17 forks source link
fm-receiver hacrf pluto rtlsdr-dongle sdrplay-devices
FM receiver V3.15

========================================================================

Some significant modifications were made by Thomas Neder, apart from the "skin", most mods were "under the hood".

The version number is now 3.15

fm receiver

New is a so-called PSS (perfect stereo separation) control on the main widget, contributed by TomNeda.

In computing the 38 Khz signal to decode the L-R signal, from the 19 KHz pilot signal, an error may occur, an offset of a few Hz. The PSS algorithm applies some techniques to figure out what correction on the recomputed 38 KHz carrier that has to be applied for a perfect match.

While in previous versions the list of configure devices was checked on program start up, to find an attacted device, the current version is slightly different. On program start up, the software will try to start the device (if any) that was used on the last occasion, if no such device can be found, a small devide selection widget will show. (Note that different from e.g. Qt-DAB, once a device is selected and opened, no selection for another device is possible during this program invocation)

fm receiver

Since the number of controls in the main widget was growing, some controls were transferred to a separate "control" widget. The main widget has a button, labeled Config with which one can select and deselect this control widget.

fm receiver

Buttons on the control widget are typically those that are not often touched when just listening to the radio. Buttons for setting the deemphasis and the pty labels are therefore now on the configuration widget, since their setting depends on the country you are in. Furthermore, the control widget contains a widget, Combinear on the picture, that can be used to dynamically set another "skin"

The inputfiltering, i.e. separation between transmissions close to each other in frequency, or even with (slightly) overlapping frequencies, is improved. The filter is pretty strong, but that also means that the filter requires some serious cpu use.

If the filter is switched "Off", it is excluded from the processing chain.

As usual, next to the sources, an AppImage (for Linux x64) and a Windows installer are available in the releases section.


Supported devices

Devices that are supported are

There is also support for file input, however, right now only for "wav" files with a samplerate of 2304000.


Buiding an executable

While there is an installer for Windows, and an appImage for Linux64, it is of course possible to generate an executable.

For compiling and linking lots of libraries and utilities have to be installed On Ubuntu, in any case, the (older) 16 version that I use to create appImages. I use qmake for generating a Makefile, if you have cmake installed, it is possible to use that instead, here it is assumed that qmake is used

Summarizing:

Once the libraries are loaded, one should look at the "fmreceiver.pro" file, which is basically a configuration file. The qmake (whatever version) is able to generate a real Makefile from it. Of course, the "fmreceiver.pro" file might have to be adapted. It contains a section for "unix" and one for "win" (i.e. windows. The system dependencies are two parts:

On selecting a device, the program dynamically loads the functions from the device library. The advantage is that devices for which no device library is installed can be part of the configuration. Of course, for a device you want to use, the device library should be installed.

The program supports sdrplay RSP devices (both using the "old" 2.13 library (which does not support the RSPdx) and the 3.XX (XX = 11 on Windows), When using the 3.10 library or higher on Windows, the 2.13 library cannot be reached, and the 3.10 library does not support the very first RSP, the RSP 1.

The program support the airspy devices, The program supports "dabsticks", The program supports lime devices, program supports hackrf devices and the program supports the Adalm pluto.

Note that this version does NOT support devices using a soundcard for data input.

Adapt the configuration (the "CONFIG += XXX" elements in the ".pro" file, most likely comment out devices that you do not want to include


Building an appImage

The AppImage, part of the distribution on the releases section, is created on an Ubuntu 16 VM. If you want to experiment, the file fm-build-script is there that - as the name suggests - is the script being used to create such an AppImage


CopyRight

Copyright of the fm software is by J Van Katwijk, but parts of the mods to older versions are done by Thomas Neder, obviously for the parts he contributed, he the copyrights are his.

- Good luck