Bot releases are hidden (Show)
Published by f4exb almost 8 years ago
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).
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.
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
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.
Optimize the number of taps per phase in the polyphase filter. This improves the frequency response without increasing CPU usage.
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.
The BladeRF support has been added to the Debian builds.
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.
Set SIMD options so that it is effective for FEC processing.
Fixed device input dock not visible when application is first run. Re-order Window submenu items
Removed useless dependency on QTOpenGL end QTMultimedia where it was not necessary.
Published by f4exb almost 8 years ago
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.
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:
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 dependenciesYou 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"
Published by f4exb about 8 years ago
There is not much more visible things than this in this version. Decimation by 32 is now supported with RTLSDR plugin
More class name changes to avoid collisions with Tx tabs
Changes in view to support more than one audio flow by device. Unfortunately the AMBE3000 does not seem to cope with it so it is still limited to one flow by device. The code is kept like this as it can be modified in the future to support simultaneous encode/decode which should be possible according to AMBE3000 documentation.
This should be the last of the 2.1 series. Next will see embryonic Tx support (one simple modulator with file output) and therefore the versioning will bump to 2.2
Published by f4exb about 8 years ago
The Windows build of the plugin was not reading sample rates dynamically this is now fixed and thus Airspy Mini with 6.0 and 3.0 MS/s sample rate is supported with the Windows relase bundle.
The keenerd's version of librtlsdr was found to work not so great with strong signals giving more ghost images than the original. So we switched back to the original librtlsdr in development version with just the mods for no mod direct sampling support in addition.
Corrected issue when last user of the audio output quits. Thus it is now possible to start and stop devices (including file source) randomly even in single device mode.
Following a fix in DSDcc version 1.5.1 the voice on indicator is correctly handled for YSF mode. Of course you have to use version 1.5.1 or above of DSDcc to benefit from it. This is integrated in the Windows build bundle.
Some classes were renamed to avoid collision with future classes supporting transmission (Tx mode). The channel
plugin repository was also renamed to channelrx
Published by f4exb about 8 years ago
You have to use version 1.5.0 of DSDcc or above to benefit from the changes. Please refer to DSD plugin documentation for details on the new (and existing) features of the DSD demod plugin.
DSD demod plugin now supports Yaesu System Fusion abbreviated YSF. YSF is developed and promoted by Yaesu for Amateur Radio customers. The voice full rate mode with SerialDV is not supported (garbled).
D-star slow data is now decoded and displayed in the status display bar of the DSD demod plugin. Thus the following information is made available:
Published by f4exb about 8 years ago
The refactoring of DMR processing in DSDcc v1.4.0 brings dramatic improvements to DMR experience. Make sure you compile using v1.4.0 of DSDcc to benefit from the enhancements. This includes:
Published by f4exb about 8 years ago
Again there is no change in SDRangel itself but you must make sure you compile it with DSDcc version 1.3.0 that contains these improvements.
This is a dramatic improvement to the Digital Voice modes experience with this plugin. The clicks and distorsions on the voice are completely removed and decoding of data frames is much more robust.
The rewrite of the FSK modem in DSDcc yields some changes and improvements to the GUI along with other fixes:
Published by f4exb about 8 years ago
Although DSDcc library has many bugs it should be able to at least partially detect dPMR and NXDN frames. Actual changes in SDRangel itself are very light with only small changes to the DSD plugin GUI. Most importantly you should use the release 1.2.0 of DSDcc that effectively contains the new code.
Published by f4exb about 8 years ago
This plugin works with the FEC enabled version of SDRdaemon. When FEC is used the format of the data is completely different from what it is without FEC. The functionnality i also rather different so instead of trying to fit it into the existing SDRdaemon plugin this is easier and more straightforward to have a plugin on its own.
The addition of FEC blocks and the sequence tagging of frames and blocks make the transmission more robust. While it is unlikely to be beneficial with copper or fiber links it can improve links over WiFi particularly on distant links.
Please refer to the corresponding readme for further details about this plugin.
The auto correction buttons now have the same labels "DC" and "IQ" as the corresponding buttons in the other source plugins with the auto-correction feature.
Published by f4exb over 8 years ago
Thanks to sigysmund contribution SDRangel can now be built for Mac OS. Please be aware that this is still experimental and being currently tested by sigysmund.
There is no binary package for this release.
Published by f4exb over 8 years ago
This is the main point of this release and justifies the bump in major version. This is effectively an evolution of paradigm and involves a lot of internal changes although it may not catch the eye when looking at the interface.
Starting with this release multiple sampling devices (i.e. RTL-SDR dongles, Funcube dongles, HackRFs, File Source instances, SDRdaemon instances, etc..) are allowed to run concurrently. The audio of all channels producing audio from all devices is mixed in the final audio output. Each device resides in a device slot with corresponding device tabs in some critical windows of the main display. Thus the previous "X0" tab that was static is replaced with dynamically allocated tabs "R0, R1, R2, ..." corrsponding to the device slots 0, 1, 2, ... The "R' denotes a receiving device and is a provision for future (version 3) transmitting devices that will be tagged "T".
Device slots are added at the end of the device stack or removed from the top of device stack using the main window Acquisition menu "Add device" and "Remove device" options. The first device slot (R0) is added at startup and cannot be removed.
It may not seem obvious at first look but there are however important changes in the main interface. You can check here for the main interface documentation. The changes are:
Functions related to device management (start/stop, start/stop recording) are reported to the Sampling Device window for each device.
Following the windows re-arrangement with presets filed from the previous SDRangel revisions the new windows may not display the way you like. It is usually convenient to have the Sampling Devices window sitting at the top of the left bar. You can just drag and drop the window there and save the preset the next time you load the preset it will appear in the desired place.
The following inactive plugins code has been removed:
Published by f4exb over 8 years ago
DV serial devices such as the ThumbDV are now supported to decode AMBE frames. Such devices expose the serial interface of the official DVSI AMBE3000 chip. This lifts possible patent issues with mbelib
as already mentioned and offers a slightly better audio. However bear in mind that it uses a serial interface at 460 kb/s which is fairly fast but not as fast as a software codec. This limits the possibility of running decodes in parallel. To circumvent this you can add as many DV serial devices to your system as you wish and all will contribute to the global throughput.
Please note that this does not work in Windows.
Published by f4exb over 8 years ago
New rates: 256k and 1600k
Show color code in DMR specific status area
Preferences with only the audio settings has been moved to a main entry in the top menu as Preferences. The Audio device choice dialog has been moved under it. This will allow more general preferences to be specified.
Fixed missing initialization in D-Star header process causing random segmentation fault.
Published by f4exb over 8 years ago
Using DSDcc library which is a rewrite of DSD program as a C++ library a new DSD Demodulator channel plugin has been written. At present it decodes the following formats:
DSDcc itself uses mbelib to decode AMBE frames. While DSDcc is intended to be patent-free, mbelib
that it uses describes functions that may be covered by one or more U.S. patents owned by DVSI Inc. The source code itself should not be infringing as it merely describes possible methods of implementation. Compiling or using mbelib
may infringe on patents rights in your jurisdiction and/or require licensing. It is unknown if DVSI will sell licenses for software that uses mbelib
.
If you are not comfortable with this just do not install DSDcc and/or mbelib and the plugin will not be compiled and added to SDRangel. For packaged distributions just remove:
plugins/channel/libdemoddsd.so
dsdcc.dll
, mbelib.dll
, plugins\channel\demoddsd.dll
If you choose to compile and install this plugin you will need to have DSDcc installed in your system. Please follow instructions in DSDcc readme to build and install DSDcc. If you install it in a custom location say /opt/install/dsdcc
you will need to add these defines to the cmake command: -DLIBDSDCC_INCLUDE_DIR=/opt/install/dsdcc/include/dsdcc -DLIBDSDCC_LIBRARIES=/opt/install/dsdcc/lib/libdsdcc.so
If you have mbelib installed in a custom location, say /opt/install/mbelib
you will need to add these defines to the cmake command: -DLIBMBE_INCLUDE_DIR=/opt/install/mbelib/include -DLIBMBE_LIBRARY=/opt/install/mbelib/lib/libmbe.so
Please refer to DSD demodulator readme.md for details on the GUI.
Published by f4exb over 8 years ago
The key change is to maintain a fixed UDP payload size of 2048 bytes that was changing depending on the sample rate settings. This may cause discontinuity in the samples flow in the client application. The receiving application must make sure it acknowledges this block size. UDP may fragment the block but there will be a point when the last UDP block will fill up a complete block of 2048 bytes. So all blocks filling up to 2048 bytes must be received before the 2048 bytes block is passed to the rest of the application. In particular in GNUradio the UDP source block must be configured with a 2048 bytes payload size.
The UDP source utility buffer wrap around logic was fixed so there is no sample loss anymore.
In the GUI added the missing channel frequency display on the channel marker when the mouse is passed on the GUI.
Added a readme docimentation.
Block incoming traces (trigger) while in memory mode. This avoids an annoying trace shift in history when a new trace is received. Block all trigger related GUI controls accordingly. Fixed the pre-trigger samples initialization when trace size changes. Do not apply trigger changes when sample rate changes as this is unnecessary if not even creating bugs. These fixes make the trace history stable.
Added the current displayed trace sample rate in the GUI.
Added a squelch gate control. The fixed 50ms squelch gate can now be varied from 10 to 500ms in 10ms steps. This avoids longer transients to open the squelch.
Revamped the GUI so that it takes even less screen space. Added a readme docimentation.
Published by f4exb over 8 years ago
The main objective of this release is to provide export and import of presets functionality. Two icons have appeared at the bottom of the preset window symbolizing an outgoing arrow for export and an incoming arrow for import. The intent is to facilitate the exchange of presets between machines saving the tedious task to recreate all channels and settings each time.
To perform an export the cursor in the preset tree view must be located on a preset item. You then choose the location of the file that gets automatically suffixed with .prex
To perform an import the cursor in the preset tree view must be located either on a preset item or a group item. The preset will be imported in the located group. You then choose the location of the file filtered by .prex
extension. Note that you will have either to exit the program normally or press the save presets button (the diskette with a green tag) for the changes to be permanent.
Preset is serialized into a binary blob that is translated to base64 before being written to file thus the file appears as a text file but is unreadable. However this can be easire to handle than a binary file. In the opposite direction the blob is created from the base64 string and is deserialized into a preset that is added to the preset tree.
Some cosmetic changes have been made in the Airspy, BladeRF, HackRF and RTL-SDR input plugin GUIs to rationalize some widgets and gain screen space.
Published by f4exb over 8 years ago
There is now the possibility to control the distant SDRdaemon instance from the plugin. See SDRdaemon plugin readme for details. These parameters are stored in the preset and automatically sent when the preset is loaded.
The BladeRF is now supported. libbladeRF is significantly harder to compile than the oher hardware interface libraries but it could eventually be done.
It was possible to build SDRangel with MinGW64 thus there is now a 64 bit distribution. The SDRdaemon plugin is implemented only in this version. The 32 bit version fails when sending configuration messages with nanomsg. The corresponding .7z archive is the one starting with sdrangel64
it will unpack in a sdrangel64
subdirectory and the name of the executable stays the same: sdrangel.exe
Now the audio mute button lits in green when the squelch is open helping identifying which channels are active in a multi-channel configuration.
Published by f4exb over 8 years ago
In order to support the release under Windows I had to make SDRdaemon plugin more resilient to all sorts of troubles due to Windows being incapable of scheduling tasks properly and accurately. Thus we have now the following enhancements:
B
button in the GUI). You normally will want this one activeThe remote control from the plugin is not implemented. This may become available in the near future. For now you have to control it directly via ZMQ messages. You can use the Python utility found in the SDRdaemon sources.
Fixed intermittent segmentation fault due to missing initializations.
This is a major update for the OpenGL components (the spectrum and scope views). Initially this was in a move towards porting SDRangel to Android for which old fixed pipeline calls (OpenGL 1.1) are removed. The port to Android is still unsuccessful however it turned out that it facilitated the port to Windows and it makes the code ready for a possible future complete drop of fixed pipeline interfaces.
There is no change in functionality other that indirect changes to SDRdaemon plugin but this is a major step towards opening SDRangel to new platforms and thus possibilities. One may think of the Pipo series for example that run exclusively on Windows or Android. This can turn it into a nice portable SDR and signal analyzer. It was tested successfully on my Pipo-X8 under Windows8 with a RTL-SDR dongle.
However this comes with some limitations:
The code has been partially re-organized to facilitate integration with QtCreator:
xxx
to demodxxx
like am
to demodam
)You can build it yourself or just unpack the .7z archive in this release to anywhere on your disk (ex: D:\Programs
) and click on sdrangel.exe
You will need to install Zadig to get USB support for hardware devices. Please refer to Zadig website for details. Basically if you get things working for SDR# or HDSDR then it will work with SDRangel.
Published by f4exb over 8 years ago
Published by f4exb over 8 years ago
Fixes issue #3. Fixed a missing method body causing program crash when address text is edited.