Skip to content

SDR - Software Defined Radio

Software Defined Radio - SDR - is the name given to receivers/transceivers that replace much of what was achieved using analogue/mechanical devices - such as modulators, detectors and vraiable capacitors - by software.

They are, primarily at the low cost end of the market, in the format of a USB key and designed to work in conjunction with a personal computer fitted with a soundcard or alternative AD converter.

I have made a review of a couple of alternative freeware SDR applications, used in conjunction with a low cost RTL-SDR device based on the RTL2832U chip.

​At the time of writing, it is now possible to obtain a 0.5 ppm TXCO 150 KHz to 1.75 GHz coverage device for less than £35!
 
Here is a new update - 30th July 2023 - to the projects I have been playing with regarding SDR.
 
The original material - using various freely available SDR applications with a low cost RTL2832 dongle - follows after this new section.
 
I recently, at time of writing in July 2023, decided to rejoin the ISWL (International Short Wave League) after a gap of around 40 years!
 
As I had made the aquaintance of the gentleman who had recently taken up the post of Editor of 'Monitor' - the Club magazine - I was able to offer him some copy by way of an article on using SDR to receive shortwave broadcast stations; and that is what follows ...
 
 

SDR with the Nooelec SMArt V5, SDR# and SW broadcast stations

This is not intended to be a technical explanation of the workings of software defined radio, as that would be far beyond my ability; but, instead, how to get up and running with simple hardware and a relevant Windows™ application. I’ve limited this to Windows™ as it is the operating system with which I am most familiar, and I was unable to find anything that would run under Fortran 4.

There are several SDR software applications available, from HDSDR to the excellent SDR Console from Simon Brown/G4ELI and AirSpy’s SDR#. Not all will allow you to configure direct sampling, which is necessary in order to access the HF bands and below.

Early hardware modifications included piggybacking a base amplifier with 50 Ohm matching transformer and 5V rail filter direct to the RTL2832 chip. Another consisted of soldering an “antenna” wire directly to the RTL chip, bypassing the tuner!

The Nooelec SMArt V5 will provide acceptable reception of frequencies down to 100 KHz and won’t break the bank at around, (at time of writing), £35. It certainly won’t have the low noise and better dynamic range achievable using an up-converter, but has allowed me to hear a number of ‘DX’ broadcast stations with my compromise indoor antenna set-up. I decided to use SDR# as it has a nice clear screen layout and is, relatively, easy for me to get my head around.

SDR# doesn't install as a conventional Windows application, in that it doesn’t populate either the ‘Program Files’ or ‘Program Files (x86)’ folders. It is supplied as a 'Zipped' archive file and can be ‘dropped’ and unpacked to a convenient folder. It is run from the executable – SDRSharp.exe – and a suitable shortcut placed on the Desktop if needed.

SDR# is recommended by RTL-SDR.com website and they have an excellent guide on how to install it specifically to work with the RTL type dongles.

Download the guide from: RTL-SDR Quick Start Guide

A batch (.bat) file is supplied as part of the ZIP package – install-rtlsdr.bat – and running this file will download the necessary driver file, and a copy of Zadig; the generic USB driver installer application for SDR type dongles.

It creates a temporary download directory and then unpacks the .dll driver file to the SDR# folder, runs Zadig to install the USB driver and then tidies the temporary stuff away!

I did notice that the file version being used dates from 2018! If you wished to use the latest Zadig version, (at time of writing), you would need to replace – by editing in Notepad - the following line:

set zadig_url=b721/zadig-2.4.exe    with    set zadig_url=v1.5.0/zadig-2.8.exe

Checking the properties of the downloaded file confirms that it is the up to date version - see screenshot below:

Zadig

 

I have to admit I did not go through the whole instruction before starting to play with SDR# but fortunately came across probably the most important setting early on.

By default, the gain is set to ZERO!

I’ll show a screenshot of the RTL-SDR Controller window further down this article, ֍ but clearly it is important to make this adjustment, before you try anything else, unless you are happy to listen to a quiet hiss! 😆

Before continuing, let me put up a screenshot of the SDR# main window:
 
SDR#

 

The first thing was to set the basic parameters of the dongle via the Settings cog:

   Cog

The RTL-SDR is sampling at around 2 mega samples per second. Instead of mixing this signal, it is fed straight to the ADC/2832 chip.

As the input signals are all going to be below the local oscillator frequency, 28.8 MHz; the requirement for establishing whether a signal is + or - of the LO – as would be in the case of quadrature sampling – is negated.

