SDR Software Feature Ideas

N6BY

Geek
Original poster
Lifetime Supporter
Mar 1, 2006
3,174
3,058
Roseville, CA 121W
What features would you like to see in an SDR program?

I have recently started writing an SDR program. Currently it supports the SDRPlay, AirSpy, and RTL-SDR. I have the core functionality working. You can set the frequency, mode (AM, FM, LSB, USB, etc.) and it will play and optionally record audio.

Its currently implemented on Windows. I plan to port it to Mac when done, especially since there isn't much currently available on that platform.

On the top of my "to-do" list are tone squelch and scanning.

What are some other things you would like to see me implement?
 
Graphical bandplan overlay. The only program I'm aware of that has one is SDR#, and I'm not particularly fond of SDR#.
Excellent idea, and easy to implement. While recent versions of SDR# show the Aviation, Ham, AM, and FM bands, they are not as comprehensive as I think they could be. I will also want to indicate where public service, commercial, pager, CB, GMRS, and TV bands are (so you can avoid it).

... Speaking of SDR# -- while it does have an 'add-on' for tone squelch I have noticed that it doesn't seem to work very well (if at all). So that will be a high priority on the 'to-do' list for my program. And I am really frustrated by SDR#'s numeric control for setting the squelch level. HDSDR does it right (IMO) with the squelch setting graphically integrated into the S meter, and I plan to do similarly.

Another frustration of mine with current SDR software is that to listen to digital modes (like P25) you need 3 programs -- an SDR program, an audio pipe program, and a program like DSD+ running in a command prompt. Would be nice if it could all be done within one program. However, some of the digital formats are patented and may be off limits. But I do know that ADS-B, ACARS, AERO, PSK, and many other digital modes are not burdened by patents.

Anyway, please keep the ideas coming. I look forward to implementing them.
 
  • Like
