Skip to content

Releases: f4exb/sdrangel

LimeSDR support improvements

07 Jul 06:34
Compare
Choose a tag to compare

LimeSDR support improvements

  • LimeSDR input plugin: added option to individually control the LNA, TIA and PGA gains. This implements issue #32
  • LimeSDR input and output plugins: show board temperature. This implements issue #34
  • LimeSDR input and output plugins: show the actual ADC/DAC sample rate

Other changes

  • Implemented a generic "buddy leader" logic for multiple input/output devices such as the LimeSDR
  • UDP source: edit masks for IP and ports and set a GUI minimum size
  • ValueDialZ: added missing inter-wheel gap on the last digit
  • ChannelAnalyzerNG: set bandwidth text appropriately considering SSB/DSB setting
  • SDRdaemonSink: corrected getCenterFrequency
  • Added pulseaudio and libqt5multimedia5-plugins in the Debian dependencies. This fixes issue #31
  • Updated readme with a paragraph on the not so obvious pulseaudio setup. This fixes issue #31
  • HackRF: extend LO ppm correction range to +/-30 (specs of AVX CX3225GB crystal)
  • Do not compile the broadcast FM demod plugin when the host is a Raspberry Pi because of unsufficient memory
  • Updates for building on aarch64 and openSUSE

SDRdaemon transmit support

11 Jun 20:46
Compare
Choose a tag to compare

SDRdaemon transmit support

With the new major version v3.0.0 of SDRdaemon transmit capable SDR devices are supported. For now only HackRF is supported and more will come with next versions of SDRdaemon.

A new sample sink plugin SDRdaemonSink has been created to support remote transmission with a UDP link to the remote SDRdaemon Tx instance.

SDRdaemon reception side changes

SDRdaemonFEC has been renamed SDRdaemonSource and SDRdaemon plugin is removed from the build and no more supported. In consequence there is no more dependency on liblz4.

This makes things simpler with a SDRdaemonSource for remote reception and SDRdaemonSink for remote transmission using the SDRdaemon package installed on a distant machine with connected SDR devices.

There are important changes in the GUI to make it more convenient and aligned on the new SDRdaemonSink plugin.

Major GUI changes

The value dials aspect has changed from a reverse video aspect to a more realistic thumbwheel aspect.

For values admitting negative values a new value dial class has been created to support seamless move across the zero value.

Other changes and fixes

  • AF squelch and NFM
  • Changed ready/running/error color status of sample sinks to match those of sample sources
  • HackRF input: force settings after deserialization
  • Turned on compilation warnings and solved them
  • Removed some useless dependencies
  • Rearranged dock widgets so device interface is on the top and presets are on the bottom
  • Fixed code typo preventing remove last device to work correctly
  • Fixed re-enumeration of static devices
  • Updated documentation

Downchannelizer, AM and NFM demod fixes

13 May 16:31
Compare
Choose a tag to compare

Downchannelizer fix

Fixed the downsampling half band filter chain so that each stage output is divided by two before entering the next stage. This fixes irregular power readings on channel Rx plugins while the spectrum appears flat.

AM demod fixes and enhancements

  • added an optional bandpass sharp (boxcar) filter to cut frequencies below 300 Hz. This can help with small signals on air band.
  • refactoring of demodulator
  • use double type for all moving averages

NFM demod fixes

  • Refactored optional AF squelch that replaces the deviation squelch
  • Squelch refactoring with ramp up and down using a smootherstep function to minimize head and tail noises
  • use double type for all moving averages

LimeSDR fixes

  • Officially includes Windows64 support
  • Fixed NCO button
  • Fixed frequency reading on spectrum when starting with NCO

LimeSDR support for Win64 and fixes

08 May 17:02
Compare
Choose a tag to compare

LimeSDR supported in Windows 64 bits

This is the first release to contain input and output plugins for LimeSDR in the Windows 64 bit version

LimeSDR support fixes

Some fixes carried out but the LimeSuite library is overall unstable or so badly documented that it cannot be used properly. This version makes a few fixes to improve experience with LimeSDR input and output plugins but is clearly far fromt perfect.

This closes the updates made to LimeSDR plugins until LimeSDR gets more mature.

Changes to cmake modules

As suggested by Martin lib64 paths have been added to the search paths for various dependencies. This should improve the builds on OpenSUSE.

DSD demod and LimeSDR updates

07 May 17:58
Compare
Choose a tag to compare

DSD demodulator updates

Added possibility to enable/disable the symbol PLL.

Since dsdcc version 1.7.1 the symbol synchronization can be done with a PLL fed by a ringing filter (narrow passband) tuned at the symbol rate and itself fed with the squared magnitude of the discriminator signal. For signals strong enough to lock the PLL this works significantly better than with the ringing filter alone that was the only option in versions <= 1.6.0. Version 1.7.0 had the PLL enabled permanently.

However with marginal signals the ringing filter alone and a few heuristics work better. This is why since DSDcc version 1.7.1 the PLL became optional.

This option can be controlled from the DSD demodulator GUI.

LimeSDR support updates

Fixed antenna selection in both input and output plugins.

DSD demodulator upgrade

06 May 20:32
Compare
Choose a tag to compare

DSD (digital voice) demodulator upgrade