The sampling mode is set to: Direct sampling (Q branch)

Controller

 

֍ Also note the ‘RF Gain’ slider no longer sits at ‘0’!

Place ‘Sampling Mode’ in ‘Quadrature sampling’ to enable the gain setting to be adjusted before switching back to ‘Direct sampling (Q branch)’.

I’ll not go into every settings detail here, but two things I found very useful when tuning AM broadcast stations; one quite obvious and the other not so, were:

  • Having the IF Noise Reduction window active. Using it on the ‘Hi-Fi’ setting and making constant minor adjustments to the ‘Threshold’ value was very useful in picking out detail.
  • The not so obvious one is to use DSB mode. Although the transmitted signal is effectively double sideband with carrier, it is easy to ‘zero beat’ out the carrier signal by choosing an appropriate step in the SDR# ‘Step menu’. Using that method means I know precisely the frequency I’m listening to and can check against published data.

I hope that this might appeal to both the experimenter, and those with limited real estate like myself, who would benefit from this small form factor type of radio.

I understand there is scope for venturing into the higher frequencies within Monitor, so hopefully I might able to show how to use SDR for some of those activities in the future!

Robin Shelley.

G-21334.

 
 
Review of HDSDR used with a low cost RTL2832U dongle

HDSDR is a free SDR application which will run under all versions of Windows™ client software from 2000 onward.

It is a relatively ‘no frills’ programme, which makes good use of screen space, and provides a degree of automation with regard to spectrum zooming and default bandwidth settings according to the chosen demodulation protocol.

When installing HDSDR to use with an R820T/R820T2 based RTL-SDR dongle, make sure you don’t install any of the software that came with the hardware.

Plug in the dongle and then install and run ‘Zadig’. ‘Zadig’ is a generic Windows™ USB driver installer which can be found at: https://zadig.akeo.ie/

You need to select ‘Options’ and List All Devices, then select the “Bulk-In, Interface (Interface 0)" from the drop down list; or the RTL2832UHIDIR or RTL2832U options if you cannot see Interface 0.
 

 

All USB devices have a unique hardware identifier and you should be looking for the one above as confirmation that you are about to install the correct driver for the dongle; anything other than this ID could mean you are about to overwrite your existing, mouse, keyboard driver etc!

​If all goes well, you should see the new device under Universal Serial Bus devices in Windows™ Device Manager.

 

You are now ready to download and install HDSDR. At the time of writing, this can be found at: https://www.hdsdr.de/index.html
Also required is the specific .dll file for the RTL dongle. The link for this can be found under the ‘Hardware’ tab/button:

 

The .dll needs to be copied to the HDSDR installation folder. It is a 32-bit programme and, by default, will be in C:\Program Files (x86)\HDSDR

You are now ready to run HDSDR. It might call for you to confirm the .dll file you wish to use the first time you run it. It’s always a good idea to keep a copy somewhere too. HDSDR could become corrupted at some time, or maybe the file location moves on the Internet.

The HDSDR screen – even though it is one of the less complex SDR applications - is still quite dense in its layout and difficult to screenshot and display with any great clarity.

The general basics of the control functions though are as follows:
  • The bulk of the display is devoted to the 'waterfall', with the 'spectrum' sitting beneath it. You can 'grab' the frequency scale bar with the left mouse key and slide it left to right to bring to the centre the frequency you wish to receive.
  • You soon become familiar with the shapes of various signal modes, SSB, FM, satellite data etc.
  • There are sliders for Brightness, Contrast, Scaling and Minimum level for both the waterfall and the spectrum.
  • The resolution bandwidth and number of samples averaged over can be changed for the waterfall.
  • Hovering over the Local Oscillator (LO) and Tune frequency digits puts a yellow highlight bar above and below them and allows you to change frequency directly with the mouse scroll wheel. It's a good idea to put some 'space' between the LO and tuned frequency to avoid any de-sensing.
  • As you tune different parts of the frequency range available on the RTL-SDR devices, HDSDR will cleverly choose the most appropriate mode and bandwidth.
  • Manual adjustment of bandwidth can be made using the vertical slider control, or the Bandwidth button to the bottom left of the screen.
  • Notch and Auto Notch filters have proven useful when listening on the air bands where there are occasional adjacent carrier signals to where you are tuned, and they are very effective.
  • Another useful function is Squelch which you can set by clicking the mouse pointer directly on the S-meter scale at the level you wish to set it. Clicking back on zero effectively turns it off again.

