sdrangel

SDR Rx/Tx software for Airspy, Airspy HF+, BladeRF, HackRF, LimeSDR, PlutoSDR, RTL-SDR, SDRplay and FunCube

GPL-3.0 License

Stars
2.7K
Committers
75

Bot releases are hidden (Show)

sdrangel - Various fixes and enhancements

Published by f4exb over 5 years ago

  • AM demod: fixed audio interpolator. Issue #354
  • Implemented interpolation to audio for NFM and SSB demods allowing the use of a 48k audio sink regardless of the channel sample rate
  • AM demod: implemented low pass filter after the demod. Issue #352
  • Spectrum window: added ability to use the mouse wheel to move the central channel marker line. Issue #343
  • Frequency Tracker: make lock converge faster
  • Added a splash screen on startup. Issue #343
  • SoapySDR output: support floating point type samples. Issue #345
  • NFM demod: made high pass audio filter optional to be able to pass DC to other programs via audio. Issue #343
  • Added UHD rules in udev (and moved away to sdrangel-docker). Issue #343
  • Use Qt precise timer for test and file sources
  • "hidden" --mimo option to activate MIMO functionality (MIMO device set). Makes it optional until it can be officialy released
  • Updated some base classes to adequately support new MIMO devices
sdrangel - Local Source and Output plugins

Published by f4exb over 5 years ago

This is the Tx side equivalent of the Local Sink and Local Input plugins published in v4.6.0. Implements issue #338 More details in the respective readme's:

Internal: single ChannelAPI interface. Preparation of v5. Implements issue #339. The most visible part is a change in the top banner of the channels on the left corner. The existing icon for basic channel settings has a "c" decorator inside and there is a new icon on its right with a "S". This icon will be clickable when the MIMO support is activated (v5) and open a dialog to set to which stream of the device to connect. For the time being as there are only single stream devices it is simply decorated with a "S" and not clickable. More details on this part in the section 6 of the main window readme

sdrangel - Single Device API and REST API fixes

Published by f4exb over 5 years ago

This is an internal refactoring making room for some more device types significantly the "any" type to support MIMO operation (v.5).

  • REST API fixes: various fixes subsequent to recent changes in the "tx" parameter.
  • Windows build fix: some unresolved references due to recent changes prevented the correct loading of some plugins.
sdrangel - SSB modulator: fixed compressor overloading

Published by f4exb over 5 years ago

Hard limiter implemented for the compressor so that it cannot overload the modulator and thus make splatters. This fixes issue #336

Preparing an important change (v5 candidate) to have a mixed ("any") type of "device" for MIMO applications along with the existing Rx and Tx the following change of names are made in the API:

  • tx changed to direction: the values are still the same but in the future a value of 2 may be added to support the "any" type. This applies to devices and channels alike
  • nbStreams changed to deviceNbStreams: the future "any" type may have its own arbitrary number of input and output streams but originally this parameter applies to the device Rx or Tx
  • streamIndex changed to deviceStreamIndex: changed for the same reason

This can affect your current scripts and interfaces that use the REST API or reverse API.

sdrangel - Frequency Tracker

Published by f4exb over 5 years ago

This is a new channel (Rx) plugin that can lock its center frequency to the center frequency of a carrier (unmodulated or modulated). It is meant to be used in collaboration with freqtracking.py in the scriptsapi directory to control the center frequency of channels that "register" to it using the reverse API feature. More details to be found in the respective readme's:

  • Method to get frequency from FLL. Fixed Channel Analyzer lock delta frequency display in case of decimation
sdrangel - Local Sink and Input plugins

Published by f4exb over 5 years ago

A pair of plugins has been implemented to pipe a portion or the full baseband in one device set into another. This works similarly to the Remote Sink / Remote Input pair but sends I/Q samples internally and not over the network.

This can be used when you want to "zoom in" portions of the spectrum of one device for example if you want to work the SSB portion and the repeater portion of the 2m band using a single receiver and getting the same resolution in each sub band as if you were using two separately.

More details in the respective plugins readme:

Down channelizer: fixed sample saturation in 16 bit mode

sdrangel - Remote sink: decimation and center frequency shift

Published by f4exb over 5 years ago

Implemented a decimation of the baseband stream coming from the device source and a center shift based on the down channelizer half band filter chain. The exact shift depends on the filter types used in the chain. Details can be found in the Remote sink readme

  • DSD demod: save PLL enable and autio mute in preset
  • Fixes in the Value Dial UI widget to support display of 3 digits or less
  • Fixed IntHalfbandFilterEO factor calculation width forcing use of EOStorageType. May fix issues with ghost images in case of presence of strong signals and 24 bit samples
sdrangel - Changes in cmake build

Published by f4exb over 5 years ago

There were many changes in the cmake files and some fixes for compiler warnings. The main thing is an automatic detection of the optimization flags for the architecture on which the software is compiled. A -DENABLE_DISTRIBUTION=ON can be specified to limit optimizations to SSSE3 for x86 architecture that should suit most installations. Building from source and building the Docker image is not affected. When building from source you may need to restart from scratch. This should make compilation for Mac OS more straightforward however this may disturb your current build chain and adjustments may be needed.

Thanks to ra1nb0w for this contribution.

  • LimeSDR: fixes the antenna labels when dealing with the Lime mini (issue #325)
  • Many fixes related to REST API for the reverse API control.
sdrangel - Baseband sample rate input

Published by f4exb over 5 years ago

For the devices capable of an arbitrary sample rate and option is added to enter the baseband sample rate (hence bandwidth) instead of the device sample rate at a given decimation or interpolation factor. This can be convenient when a precise bandwidth is desired so there is no need to calculate the resulting device sample rate.

Devices concerned: BladeRF 1 and 2, HackRF, LimeSDR, PlutoSDR, RTL-SDR, XTRX.

This implements issue #310

At preset load the gain was not properly set and one needed to change the gain back and forth to get the appropriate value. For some reason related to RTL-SDR the gain has to be set last as some other settings can influence it. This fixes issue #321

sdrangel - HackRF changes

Published by f4exb over 5 years ago

Fixes issue #318 by reworking Rx/Tx frequency synchronization completely and adding shifting of center frequency for interpolation (Tx side) also.

  • The former Rx to Tx synchronization button is removed
  • The device center frequency is synchronized by default when both Rx and Tx for the same physical device are present
  • The effective center frequency is actually in sync:
    • if either both Rx and Tx are in Fc centered mode
    • If Rx and Tx are not in Fc centered mode then they should be in the same mode (Inf or Sup), the sample rate and decimation/interpolation factor should be the same

All details in plugins documentation:

sdrangel - Pass originator information in the reverse API

Published by f4exb over 5 years ago

The originator information that is device set index and possibly channel index for channel plugins is now passed in the JSON payload of the reverse API.

Check the Reverse API Wiki for details.

sdrangel - DATV demod: added audio

Published by f4exb over 5 years ago

Implemented audio decoding. Also removed the full screen option that does not return correctly to the previous display.

  • Perseus: fixed cold start flawed init sequence
  • PlutoSDR: recognize networked devices
  • FreeDV: internal FreeDV library to facilitate packaging
  • Fixed some constness in qrtplib
  • Fixed bug in Channel Analyzer deserialization. Fixes issue #314.
sdrangel - FreeDV support

Published by f4exb over 5 years ago

Added FreeDV support in the form of a modulator and a demodulator plugin

Limitations:

  • Limited distribution as a binary (see next).
  • No data support. This will come later and may replace the pretty useless CW keyer.
  • No server plugins. This will come in the next update
  • No support for 700D mode. This is disabled in the GUI only actually. Despite all my efforts I cannot get it to work reliably other modes work just fine in the same conditions.

In order to get Codec2/FreeDV support when building from source check the updated Wiki page: https://github.com/f4exb/sdrangel/wiki/Compile-from-source-in-Linux#codec2freedv

sdrangel - UDP/RTP audio with G722 and Opus

Published by f4exb over 5 years ago

Implemented G722 and Opus for sending audio over the network. See the Networking audio Wiki for details.

Please note that this version introduces new dependency on Opus library (libopus-dev). If you compile from source make sure you update your dependencies as mentioned in the Compile from source in Linux Wiki.

Fixed some unresolved references in the Debian builds (internal dsdcc, libiio and LimeSuite libraries).

sdrangel - UDP/RTP audio with PCMA/PCMU

Published by f4exb over 5 years ago

Implemented PCM A-law (PCMA) and mu-law (PCMU) codec processing when sending audio via UDP/RTP. Also impemented decimation on audio to be able to accomodate 8000 S/s sample rate. Standard PCMA or PCMU is 8 bit 8 kHz sample rate. This provides lighter network payload than the only 16 bit linear direct processing available before. Also PCMA and PCMU are standards commonly accepted by browsers for playback using WebRTC.

See: https://github.com/f4exb/sdrangel/blob/master/sdrgui/audio.md for the audio settings
See: https://github.com/f4exb/sdrangel/wiki/Networking-audio for the feature usage

  • SoapySDR: fixed some GUI issues
sdrangel - Renamed SDRDaemonSource/Sink to RemoteInput/Output

Published by f4exb over 5 years ago

The SDRDaemonSource and SDRDaemonSink device plugins have been renamed to RemoteInput and RemoteOutput respectively. SDRDaemon was a reference to an obsolete project which code has been integrated in SDRangel. The "remote" based terms better reflect what these plugins are actually.

  • PlutoSDR: get low pass analog filter limits from the device instead of being hardcoded.
sdrangel - Renamed DaemonSource/Sink to Remote

Published by f4exb over 5 years ago

Now that SDRdaemon is decommissioned the term "daemon" does not correspond to anything. "Remote" is a better naming for what concerns the remote operation of SDRangel. This is the first part of the change affecting only the channels.

  • XTRX: refactored GPS lock test using workaround using change in 1PPS iterval clock counts. Fixes hanging for 1PPS signal
  • Windows build: fallen back to libusb 1.0.21
  • Voice type modulators: corrected documentation on sound file input format
  • Fix of typo in start-stop REST API examples script
sdrangel - AirspyHF new settings

Published by f4exb almost 6 years ago

Implemented new settings that come along newer version of libairspyhf. Most of them work only on HF bands:

  • AGC
  • LNA
  • Attenuator

The DSP provided by libairspyhf can be disabled. Consequently it is possible to use SDRangel internal DC block and IQ correction.

Many little glitches fixed following more complete support in the client application

  • SoapySDR: on preset load match on serial or driver id for SoapySDR devices
  • SerialDV: corrected cmake find module and improved SerialDV support error messages
  • Make the settings location appear in the log and in the about panel of the GUI also
  • Temptative XTRX fixes
  • REST API examples: Added a randomize channel colors utility as a way to answer to issue #275
sdrangel - XTRX experimental support

Published by f4exb almost 6 years ago

New plugins created to support XTRX:

This is not working completely satisfactorily but will work reasonably well as a single Rx or single Tx. Simutlaneous Rx and Tx or 2 channel Tx are definitely not working. 2 channel Rx seems to be working. Things may improve in the future and considering that it took a long time to stabilize LimeSDR support there is room for hope.

It is available only for Linux and compiled from source. See the compilation Wiki page for instructions.

  • Fun Cube: implemented decimation and center frequency shift
  • PlutoSDR: get frequency limits from the device instead of AD9364 limits systematically. You will need version 0.16 of libiio and version 0.29 of the firmware.
  • Simplification of build process. Check the compilation Wiki instructions mentioned above.
sdrangel - Reverse API

Published by f4exb almost 6 years ago

New feature added to be able to forward channel and device settings changes to an external application using the same REST API interface as the one used to communicate settings changes to SDRangel. See the Wiki page for more information.

  • FCD: fixed segfault on stop action
  • Channel Analyzer: fixes related to rational downsampler essentially consisting in range limitation
  • SoapySDR support: fixed some memory leaks