Upgraded to version 1.7.0 of dsdcc This version contains a major improvement by inserting a PLL to drive symbol synchronization. This provides a significant enhancement in the decoding process for all supported digital voice standards.

Some code cleanup was also carried out which could improve stability.

Other changes in DSD demodulator

Upgraded to version 1.0.3 of SerialDV which intends to fix the low latency bug itnroduced in kernel 4.4.52. Unfortunately it does not seem to work when running as a normal user therefore you should use the workaround specified in the documentation as the root user:

sudo setserial /dev/ttyUSB0 low_latency

Interpolator half band FIR filter optimization

26 Apr 19:28
Compare
Choose a tag to compare

Interpolator half band FIR filter optimization

The process has been optimized by using only the non null samples for calculation. This closes ticket #24

This is explained here: https://dspguru.com/dsp/faqs/multirate/interpolation/
And graphically here: http://home.etf.rs/~milic/Solution_Manual/Chapter_7_exercises/fig_07_06.gif

This results in a significant improvement for all sink plugins when the software interpolator is engaged. This concerns BladeRF, HackRF and LimeSDR output plugins. In addition all output channel plugins also benefit from it for their half-band interpolation chain (excludes the rational interpolator).

HackRF plugins start/stop fix

Rationalize the start/stop sequences of the HackRF input and output plugins. This also uses the latest version of libhackrf (commit 9bbbbbf) that fixes the start and stop rx/tx streams bug. You will need to upgrade your HackRF to the 17.02.1 firmware.

WFM demodulator improvements

  • added a signal gauge
  • added an audio mute button with green lighting when squelch is open
  • fixed excursion handling and use the atan2 approximation for the discriminator

Other changes

  • CW Keyer: specifiy char signedness to fix error with some compilers
  • LimeSDR input and output plugins are available in the .deb package for ARM

LimeSDR support

24 Apr 19:46
Compare
Choose a tag to compare

LimeSDR support

This works in Linux only. It implements issue #20

Input (Rx) support: see here and output (Tx) support: see here

LimeSDR is a 2x2 MIMO device with its LMS7002M chip. It means it has 2 Rx and 2 Tx sharing the same clock. Actual MIMO support was not tested but two instances of the Rx and two instances of the Tx plugins can work simultaneously with the same LimeSDR device.

As all Rx and Tx are not independent the plugins are also dependent on each other depending on what is changed:

  • sample rate: affects all Tx and all Rx
  • hardware decimation: affects all Rx
  • hardware interpolation: affects all Tx
  • center LO frequency: affects all Rx or all Tx (Rx and Tx sides are independent)
  • filters: affect only own Rx or Tx
  • NCO: affect only own Rx or Tx

Plugin management

The lifecycle of plugin instances has changed slightly. Now validating a source or sink in the "Sampling devices control" section of the main window closes the previous instance and opens the new one. The start and stop toggle in the plugin effectively just starts and stops the receive or transmit thread. The opening and closing opens and closes the corresponding device or takes appropriate actions when the device has multiple channels like BladeRF, HackRF and LimeSDR.

Other changes

  • Value dial: do not print leading decimal point
  • Make sure the device is not open when trying to close it: BladeRF, FunCube, LimeSDR
  • ATV Demodulator: fixed complaint of some gcc versions that this is not a const reference
  • Refactoring: removed device parameter from all start() methods in sample source/sink plugins
  • Sample source/sink plugins: removed useless init() pure virtual method
  • SDRDaemonFEC input: call input object destructor in GUI destructor (was missing)

Builds

No builds here. See later versions for Windows builds and from 3.3.4 for Linux builds.

ATV Demodulator bugfix

10 Apr 20:36
Compare
Choose a tag to compare

Fixes issue #22. For latest functional changes see release v3.3.3

ATV narrow band modes

09 Apr 19:44
Compare
Choose a tag to compare

ATV Narrowband modes

ATV modulator and demodulator plugins now support lower FPS and less number of lines. We now have:

  • 640, 625, 525, 480, 405, 360, 343, 240, 180, 120, 90, 60 and 32 lines
  • 30, 25, 20, 16, 12, 10, 8, 5, 2 and 1 FPS

This will allow transmission of animated images in narrow bandwidths. This is known as NBTV.

There are new vertical synchronization schemes that consume less number of lines: One long sync pulse followed by a high level line in interleaved and not interleaved half image modes (ShI and ShNI) and horizontal sync pulse skip (HSkip).

This implements ticket #13

See the plugins folders for details:

In addition the horizontal sync has been redesigned so that resynchronization is done for a complete image and not line by line. This removes tearing effect but the image may flicker a bit. You will also need to set a sample rate that yields an integer number of samples (points) per line.

Note on the ATV demodulator

There is a bug that causes a segfault if the sample source is running while the ATV Demodulator is added. A workaround is to stop the sample source, add the demod and start the sample source.

Continuous sample rate setting

To better support any sample rate from the source or sink plugins for all devices that support arbitrary sample rate the samle rate can be set continuously within the ADC/DAC range using a value dial similar to the frequency dial. This applies to the following plugins:

This implements ticket #19

Builds

This version had a nasty bug (issue #22) see v3.3.4 for the builds.