Releases: f4exb/sdrangel
DSD demodulator upgrade
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
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
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
Fixes issue #22. For latest functional changes see release v3.3.3
ATV narrow band modes
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.
ATV plugins update (2)
There are tons of new features and fixes that should improve experience with analog ATV.
ATV Modulator
- 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
ATV Demodulator
- 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
Other changes
- 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
ATV plugins update
ATV Modulator
- New modulations: USB, LSB, USB with vestiglal LSB and LSB with vestigial USB. These modulations automatically engage a FFT filter
- Invert video signal option
- See details here: https://github.com/f4exb/sdrangel/tree/master/plugins/channeltx/modatv
ATV Demodulator
- 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
Other changes
- WFM plugins fix: the channel marker is now movable from the spectrum display like with other plugins
ATV Modulator
ATV Modulator plugin
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
Other changes
NFM demod plugin
New discriminator for NFM demod based on new atan2 approximation. Added a squelch mode based on FM excursion.
Amateur Analog TV and new Channel Analyzer plugins
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.
Amateur Analog Television (ATV) demodulator plugin
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
Channel Analyzer "New Generation"
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
DSD demod: compatible with DSDcc v 1.6.0
DSD demod: compatible with DSDcc v 1.6.0
Adapted code to new interface. DSDcc 1.6 contains also bug fixes that could help stabilize the DSD demod plugin.