Skip to content

Releases: f4exb/sdrangel

Tx support for hardware devices

05 Jan 15:50
Compare
Choose a tag to compare

🎉 Tx support for real!

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

Other changes

- WFM modulator fixes - WFM demodulator fixes

Fixed multiple modulators lockup issue

26 Dec 16:51
Compare
Choose a tag to compare

Fixed multiple modulators lockup issue

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.

Other changes

- Removed useless mutex lock on audio input and output FIFOs. This may improve multiple channel reception fluidity. Apparently this is a requirement to work in OSX. - Fixed core dump when ending application and Tx is still running - Windows build: fixed deployment of WFM modulator

WFM Modulator

21 Dec 21:01
Compare
Choose a tag to compare

WFM Modulator

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

DSD demod: D-Star slow text fix

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.

Other changes

- Changed implementation details of the sample source FIFO - AM, NFM and WFM modulators: implement channel mute toggle button with specific icons - NFM CTCSS - Use precision NCOs for: - Channel Analyzer and SSB mod/demod channel NCO - AM, NFM, SSB and WFM tones - CTCSS tone - Set volume modulators span to [0.0,2.0] - Set modulators reference levels to -1 dB. - WFM demod: added 100 kHz RF bandwidth

SSB Modulator

16 Dec 00:52
Compare
Choose a tag to compare

SSB Modulator

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.

CW keyer

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.

Other changes

- Fixed possible segfault in SDRdaemonFEC plugin - NFM and DSD demod plugins: revised the squelch method to use a short average on the calculated instantaneous channel power - dB calculator: use a floor value (default -100 dB) when the input is zero instead of zero dB (which means maximum). - Updated sdrbase readme with details on how to use the recorded I/Q files. This fixes issue #10

NFM Modulator

08 Dec 07:32
Compare
Choose a tag to compare

NFM Modulator

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

Signal level meter

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

Debian builds fix

- Restored the missing SDRdaemon and SDRdaemonFEC plugins - Removed useless dependency on libglu1-mesa package (libGLU.so.1)

Other changes

- AM demod: removed useless AF filtering - NFM demod: fixed squelch so that it is actually based on average channel power - Adjust minimum GUI size of some demod plugins

AM modulator updates

29 Nov 17:52
Compare
Choose a tag to compare

AM modulator updates

New modulation sources:

  • file input
  • mic (audio in)

The GUI has changed to reflect these changes.

Other changes

- Audio in support

SDRplay comes into play

23 Nov 21:11
Compare
Choose a tag to compare

Support of SDRplay RSP1

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.

Other changes

Frequency dial (value dial) improvement

- When right clicking on a digit the digits on the right are all set to zero. This effectively does a floor rounding at the current position. - When left clicking on a digit a cursor is set on it and you can also use the arrows to move the corresponding thumbwheel. It was the any button click behaviour previously.

Build correction

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

Code enhancement

- Corrected clang warnings - BladeRF plugin: cleanup of useless methods and attributes - Debian build: remove USE_SSE2 flag for inner libairspy compilation

Optimization of FIR halfband filters

11 Nov 09:51
Compare
Choose a tag to compare

Optimization of FIR halfband filters

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

Windows build

- use SIMD optimizations systematically in all plugins

Tx full baseband interpolation chain (phase 2)

02 Nov 21:02
Compare
Choose a tag to compare

Tx full baseband interpolation chain (phase 2)

Half-band interpolator filter chain in up channelizer. Rational resampler interpolator in the modulator. Arbitrary sample rates in the File Sink to test all possible configurations. Decimation is also possible so any rate can be implemented (ex: 32 kS/s).

Interpolator/Decimator support

This is experimental in the AM modulator and demodulator. It allows rates lower than 48 kS/s in both. However there are race conditions with the audio system as the 48 kS/s rate cannot be exactly on spot with the interpolator/decimator input or output. This results in audible clicks but is a clear improvement from the original.

Decimators and interpolators filters improvements

These optimizations allow lowering the spurs below -72.5 dBc on Tx. On Rx there was no measurements done but a significant improvement in spurs rejection in the presence of a strong signal is expected

Half-band filter improvement

Optimized filter coefficients. Increased filter order to 48 for the half-band decimators (Rx). Changed algorithm to use the double buffer technique. CPU usage improvement is not significant but the frequency response is better.

Rational resampler filter improvement

Optimize the number of taps per phase in the polyphase filter. This improves the frequency response without increasing CPU usage.

SSE 4.1

Now SSE 4.1 is needed for x86_64 SIMD support. This anticipates further optimizations and is already needed in other parts of the code.

Debian package with BladeRF support

The BladeRF support has been added to the Debian builds.

Other changes and fixes

DV serial support

Fallen back the multi FIFO support as it introduced bugs and it is not possible to effectiely handle two conversations simultaneously on the same dongle.

SDRDaemoFEC plugin

Set SIMD options so that it is effective for FEC processing.

Main window

Fixed device input dock not visible when application is first run. Re-order Window submenu items

Dependencies

Removed useless dependency on QTOpenGL end QTMultimedia where it was not necessary.

Minimalist Tx support (Tx phase 1)

26 Oct 06:48
Compare
Choose a tag to compare

Minimalist Tx support

Phase 1 of deployment. There is a sine modulated AM modulator with a File Sink device for the Tx device. Everything works at a single rate of 48 kS/s (no interpolation). The I/Q (.sdriq) file output can be re-injected in the File Source device for verification.

In the Device menu of the top bar of the main window click on "Add sink device" to open a set of tabs oriented towards transmission (sink devices). Then in the device selector you can activate the only device available (FileSink) and you can add as many AM modulators as you would do for demodulators. The carriers will be mixed in the baseband that you can watch in the main spectrum window.

Debian package

At last we will distribute a .deb package which will install the software in /opt/sdrangel since it is not part of any official Debian or Ubuntu distribution. Therefore it will not interfere with the standard installation. Moreover it has specific plugin libraries and embedded libraries that you don't want interfering with standard locations. BladeRF is not supported yet due to its complicated build process as an internal dependency this will come soon however.

Install it as usual for a .deb package:

  • Make sure the universe repository is in your /etc/apt/sources.list
  • sudo apt-get update
  • sudo dpkg -i sdrangel_v2.2.0-1_amd64.deb
  • sudo apt-get -f install This installs missing dependencies

You can then start it from the command line:

  • /opt/sdrangel/bin/sdrangel

By default the sampling devices panel is not visible so on the very first time you start you will need to go to the "Window" item on the top bar menu of the main window and activate it by checking "Sampling devices"