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 - DSD demodulator upgrade

Published by f4exb over 7 years ago

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.

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

sdrangel - Interpolator half band FIR filter optimization

Published by f4exb over 7 years ago

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).

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.

  • 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
  • CW Keyer: specifiy char signedness to fix error with some compilers
  • LimeSDR input and output plugins are available in the .deb package for ARM
sdrangel - LimeSDR support

Published by f4exb over 7 years ago

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

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.

  • 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)

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

sdrangel - ATV Demodulator bugfix

Published by f4exb over 7 years ago

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

sdrangel - ATV narrow band modes

Published by f4exb over 7 years ago

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.

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.

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

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

sdrangel - ATV plugins update (2)

Published by f4exb over 7 years ago

There are tons of new features and fixes that should improve experience with analog ATV.

  • Added possibility to set camera FPS manually. This fixes issue #12
  • Tries to fit the maximum number of points per line in the available sample rate and not a fixed value around 100. Show this number of points in the GUI
  • Added option to force rational decimator even with a ratio of 1.0 this is to be able to use its FIR filter anyway
  • FM excursion adjustment
  • Option to adjust baseband modulated signal amplitude to prevent filter saturation
  • Set RF filters sliders range divisors depending on current channel sample rate
  • Express rf filters cutoff in kHz
  • Rescale number of RF filters sliders steps if there are not enough
  • Set RF filters bandwidth according to channel sample rate and not source sample rate.
  • Make channel marker display consistent with diltered RF bandwidth
  • Independent number of lines and FPS settings
  • Added .mkv extension to video files list
  • 405 lines standard
  • 20 and 16 FPS modes
  • Added display of channel sample rate
  • Use a fixed pattern for sync and use sample time for top time adjust granularity
  • Fixed interpolator rf bandwidth whe in SSB modes
  • Set interpolator taps per phase to 24
  • GUI refactoring with addition of scope in screen and scope combo inside a tabbed panel
  • Specify nominal number of lines and fps in the GUI to calculate line length
  • 20 and 16 FPS modes
  • Express rf filters cutoff in kHz
  • Set RF filters sliders range divisors depending on current channel sample rate
  • FM mode using phaseDiscriminatorDelta with deviation scaling (FM3)
  • FM deviation scaling adjust for FM1 and FM2 modes
  • Use sample period for line duration adjustment step
  • Show number of points per line in the GUI
  • Feed the video signal scope only if the scope tab is selected
  • Use a fixed pattern for sync and use sample time for top time adjust granularity
  • Resize screen appropriately according to TV standard
  • Show slider steps in line length and sync pulse length tooltips
  • Horizontal sync averaging for better image stability
  • Refactoring of the sync process both horizontal and vertical that should improve image stability
  • Set number of lines from standard and not from line length
  • NG scope: Added possibility to drive the GUI settings from a parent class. Used in the ATV demod plugin to set appropriate values for the video signal
sdrangel - ATV plugins update

Published by f4exb over 7 years ago

  • NCO to adjust channel center frequency in the source passband like the other plugins
  • Optional rational downsampler to work with an integer number of MS/s. When ratio is 1.0 the downsampler can be used as a filter
  • Optional FFT filter with asymmetrical upper and lower sidebands for SSB and vestigial sidebands modes
  • Invert video signal option
  • New USB and LSB modes with BFO locked to carrier. This is experimental and does not work with the sample rates involved presently.
  • See details here: https://github.com/f4exb/sdrangel/tree/master/plugins/channelrx/demodatv
  • WFM plugins fix: the channel marker is now movable from the spectrum display like with other plugins
sdrangel - ATV Modulator

Published by f4exb over 7 years ago

It is now possible to produce analog TV signals that are mostly used by amateur radio nowadays. This modulator plugin matches the ATV demodulator plugin on the receiving side. It is possible also to receive the signal on a hardware analog TV set provided the generated signal has enough bandwidth.

More information here: https://github.com/f4exb/sdrangel/tree/master/plugins/channeltx/modatv

Note that you will need to install OpenCV development files to be able to compile this plugin. On Debian/Ubuntu the package is libopencv-dev

New discriminator for NFM demod based on new atan2 approximation. Added a squelch mode based on FM excursion.

sdrangel - Amateur Analog TV and new Channel Analyzer plugins

Published by f4exb over 7 years ago

It has been a fairly long time since the last release but this one comes with two plugins that I am very excited to release.

My neighbor and fellow amateur radio Laurent, F4HKW contributed to this nice plugin that brings SDRangel in the field of television. Many thanks Laurent for this major contribution!

Moreover it revives the look and feel of good old analog TV with the typical "snow" in the absence of transmission and increasing glitches on the image when the antenna is beaming out of direction And also it is only black and white!.

Both AM and FM are supported. Practically a sample rate of 6 MS/s or above is required to display acceptable images.

More details here: https://github.com/f4exb/sdrangel/tree/master/plugins/channelrx/demodatv

This is a major enhancement extending the previous Channel Analyzer plugin. It essentially features a new signal scope with much improved capabilities.

More details here: https://github.com/f4exb/sdrangel/tree/master/plugins/channelrx/chanalyzerng

