github f4exb/sdrangel v4.1.0
SDRdaemon integration

latest releases: v7.20.0, v7.19.1, v7.19.0...
5 years ago

SDRdaemon integration

The companion project SDRdaemon has been integrated into SDRangel in the form of two new channel plugins:

  • DaemonSink on the receive side to send the baseband I/Q samples via UDP to a remote end point
  • DaemonSource on the transmit side to receive the baseband I/Q samples via UDP from a remote end point

Both plugins include the handling of FEC to recover possible lost UDP blocks just like in the original SDRdaemon.

The remote SDRangel instances in the headless version are controlled exclusively via their REST API. Therefore the dependency on nanomsg is lifted. To control this remote instance interactively you may use any form of client application. For example SDRangelcli that is web browser based. Note that the control from the SDRDaemon device plugins has been dropped.

Consequently the GUI of the SDRDaemonSource and SDRDaemonSink device plugins has been modified to a great extent.

The remote SDRangel instance can be of the GUI or headless variant therefore in its headless form it achieves exactly the same role as SDRdaemon used to. There are many advantages in this integration into SDRangel:

  • Better performance: early tests show at least a 2x improvement in CPU load (two times lower)
  • Integration of all devices supported by SDRangel
  • Possibility to run the Rx and Tx channels of the same device concurrently. Useful for BladeRF, LimeSDR, HackRF, PlutoSDR
  • Possibility to use the 24 bit I/Q format (at the expense of samples twice bigger than in the 16 bit version)
  • Use the same REST API as SDRangel to control all parameters. Makes nanomsg dependency obsolete.
  • Even more configuration options provided by SDRangel

Note that there are also the UDP source and sink channel plugins that seem to have the same role when used with the I/Q samples format. However these plugins have filters and rational interpolators or decimators to achieve further sample rate conversion in the baseband and are therefore less efficient when you want to transfer the whole baseband like SDRdaemon used to do. Also they do not support FEC protection.

The names of UDP source and sink have been swapped to match the same convention as the Daemon plugins:

  • A channel "sink" is used on the Rx side to receive (sink) the baseband samples from a device "source"
  • A channel "source" is used on the Tx side to feed (source) the baseband samples to a device "sink"

Note that the SDRdaemon related plugins are available only in the Linux distributions. With these plugins it becomes critical that the supporting O/S has near real time capabilities because the sample timing is handled only in software. Several tests have demonstrated that Windows is not suitable for this purpose. Consequently please note that these plugins will not run successfully in a Linux VM hosted on a Windows O/S except perhaps when Hyper-V is the supervisor (not tested).

Audio FIFO fix

Removed the timeout mechanism on the Audio FIFO that seems to cause program lockup particularly on the Tx side with the audio input in some conditions. When the FIFO gets full or empty the samples are simply dropped or not provided to the client. This should fix issue #210

Don't miss a new sdrangel release

NewReleases is sending notifications on new releases.