I have found the combination of a relatively cheap dongle – the Nooelec SMART 4 was just over £33 delivered – and HDSDR to be excellent for a receiving a whole host of VHF and UHF transmissions.

Its predecessor, also from Nooelec, sadly proved to not be quite so robust. The Mini 2 did not have the Aluminium housing of the SMART device and – possibly together with some physical stressing due to the plug-in arrangement into the computer – lasted only a few months. It continued to function but the sensitivity was greatly reduced.

One area has proven to be a little disappointing; FM broadcast radio reception. I have struggled to find strong enough signals to carry out RDS decoding. A typical FM stereo broadcast signal will have +/- 75kHz deviation and 15kHz audio response. That occupies 180kHz bandwidth. Setting the bandwidth in HDSDR to maximum at 192KHz seems to considerably reduce the overall performance and dramatically affects the sensitivity.

I did find that things can be improved by installing on a better specification PC. An i7 processor, with the same 8Gb of RAM, gave much better signal levels on FM than an i3 with the same memory.
 
 
Review of SDR Console used with a low cost RTL2832U dongle

SDR Console is Simon Brown/G4ELI's, (of Ham Radio Deluxe fame), excellent multi VFO SDR application, which can be downloaded from:
https://ww.sdr-radio.com/radios

Both 32 and 64 bit versions are available and a choice of download sources, which include OneDrive and Dropbox.

As can be seen from the screenshot below, the screen layout is somewhat similar to some versions of MS Office with a 'button' bar in addition to the typical menu options.

There are a myriad of settings and options available in this package - I'll leave the bulk of them for you to discover from the ample information supplied by Simon Brown - but I will detail some of the features I found particularly useful and why I would recommend you to try this software.

​Make sure you have your RTL-SDR dongle plugged in prior to starting the software for the first time and it will pop-up the following window:

​Interestingly, it found my dongle automatically; the normal procedure is to click the 'Definitions' button and choose a device from the list. I'm guessing that, as I had already used Zadig to install the dongle driver to WinUSB, it found the details and populated the the 'Select Radio' window accordingly.

You can also choose the bandwidth at this point, or from the 'Radio' section buttons at the top of the screen once the application is up and running. Current generation RTL-SDR dongles can run up to 3.2 MHz; I set my earlier generation to 2 MHz. A general rule of thumb is that if the sound breaks up, you are running the sampling rate too high. The sample rate has to be at least twice as high as the highest frequency being generated in the received signal.

I found, overall, SDR Console to be somewhat more intuitive than HDSDR.

The emphasis put on the spectrum view, and making it an equal feature with the waterfall, I believe makes for a more informative display than that of HDSDR.

Also; keeping the audio waterfall switched off by default, but showing the audio spectrum display to the left of the screen instead of encroaching upon the RF 'real estate', I found useful.

A common problem that can occur with direct conversion receivers, like the RTL-SDR, is that of DC offset or DC spike. With HDSDR you have the option of moving the LO and Tune frequencies away from each other so that any oscillator 'leakage' isn't potentially swamping the signal being listened to.

There is no equivalent control in SDR Console; but it is possible to put in an IQ offset to move the DC spike away from the centre of the display.

​With the receiver running and in 'Home' view, click the 'Radio Configuration' button and then the 'IQ Correction' option – as per the screenshot below:

Other useful features I came across were:
  • As in HDSDR; being able to 'dial' up a frequency directly by using the mouse wheel over the relevant decade in the frequency readout
  • Directly pointing to either a signal seen in the spectrum, or waterfall, display; seeing the exact frequency alongside the pointer and clicking to reset to that frequency
  • Grabbing either to left or right of the green bandwidth bar in the spectrum display to directly change the bandwidth.  The change is echoed – in yellow text - above and to the right of the frequency digital readout
  • Instant centring of the current receive frequency by hovering in the RF spectrum and then clicking the ► | ◄ button – see below

  • I found the S-meter very informative with noise floor, actual and peak signal readings showing constantly. I did miss the squelch setting, directly on the meter scale, that is offered with HDSDR
  • One surprise was, when tuning broadcast FM stations,  was to find that RDS decoding is built in to the native application. It also has the option to show the PI code of the station for full confirmation.

As mentioned earlier, there are a myriad of functions and options available in SDR Console and each user will find their own favourites and way of achieving what they wish.