sdrangel - DSD demod: compatible with DSDcc v 1.6.0

Published by f4exb almost 8 years ago

Adapted code to new interface. DSDcc 1.6 contains also bug fixes that could help stabilize the DSD demod plugin.

sdrangel - HackRF Tx support

Published by f4exb almost 8 years ago

Support added for transmission with HackRF devices using the HackRF output plugin.

sdrangel - Fixed audio preferences settings

Published by f4exb almost 8 years ago

In addition to be able to select which device to use for audio input and output this release also fixes an annoying bug on the Tx side when using audio input: Audio input behaves slightly differently than audio output and when the audio engine is started the volume is forced to a value that by default is maximum (1.0). This is not always desirable and using this control you can set it at a lower level (0.00 to 1.00 in 0.01 steps).

sdrangel - Tx support for hardware devices

Published by f4exb almost 8 years ago

At last transmission side is supported for BladeRF. Use the "BladeRF Output plugin". See https://github.com/f4exb/sdrangel/tree/master/plugins/samplesink/bladerfoutput for details. Since version 2.2 only file output was available. Improvements and support for HackRF will come next but this is already a working solution and a major step for SDRangel.

These channel plugins are available to get something out:

  • AM modulator
  • Narrowband FM modulator
  • SSB/DSB/CW modulator
  • Wide FM modulator
sdrangel - Fixed multiple modulators lockup issue

Published by f4exb almost 8 years ago

This fixes issue #11. See issue for details. Now multiple modulators in the same baseband can run smoothly. However multiple modulators is different from multiple demodulators as for transmission mixing is required and adds complexity. Moreover the relative power of each modulator must be reduced as the number of modulators is increased. Having more than two of them is more or less a curiosity. An information message is displayed when more than one modulator is added to the baseband.

This fix however also improves performance of single modulator operation.

sdrangel - WFM Modulator

Published by f4exb almost 8 years ago

Modulator for wideband FM signals. Bandwidth may span from 12.5 to 250 kHz and FM deviation from 1 to 100 kHz.

You have to compile with version 1.5.4 of dsdcc to benefit from the change or use the distributed binaries that have this version built in. Non printable characters are filtered out and replaced by dots. This avoids stray characters to mess up with the text display.

sdrangel - SSB Modulator

Published by f4exb almost 8 years ago

Implemented a SSB modulator. Look for the "SSB Modulator" plugin.

It does USB/LSB (by reversing the filter limit similarly to the SSB demodulator) and also DSB. It can optionally use binaural input i.e. I and Q samples are taken from the left and right stereo channels (or reversed). In DSB with binaural setting in Tx and Rx this effectively transmits in stereo.

Implemented a CW keyer for the SSB, AM and NFM modulators. You can enter the text that will be keyed in Morse code at speeds from 1 to 26 WPM (Words Per Minute). You can also send a series of dots or dashes. Transitions are smoothed with a 4 ms ramp that follows the smootherstep function f(x) = 6x⁵ - 15x⁴ + 10x³ This function has zero first and second derivatives at 0 and 1. This reduces the "clicking" efficiently and in turn reduces the spectrum splatter very significantly.

sdrangel - NFM Modulator

Published by f4exb almost 8 years ago

Implemented a Narrowband FM (NFM) Modulator. Look for "NFM Modulator" plugin.

A signal level meter in dB has been implemented in the following demodulator plugins:

  • AM demod
  • Broadcast FM (BFM) demod
  • Digital Speech Decoder (DSD) demod
  • Narrowband FM (NFM) demod
  • SSB demod
sdrangel - AM modulator updates

Published by f4exb almost 8 years ago

New modulation sources:

  • file input
  • mic (audio in)

The GUI has changed to reflect these changes.

sdrangel - SDRplay comes into play

Published by f4exb almost 8 years ago

SDRplay RSP1 is now supported in Linux version only. SDRplay is based on the MSi001 and MSi2500 chips from Mirics. The standard API provided by Mirics is closed source moreover it could not be implemented successfully in SDRangel. An open source API libmirisdr-2 has been written by Miroslav Slugen and later amended by Leif Asbrink SM5BSZ. It depends only on libusb. This API uses a new flavour called libmirisdr-4 in this very same Github space. It contains enhancements and bug fixes. Unfortunately the Windows version is unstable causing software abort and BSOD therefore no Windows version is provided.

GUI documentation can be found here.

To activate the plugin compilation you will have to compile libmirisdr-4 and install it in your system. When installed in non standard folders the include and library paths have to be specified on the cmake command line. Say if you install libmirisdr-4 in /opt/install/libmirisdr you will have to add -DLIBMIRISDR_INCLUDE_DIR=/opt/install/libmirisdr/include -DLIBMIRISDR_LIBRARIES=/opt/install/libmirisdr/lib/libmirisdr.so on the cmake command line.

The Debian package is provided with libmirisdr so it is not a dependency.

Fixed SDRdaemon and SDRdaemonFEC builds so that they are included only if dependent libraries are found. This fixes issue #9

sdrangel - Optimization of FIR halfband filters

Published by f4exb almost 8 years ago

  • SIMD optimization with SSE4.1
  • Push decimators halfband filter order to 64
  • rationalize build process with SIMD options