Releases: f4exb/sdrangel
HackRF Tx support
HackRF Tx support
Support added for transmission with HackRF devices using the HackRF output plugin.
Other changes
- WFM mod/demod and BFM demod: cleaned up the code of the internal requiredBW method - WFM modulator: fixed default RF bandwidth and initial channel marker width - Sample source FIFO: write ahead the exact same amount of samples that were read. This fixes lockup with interpolation factors larger than 2 - BladeRF and HackRF output plugins: added 4,8,16 and 32 interpolation factors - Windows builds: upgraded to libusb version 1.0.20 - BladeRF Windows builds: upgraded to latest version (HEAD) of libbladerf - Added an option to the main window device menu to scan system for available devices so that the list of device selectors is updatedFixed audio preferences settings
Fixed audio preferences settings
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).
Other changes
- Fixed audio input not started when using BladeRF output plugin. This effectively prevented using the microphone for modulation input.Tx support for hardware devices
🎉 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 fixesFixed multiple modulators lockup issue
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 modulatorWFM Modulator
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 bandwidthSSB Modulator
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 #10NFM Modulator
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 pluginsAM modulator updates
AM modulator updates
New modulation sources:
- file input
- mic (audio in)
The GUI has changed to reflect these changes.
Other changes
- Audio in supportSDRplay comes into play
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 compilationOptimization of FIR halfband filters
Optimization of FIR halfband filters
- SIMD optimization with SSE4.1
- Push decimators halfband filter order to 64
- rationalize build process with SIMD options