Download 3.0.25 here.
Release Notes
User Interface
- Select Radio window now forces an internal update before being displayed, this is to resolve a cosmetic problem.
- Added Reduced resolution which requires correspondingly less CPU if processing the FFT on the computer's CPU. If using CUDA / OpenCL you will notice less of a difference. As a result I can now run the RX-666 with 32 MHz bandwidth on a 2014 Toshiba i7-4700mq laptop. This option will also help when using other SDRs on a lower-powered computer which does not benefit from a GPU card.
- Downconverter definitions now have a title.
- S Meter is now optionally hidden in receiver windows.
- IF window now shows the tuning bar in full height.
Spawn Child Instance
Added option in Ribbon Bar to quickly add a Child Instance. This uses the Console Streaming technology, with a single click it's automatically configured. The child instance receives IQ (SDR) data from the main instance.
The Child Instance:
- Has Child :: in the program's title bar.
- Automatically starts the connection to the main instance.
- Closes when the main instance closes.
- Closes if the radio is stopped in the child instance.
- Saves own window position and pane layout.
- Does not save settings such as speed, palette selection - the settings from the main instance are used at startup.
Added Step ☰ to the Modes window
When Step ☰ is clicked the list of steps is:
Also Snap is now user-selectable from this menu.1 Hz, 5 Hz, 10 Hz, 25 Hz, 50 Hz, 100 Hz, 250 Hz, 500 Hz, 1 kHz, 2.5 kHz, 3.125 kHz, 5 kHz, 6.25 kHz, 7.5 kHz, 8.333 kHz, 9 kHz, 10 kHz, 12.5 kHz, 25 kHz, 30 kHz, 50 kHz, 100 kHz, 200 kHz
Server
- Found an area where two connections could cause a deadlock from which the console cannot recover.
- Added automatic volatile blacklist - this stops DDoS.
- Tidied up the logfile.
- Increased maximum LAN bandwidth to 10MHz.
- Fixed bug in buffer assignments for bandwidths of 2MHz or more in the V3 Server interface (as used in Console).
- Improved performance of the Server Manager's Security Search option.
- Fixed database path in the Select window.
Demodulation
AM and SAM AGC change:
- 25 Hz high-pass filter now applied post-AGC, so any low frequency component such as the carrier will affect ARC. This is the first step in carrier-based AGC.
Signal History
- Uses a lot less CPU when running in the Slower / Very Slow speeds.
- Export now aligns the time to the data rate, so if the data is added 20 x second (every 50ms) the time is an integer multiple of 50ms.
"Time","Level","Noise"
06:59:30.800,"-102.46","-140.00"
06:59:30.850,"-97.11","-126.91"
06:59:30.900,"-95.28","-126.94"
06:59:30.950,"-94.39","-126.98"
06:59:31.000,"-93.85","-127.03"
06:59:31.050,"-97.55","-127.08"
06:59:31.100,"-103.54","-127.12"
06:59:31.150,"-108.89","-127.16"
Tmate2
- Fixed crashes.
Recording
- Scheduled recordings now stop any file playback before recording.
- Changed the video recorder main thread priority from Critical to Normal.
- Fixed a video recorder bug where it would not start if the Console's width or height (maybe both) was not an even value.
OpenCL
Added OpenCL diagnostics. Use DebugView: https://www.sdr-radio.com/diagnostics#DebugView.
Look for this output – all lines which start OpenCL>:
OpenCL> E:\SDRPhaseTwo\SDRSpectrum\PageOpenCL.cpp CPageOpenCL::OnInitDialog line 64 :: Loading OpenCL> E:\SDRPhaseTwo\Common\OpenCLLoader.cpp COpenCLLoader::Load line 78 :: OpenCL.dll OpenCL> E:\SDRPhaseTwo\Common\OpenCLLoader.cpp COpenCLLoader::Load line 86 :: E:\SDRPhaseTwo\x64\Release\clFFT.dll OpenCL> E:\SDRPhaseTwo\Common\OpenCLLoader.cpp COpenCLLoader::Load line 145 :: Loaded OpenCL> E:\SDRPhaseTwo\SDRSpectrum\PageOpenCL.cpp CPageOpenCL::OnInitDialog line 68 :: Loaded OpenCL> E:\SDRPhaseTwo\SDRSpectrum\PageOpenCL.cpp CPageOpenCL::OnInitDialog line 82 :: Get platform count OpenCL> E:\SDRPhaseTwo\SDRSpectrum\PageOpenCL.cpp CPageOpenCL::OnInitDialog line 87 :: Get list of platform IDs OpenCL> E:\SDRPhaseTwo\SDRSpectrum\PageOpenCL.cpp CPageOpenCL::StatusText line 236 :: NVIDIA Corporation :: GeForce GTX 1650 SUPER
Serial port (CAT) Commands
- Improved diagnostics for CAT command monitoring by displaying non-printable characters in Hex.
- White space removed from commands.
- More sanity checking added to CAT control (HRD issue).
ELAD
- Explicitly specify the folder used for loading ELAD support DLLs.
Pluto
RIT incorrect offset fixed.
RTL Dongle
- Added 500kHz, 750kHz bandwidths (decimated from 1,000 and 1,500kHz respectively).
- Now using Intel IPP 2020.
- Reduced lockups when changing frequency as part of frequency calibration.
RX-666
- Support added for RX-666/888, note this SDR uses a lot of current so must be connected to a good USB3 controller.
Transmit
- TX not stopping when sending long strings fixed.
Scheduler
- Now shows UTC times using ISO format, should avoid confusion (local times use local time format).
- Tested with UTC and local, appears to work correctly (I do hope).
Diagnostics
- Added diagnostics which show whether the idle loop is running. In the status bar a small dot will blink twice a second if the idle loop is running. If it’s not blinking then the main thread is overloaded.
- Added more VAC diagnostics to the logfile.
16:12:01.078: RX1 Audio> VAC [CABLE Input (VB-Audio Virtual Cable)] state now Stable: buffer used now 6000, (overrun 12000, stable 6000)
Development Environment
All code except for the FFT dll moved from visual studio 2013 (VS2013) to visual studio 2019 (VS2019), as a result now using the current of visual studio. The FFT dll is still compiled with VS2013 as the older CUDA SDK which supports 32-bit Windows cannot be installed on VS2019.
FFT processing now uses the latest IPP (Integrated Performance Primitives) library from Intel.
Profile-guided optimizations:
Seeing a very small improvement on the development systems (i5-8600K) but the development system CPU usage is already so low it's hard to measure this accurately.Profile-guided optimization (PGO) lets you optimize a whole executable file, where the optimizer uses data from test runs of the .exe or .dll file. The data represents the likely performance of the program in a production environment.