Reactions: Titanium
Are you implementing just FFT spectrum (like SDR#), or swept spectrum display (like Spectrum Spy)?

For either, a trigger mask that could be set so that if the amplitude of a given (defined) frequency band exceeds a (specified) threshold, an alert or notification is created (e.g. an email is sent). This would be a useful tool for DXers to have automatic notification of when propagation conditions are on the upswing. Think of it as being something like a squelch set for a limited bandwidth.

If you're doing swept spectrum (i.e. a much greater range of frequencies than the 2 MHz to 10 MHz 'native' of the SDR devices), then satellite recognition would be useful. There is an implementation of this in an application created by a European developer using transponder definition files that are freely available. I have used it successfully for pointing a C-band dish. That implementation is for an SDR device that utilizes the ADF 4351 chip, but it would be good to have it available for RTL-SDR, AirSpy and SDRPlay as well. (The swept range would need to be most of 950 MHz to 2150 MHz.)

FWIW, I believe that the graphical bandplan overlay in SDR# can be customized to add user-defined bands.
 
  • Like
Reactions: N6BY
Are you implementing just FFT spectrum (like SDR#), or swept spectrum display (like Spectrum Spy)? ...
Initially it will be just a plain FFT waterfall. After that I would like to implement a swept spectrum + scanning over a large range of frequencies. And I like your idea of setting up alerts when certain frequencies have a signal above a certain threshold. I would probably want to allow various alert levels ranging from just a 'beep' to an email. Could even optionally attach a .wav audio file to the email!

I have read that the RTL-SDR has a high latency for switching the center frequency, but obviously the Airspy does it fast (given the existence of Spectrum Spy). Tonight I will run a comparison test of the RTL-SDR, Airspy, and SDRPlay
 
I have used both RTLSDR Scanner and RTL Panorama (wide-range scanners) with RTL-SDR sticks, and both perform reasonably well, Panorama being rather faster than Scanner (Panorama is a GUI for RTL Power). I therefore think you should pursue swept-spectrum with the cheap sticks.

I must say using AirSpy is night-and-day compared to an RTL-SDR stick in terms of speed.
 
...
I must say using AirSpy is night-and-day compared to an RTL-SDR stick in terms of speed.
I limped my flu-ridden body upstairs to perform some center frequency switching speed tests. (I should have gotten the flu shot last Fall).

Anyway, my results confirm your observations, DVB-S2.

Center frequency switches per second:
Airspy: 925.92
SDRPlay: 18.148
RTL-SDR: 13.108

I am surprised at the difference between the Airspy and SDRPlay. As for the RTL-SDR, it seems to agree with what I read about it elsewhere.

With the Airspy scanning from 950Mhz to 1750MHz in 10 MHz steps, it would only take .086 seconds -- certainly fast enough for a DVB bandscope and many other applications.
 
I limped my flu-ridden body upstairs to perform some center frequency switching speed tests. (I should have gotten the flu shot last Fall).

Anyway, my results confirm your observations, DVB-S2.

Center frequency switches per second:
Airspy: 925.92
SDRPlay: 18.148
RTL-SDR: 13.108

I am surprised at the difference between the Airspy and SDRPlay. As for the RTL-SDR, it seems to agree with what I read about it elsewhere.

With the Airspy scanning from 950Mhz to 1750MHz in 10 MHz steps, it would only take .086 seconds -- certainly fast enough for a DVB bandscope and many other applications.


Have you tried the SDRPlay software SDRuno?
 
Keep up the good work, I would love to have a simple yet full featured program for my SDR Play.
Thanks. The first release will definitely be simple to use with basic SDR functionality. But it will have a few things added that I haven't yet seen in other SDR software -- like built-in tone squelch, signal notification, and whatever other ideas we come up with.

I can do this SDR project full time for a few months. But after that I will have to get back to the software for my business (Natural Scene Designer), and SDR will just be part-time.
Have you tried the SDRPlay software SDRuno?
Yes, but only briefly. I found it difficult to use and figured it would take too long to master. However, it seems like it has a lot of capability. What aspect of SDRUno do you like?
 
It handled the the hardware interface very well. You do have to open up a lot of windows but once you get use to it is a very nice SDR. I was playing around with it before a ham radio club meeting and the group that were watching me were impressed on how well it pick up the local police. I had one of those small whips attached to the dongle. I was a very big fan of SDR# but it seems as they improve it for AIRspy it loses features for RTLsdr and SDRPlay. One of the feature that I missed was that SDR# worked with a plugin from Russia that you could use Orbitron to track the Doppler shift of a weather, or any other satellite to up update the receive frequency in SDR#. I built a nice quadrifilar helix antennas to track weather satellites.

Th wx is too cold Right now to be playing around with wx satellites and SDR dongles and antennas.

Keep up the good work on your SDR design
 
I'm making progress on my first SDR Program, tentatively named "DR Processor" which stands for Digital Radio Processor. I am open to suggestions for the final program name.

drprocessor.jpg


So far the program has just some of the core functionality. The controls on the left will be completely redesigned for the released version. I just wanted to put something there quickly for testing and development. Those numeric entry fields will be large clickable digits for easier control.

Also, of course, I need to add numeric labels and lines for the signal graph on the top and a LOT of other things.

Anyway, the basic framework is there. The hard part so far was creating multiple processing threads for the input, conversion to baseband, filtering, decimation, demodulation, and audio output. This was needed to spread out the workload among the four cores. And then there was the challenge of getting them to communicate with each other in real time, and fast enough to process up to 10 million incoming raw IQ samples per second. I had to resort to using SIMD instructions (single instruction multiple data) for the time-critical portions.

Now that the hard work is done, I look forward to giving this a decent interface and implementing some features I have not seen in other SDR programs.
 
  • Like
Reactions: KE4EST and Titanium
Can't wait to see a release so I can play with it. Will be able to comment on features and things that could be added or done differently once I have a working beta to experiment with.
Looks like you are making great progress!! :)
 
Nice progress!

Feature Request: When using LNBs, it would be great to have an input frequency selection of the common LO frequencies for IF calculations rather than programming a frequency adjustment.
Will need negative frequency offsets for up-converters (like 'Ham-it-up' ) and positive offsets for LNBs. Then there is the matter of whether to add or subtract from the offset (KU band vs. C band). That will be the easy part. The hard part will be rapidly scanning about a 1 GHz range 8 or 10 MHz at a time. It might require an Airspy to get an acceptable scanning rate.

Can't wait to see a release so I can play with it. Will be able to comment on features and things that could be added or done differently once I have a working beta to experiment with.
Looks like you are making great progress!! :)
Its coming together quickly now. I would estimate a beta release by the end of Feb. The final product will probably be freeware or shareware for Mac and PC, and my goal is to include a server in it. The only part with a price will be if I get a client working on IOS and/or Android.
 
I added labels to the frequency graph and a very nice frequency display with large clickable frequency digits.

But I'm struggling with what should be the simple -- LSB and USB. Still haven't gotten audible speech on the 80 meter band. The problem is related to the fact that it needs more levels of decimation and filtering than WFM, FM, and AM, which I have working OK. And the other hard part is dynamically matching the input and output rates for the sound card. It has to be designed so that there is always audio available when requested by the sound card, but not too much data in the buffer which would cause it to overflow.

Currently I am using a rate correction factor to try to keep the audio buffer approximately half full. But sometimes it goes into an oscillation of approximately +/- 5 to 10% where it repeated slows down and speeds up the sound, instead of settling to a near constant correction factor.
 
...
Currently I am using a rate correction factor to try to keep the audio buffer approximately half full. But sometimes it goes into an oscillation of approximately +/- 5 to 10% where it repeated slows down and speeds up the sound, instead of settling to a near constant correction factor.
Being an experienced computer graphics programmer, I am used to seeing problems on the screen in the rendered output.

This is my first program that deals with sound, and I must admit it is very strange to have audio that repeatedly slows down and speeds up at times. The pitch of voice changes from a slow 'demonic' sound to a high pitched 'mickey mouse like' sound.
 
  • Like
Reactions: mikelib
***

Users Who Are Viewing This Thread (Total: 1, Members: 0, Guests: 1)

Who Read This Thread (Total Members: 1)