Skip to content

Releases: f4exb/sdrangel

Build on Mac OS

05 Jul 16:44
Compare
Choose a tag to compare

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.

Multi device support

28 May 08:49
Compare
Choose a tag to compare

🎉 Multi device support

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:

  • The "File" menu is left with only the Exit (Ctl-Q) option
  • The "View" menu is left with only the Fullscreen (F11) option
  • The "Acquisition" menu original options (Start/Stop device, Start/Stop recording) is replaced with the "Add device" and "Remove device" options. The original function key shortcuts (F5 to F8) are removed. These options are now handled at device level. Using these options you can add more sampling devices and remove them one by one (see main interface documnentation for details)
  • The "Window" menu is unchanged but the original Source window has been replaced by two windows: Sampling Devices and Sampling Devices Control.
  • The status bar has changed completely since device related displays have been moved to the Sampling Device window. It has been replaced with a general status and current date and time.

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.

Other changes

Code cleanup

The following inactive plugins code has been removed:

  • gnuradio
  • osmosdr
  • v4l-rtl
  • v4l-msi
  • tetra demodulator

DSD demodulator plugin

- support mute of audio when using the DV serial engine - disabled the cosine filter

DV serial devices support for DSD demod

09 May 21:24
Compare
Choose a tag to compare

DSD demod update

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.

Updates for RTL-SDR, DSD demod and main menus

09 May 00:50
Compare
Choose a tag to compare

Changes

RTl-SDR source plugin

New rates: 256k and 1600k

DSD demod plugin

Show color code in DMR specific status area

Main menus

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.

Fixes

DSD demod plugin

Fixed missing initialization in D-Star header process causing random segmentation fault.

DMR and D-Star support

24 Apr 22:14
Compare
Choose a tag to compare

New channel plugin to support DMR and D-Star

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:

  • DMR/MOTOTRBO: European two slot TDMA standard. MOTOTRBO is a popular implementation of this standard.
  • D-Star: developed and promoted by Icom for Amateur Radio customers.

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:

  • For Linux distributions: plugins/channel/libdemoddsd.so
  • For Windows distributions: 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.

Changes on existing channel plugins

UDP source

- Allow L+R channels or single channel output. - Fixed audio input - Maximum FM deviation stting for NFM formats - Corrections to the readme

NFM demod

- Correction to the maximum FM deviation setting. Give fixed deviations according to the selected RF bandwidth, - Fixed squelch time gate value not displaying correctly

SSB demod

- Added audio mute toggle button.

Scope GUI

- Enhanced display - Minimum GUI width of 640 pixels for Channel analyzer and DSD demodulators.

Fixes

GLspectrum

- Remove useless dependency on QOpenGLWidget. This fixes issue #4

UDP source NFM demod and Scope GUI changes and fixes

03 Apr 16:56
Compare
Choose a tag to compare

UDP source plugin changes and fixes

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.

Scope GUI changes and fixes

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.

NFM demod changes

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.

Other changes

- Added a 2 MS/s sample rate position for the RTL-SDR - On the BladeRF GUI show units as kS/s and kHz as there is space for it - Changed Windows64 installation script so that it moves a big file instead of copying it thus saving space

Export/Import presets

29 Mar 15:59
Compare
Choose a tag to compare

Export/Import presets

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.

Cosmetic changes to input plugin GUIs

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.

SDRdaemon plugin updates and Windows build updates

28 Mar 07:37
Compare
Choose a tag to compare

SDRdaemon plugin updates

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.

Windows build updates

Support of the BladeRF

The BladeRF is now supported. libbladeRF is significantly harder to compile than the oher hardware interface libraries but it could eventually be done.

Windows 64 bit build

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

Other changes

AM and NFM demod plugins

Now the audio mute button lits in green when the squelch is open helping identifying which channels are active in a multi-channel configuration.

SDRdaemon plugin updates and Windows release

20 Mar 18:47
Compare
Choose a tag to compare

SDRdaemon plugin updates

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:

  • Main buffer length display in seconds. A lag of half of this amount vs real time is expected.
  • Read/Write pointers position in main buffer auto-correction (this is the B button in the GUI). You normally will want this one active
  • Button to reset the Read/Write pointers to their initial position
  • Button to control auto skew rate compensation activation (normally off)
  • Gauges and display value to monitor the Read vs Write pointers drift
  • Auto adapt to actual read polling throttle. In Windows this is way off the 50ms tick. Linux version also benefits from it since tick it is not always strictly every 50ms.
  • Use a main buffer length of at least 8s and up to 50 times the frame size so that auto R/W pointer distance locking algorithm can be efficient statistically.

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

BFM demod plugin update

Fixed intermittent segmentation fault due to missing initializations.

HackRF plugin updates

- Fixed possible segmentation fault due to missing HackRF library initialization before trying to enumerate HackRF devices - Added 5.6 and 8 MS/s sample rates.

File source input plugin updates

- Auto adapt to actual read polling throttle for the same reasons as for SDRdaemon plugin - Removed redundant navigation time display

Rewrite of OpenGL calls

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.

Porting to Windows

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:

  • BladeRF is not supported
  • SDRdaemon plugin for working with a remote receiver does not work in all conditions or even does not work at all. This is a limitation of the OS. SDRdaemon works beautifully under Linux.

The code has been partially re-organized to facilitate integration with QtCreator:

  • All files pertaining to sdrbase library are now located in the sdrbase folder. The include folder has been removed
  • Some channel demod pliugins were renamed (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.

File source plugin UI enhancements

25 Feb 13:15
Compare
Choose a tag to compare

File source plugin UI enhancements

- Enhanced readibility of timestamp - Added total record time in UI - Set the play loop button and disable it since for now file read always loops - Added seek bar to move the current pointer in the file. You have to pause the playback to move the slider.

Minor fix in SDRdaemon plugin UI

- Enable set button only when address or port fields are edited