I think this application makes the perfect companion with a low end SDR device – like the RTL2832U chipped dongles.

As an example; the latest Nooelec, (USA/Canada manufactured), SMART v5 dongle has a 0.5ppm TXCO and covers 100 Khz to 1.75 GHz and costs approx. £36! - (January 2023).
 
 
Review of SDR# used with a low cost RTL2832U dongle

This review is set-out as per previous ones in that it is not meant to reiterate full application setting up and function, which is already in great detail and readily available on the web; but to give an opinion as to its suitability when used with a low cost SDR dongle.

SDR# doesn't install as a conventional Windows application, in that it doesn’t populate either the ‘Program Files’ or ‘Program Files (x86)’ folders. It is supplied as a 'Zipped' archive file and can be ‘dropped’ and unpacked to a convenient folder.

It is run from the executable – SDRSharp.exe – and a suitable shortcut placed on the Desktop if needed.

SDR# is recommended by RTL-SDR.com website and they have an excellent guide on how to install it specifically to work with the RTL type dongles.
Download the guide from:
RTL-SDR Quick Start Guide

A batch (.bat) file is supplied as part of the ZIP package – install-rtlsdr.bat – and running this file will download the necessary driver file, and a copy of Zadig; the generic USB driver installer application for SDR type dongles.
 
It creates a temporary download directory and then unpacks the .dll driver file to the SDR# folder, runs Zadig to install the USB driver and then tidies the temporary stuff away!

I did notice that the file version being used dates from 2018! If you wished to use the latest Zadig version, (at time of writing), you would need to replace – by editing in Notepad - the following line:

          set zadig_url=b721/zadig-2.4.exe
with
          set zadig_url=v1.4.1/zadig-2.7.exe
 
Checking the properties of the downloaded file confirms that it is the 2.7 version - see right.
 
I have to admit I did not go through the whole instruction before starting to play with SDR# and fortunately came across probably the most important setting early on.
 
By default, the gain setting is set to ZERO!
I’ll show a screenshot of the RTL-SDR Controller window further down this review, but clearly it is important to make this adjustment, before you try anything else, unless you are happy to listen to a quiet hiss! 😆

The first thing I was struck by was just how bold a layout is used for the application. I found that to be a plus point, as I would imagine possibly anyone who requires ocular assistance and is no longer in their youth may do too! 😊

Before delving into the workings of SDR#, it is necessary to configure the basic parameters of the dongle.

This can be done from the ‘cog wheel’ to the top left of the layout.

Clicking the cog wheel brings up this settings box:

Running the sample rate too high may cause dropouts in the signal. A lot will depend on what type of signals you are listening too.

The signals I have used for testing have been FM broadcast stations, and so will be placing the most ‘strain’ on the dongle and software.

Through experimentation, I found that the shown settings of 2.4 MSPS and 14.4dB gain were optimum; but each individual will have ideally to check for themselves.

These figures will, I hope, at least get you going.

 

As mentioned, the RTL guides are excellent and will aid you in all the capabilities of SDR#.

●   The triple bar button

3-bars_orig

is where all of the application controls are started and where you can access all of the settings panels:

Some of the programme operations that I think make this application particularly user friendly are:

●   The

●   The

h_orig
arrows_orig

button to quickly choose frequency step size.

button for fixing the tuning at the centre frequency and effectively sliding the tuning scale beneath the hairline.

●   Simple checkboxes for both:
                  Snapping cursor to a grid for the chosen frequency step
                  Blanking out the IQ DC spike

        ●   Ability to have, if you have the ‘real estate’, around 18 docked or floating information windows of your choice.

        ●   Zoom, Contrast, Range and offset for the FFT display on a single button controlled window.

        ●   As in SDR Console; full RDS decoding – including PI code - is built in to the native application.

        ●   A very much streamlined IQ recorder with scheduling.

        ●   Also, the virtually endless window arrangements options where you can dock or float windows entirely the way you would wish.

The following screenshot shows the huge number of options available for – in this case the audio spectrum window – docking.
The pictographs are very informative, as can be seen:

I was really pleased with the ease of use and general display of SDR#. I think the standard ‘dark’ interface works well. Everything is clear and easy to read and you can bring additional windows onto the screen, if you wish, and place them exactly where they work best for you.
 
It is very easy to set up and I found, albeit with some previous experience of similar applications, that I quickly found all the basic things I needed.