|
Northern
Utah WebSDR
Receiving equipment
RTL-SDR "wideband" receivers |
RTL-SDR
dongles:
The "other" receivers - those that are not
considered to be "high performance" - use the so-called RTL-SDR
dongles. These USB dongles are ubiquitous and versatile:
They can cover (more
or less)
from a few hundred kHz to over 1.3 GHz using various on-device signal
paths - but all of these signal paths have in common one important
limitation - The A/D converter is only 8 bits.
Despite these
limitations, they are attractive because they are cheap -
from $4 for the "bottom end" and cheapest devices (which are far noisier than they
could be)
to over $50 for units with frequency converters and a few other bells
and whistles - including band-pass filters. The devices that
we
are using are just $20 and are the RTL-SDR dongles sold by "RTL-SDR
Blog": These units have thoughtfully-designed circuit boards
that
minimize extraneous, spurious responses and include 1ppm TCXOs for
decent frequency stability as well as providing separate signal
branches for "direct" and "quadrature" signal paths - but more on that
later.
Figure 1:
A typical "RTL-SDR.com" USB-based receiver - one of the better, "cheaper" options out there.
This unit has been programmed and marked with its own, unique (to the system) serial number.
Click on the image for a larger
version.
|
Ideally, the maximum range represented by an 8 bit A/D converter is
around 48dB - and this is approximately
what can be expected from these devices, but as with most things in the
real world, the actual answer to the question of "what is the dynamic
range" is more complicated. In reality, noise considerations
of
the device reduce the number of usable A/D bits and thus the dynamic
range, this noise coming from the device itself and other devices in
the signal path. When used "on air" their effective dynamic
range
can often "seem" to be greater than the 40-50dB that one might expect,
and this can be due to several factors:
- In reality, one can tolerate a surprising amount of
"clipping" (e.g.
signals causing the A/D converter to hit "full scale")
before signals across the spectrum are badly degraded. A
small/moderate amount of clipping - particularly if it is due to noise
and multiple signals - tends to degrade the signal/noise ratio overall
but on a shortwave band that is, by its nature, noisy anyway,
this added noise may go unnoticed most of the time.
- These devices are typically sampling at 28.8 Msps (million samples/second)which
effectively "oversamples" narrower signals in the passband which is
then reduce later in the signal path to a sampling rate of between 1
and 2 Msps, depending on the configuration.
In
theory, oversampling can yield effects somewhat similar to increased
A/D bit depth and this tends to improve the performance of the weaker
signals somewhat. In "direct" sampling mode, the 28.8 Msps rate
means that our Nyquist frequency is 14.4 - inconveniently close to the
20 meter band which poses some problems. Work-arounds for these
issues by using frequency converters is discussed farther down this
page.
- When listening to "off air" signals there is often a
significant
amount of noise being digitized as well. As it turns out A/D
performance can be improved somewhat if noise is deliberately inserted
in the analog input as it causes a bit of dithering,
somewhat suppressing the effects of quantization noise. In
other
words, it's almost as if the noise will "bias" the A/D converter a bit,
statistically giving slightly better weak-signal performance than one
might think even if the A/D converter is being driven only by enough
signal to "tickle" 2-3 bits..
Even with all of these effects, their useful range is quite limited
which means that if there are both very strong and weak signals being
digitized by the dongle's A/D converter, you are faced with a choice:
Decrease the gain to prevent the strong signals from badly
overloading it or increase the gain to allow reception of the weaker
signals, but suffer the effects when strong signals appear.
If
one uses these dongles it is imperative
that one avoid slapping it on an antenna, but include in the signal
path a band-pass filter that limits the signals getting into it to
those frequencies around the range of interest. In the case
of a
WebSDR we do this because we set up a receiver to cover a specific
range and it never needs to be tuned anywhere else.
The two signal
paths within the dongles:
The RTL-SDR blog dongles that we are using have two entirely separate signal
paths, depending on their application:
- The R820T
path. These dongles were originally designed to
receive off-air TV using a DVB format that is used in most places of
the world other than
the U.S. and this chip converts frequencies from a much higher
frequency
down to a lower frequency for the RTL2832 chip. It is this chip
is that may be coaxed to tune from around 20-30 MHz to over 1.3 GHz and
it has
built-in filtering and amplification. This signal path is
typically referred to as the "I/Q" branch. This path is used for 6 and 2 meter reception.
- The RTL2832
chip.
The output of the R820 feeds into this chip which does the 8-bit A/D
sampling at 28.8 MHz and can "tune" from a few hundred kHz to its
Nyquist frequency, or 14.4 MHz - or even higher frequencies via
undersampling techniques. Inside this chip is additional DSP
circuity, some of which is intended to help in the reception of
digital TV signals, is unused in the reception of signals in the
manner that we are interested. One piece of hardware that we are
using is a digital "tuner" that takes this the digitized output from
the
A/D and "converts" it to a lower frequency and sample rate which is
then made available via the USB port. As it turns out there
is
some sort of diagnostic mode built into the chip that bypasses the
aforementioned TV-related processing to allow the "raw", frequency-converted A/D samples to be
presented to the computer. Because these devices typically
operate using USB 2.0, the maximum usable sample rate for most USB ports/computers is
around 2 Msps, yielding a maximum contiguous receive bandwidth of about
2 MHz. The sensitivity on this branch is typically low, but
is
improved in the case of the RTL-SDR blog devices by an on-board
amplifier which helps a bit, but even more amplification is typically
required as noted below. This signal path is typically
referred
to as the "Direct" branch - typically using the "Q" input.
Some RTL-SDR dongles include a frequency up-converter that takes the HF
frequency range and presents it to the dongle in the 125-155 MHz range,
but the RTL-SDR dongles that we are using do not have this feature, so
we are using the "direct" branch which has certain frequency
limitations due to the 28.8 MHz sample rate. As noted
earlier,
the Nyquist frequency - the maximum frequency where we can faithfully
digitize the input signal - is 14.4 MHz and this means that we can use
it to directly "receive" bands up to 30 meters: 20 meters is
problematic because the top end of this band - 14.35 MHz - is only 50
kHz away from the 14.4 MHz Nyquist frequency and making a practical filter to
remove the images at 14.45 MHz and above that would appear in the 20 meter
band is very difficult to do!
At lower frequencies, such as the AM broadcast band, we can receive
signals directly - but the problem of dynamics rears its head again:
If one is located near an AM broadcast band transmitter - or
near
a metro area where there are several of these transmitters - the
signals from these AM stations can vary over 60dB, from the weak
"nearby" stations to the very strongest - a range entirely outside the
capability of the dongle itself unless certain heroic measures are taken. (For an article on
this, see reference #7, below.)
This article describes a means of attenuating signals within
the
AM broadcast band - with additional "notching" of the strongest signals
- while preserving sensitivity on the adjacent 160 meter band,
generally keeping all signals within the usable dynamic range of the
RTL-SDR dongle.
At higher frequencies, things are a bit easier to manage in that one
simply constructs a band-pass filter for the frequency range of
interest. Using a filter design program like Elsie (link)
which has a free (limited)"student"
version, one can input the desired center frequency and
bandwidth to yield simple - but adequate - designs that can be realized
using standard-value capacitors and easily-wound toroidal inductors.
Alternatively, you can get band-pass filter kits from QRP Labs (or simply "borrow" their published designs) that can be easily adapted to nearly any HF frequency range.
In this case it is useful to precede the RTL-SDR dongle with
a
bit of excess gain and provide an attenuator (typically post-filter)
that can be adjusted to find the "sweet spot" where the probability of
overload from strong shortwave broadcast stations is minimized and weak signals
can (usually)
be heard. This method is used for 60-49 Meter, 31-30
Meter, 25 Meter and 19 Meter coverage on the Northern Utah WebSDR with reasonable
effectiveness.
Using "direct" mode, these dongles effectively have a "hole" which
excludes direct coverage of 20 and 10 meters owing to the aforementioned
Nyquist and filtering limitations - and as is the case with lower frequencies which means that if we wish to
cover the 20 and 10 meters without being plagued with images, a
frequency converter (with appropriate filtering) is required. If a more expensive dongle with a built-in
frequency
converter were chosen, one would want the type with TCXOs to minimize
frequency drift, which can be greatly magnified because these
converters - and the tuner itself - operate in the 100-200 MHz range.
It is quite practical to build a frequency down
converter to yield comparable results as described later in this page. For example, if one
were
to mix 10 meter signals with a 20 MHz oscillator the result would be a
conversion of the 28.0-29.7 MHz range down to 8.0-9.7 MHz: By
down-converting, frequency drift of the various oscillators is
dramatically reduced as all of the frequencies involved are about an
order of magnitude lower than they would be with a 100+ MHz up-converter.
"Identifying" which RTL-SDR is which:
As is the case with many USB devices, using several devices of the same type can become problematic: An example of this is using several USB to Serial "dongles": Unless you get the same device in the same USB port every time
you end up chasing your tail trying to figure out which "COM" port
belongs to which device. Such is the case of the RTL-SDR dongles.
There is a means of uniquely identifying each RTL-SDR dongle - but by default, the serial number is typically "00000000" and must be set to something unique: Use the "rtl_eeprom" utility to set a separate serial number for each device as follows:
rtl_eeprom -s xxxxxxxx
Where "xxxxxxxx" should be a unique 8-digit serial number. (In
reality, fewer digits may be used.) You can either keep track of
the serial numbers to avoid duplication, or you can set it to other
8-digit sequence that is likely to be unique, such as the date and
time, as in: "19020123" for the 1st of February, 2019, the 23rd
hour, as an example. (Comment:
An 8-character ASCII string using letters and numbers may be permitted, but I
haven't tried it as I didn't want to risk "bricking" the device.)
Warning: If you do this, you should set the serial number as above - but then read it again (using "rtl_eeprom" with no arguments) to see if it "took" before "re-plugging" the RTL-SDR dongle and checking it again: If you don't do it this way you may "brick" the dongle - something that I have had experience with - and recovered!
It is also recommended that one disables the "IR" device as well using
the "-i 0" argument - again, "reading" the configuration back to see if
it "took" before "re-plugging" the RTL-SDR and checking it again.
The IR device just isn't needed for typical receiver use.
Once a device's serial number is set, mark that number indelibly on the outside of the RTL-SDR dongle.
If you use a "sharpie" or similar marker, be sure to cover the
number with transparent tape to prevent it from being rubbed off.
Unfortunately, none of the commonly-available Linux device drivers (at the time of this writing) seem to "know" about the serial number. What is really needed is the "device index" - which can change, depending on the physical USB port into which the RTL-SDR dongle is plugged.
When invoking an RTL-SDR device using the Linux command line "rtl_tcp" utility, you will get something like this:
>rtl_tcp
Found 4 device(s):
0: Realtek, RTL2838UHIDIR, SN: 00001005
1: Realtek, RTL2838UHIDIR, SN: 00001022
2: Realtek, RTL2838UHIDIR, SN: 00001003
3: Realtek, RTL2838UHIDIR, SN: 00001021
The right-most digits are the "unique" serial numbers that you programmed into the device with the "rtl_eeprom" utility while left-most digit is the "device index" - which is what one really needs to find out which serial number goes with which device index for programs like "rtl_tcp" if you have more than one device.
Unfortunately, just like with a USB to Serial dongle, which device goes to which index depends on exactly which USB port it has been plugged into. In other words, unless you make absolutely sure that you plug the same RTL-SDR dongle into the same
physical USB port it will get a different index: If you get a
different index, then the receivers will seem to rearrange themselves:
If they all share the same
antenna, this may go unnoticed, but if one has a VHF antenna connected
to it and another has a UHF antenna while a 3rd is connected to HF via
a bandpass filter, you may suddenly find them "deaf" as they may be
configured with the "wrong" antenna.
The "simplest" way to get around this is to clearly mark
the RTL-SDR dongles and their connecting cables to indicate which USB
port they should each be connected - and that it what we did (at the Northern Utah WebSDR) for a while, but there is another way.
In short, a simple script was written to associate the serial number and device index: It does the following:
- The command-line "rtl_tcp -d z"
is invoked. This tries to invoke a device with the index of "z"
- which will spawn an error (e.g. the device with index "z" won't be found) and the program will not bind to a device:
If an error isn't forced it may bind to the device with an index
of 0. In any case it will produce a list of devices and a serial
number like that shown above.
- The output of "rtl_tcp -d c" is piped to a temporary file
- The utility "grep" is used to find the line in that temporary file with the desired serial number (entered as a command-line argument for the script). In reality, grep will find any string in the returned information, but the serial number should be "unique enough"!
- The output from grep is piped to the "cut" utility to get the index number of the device with the matching serial number
- If there was no matching serial number, a device index of "999" is returned
- This index is returned by the script is not "999" it used to configure the desired device using "rtl_tcp".
By using the script to determine the device index when the system
starts up, you can be guaranteed that the correct device will be
properly identified no matter the physical port into which it was
plugged.
If you are the sort that can write bash scripts all day in your sleep,
the above will be easy to implement - but if you want a copy of what we
did, let me know.
Pages about other receive gear at the Northern Utah WebSDR:
- Softrock Receivers
- This page describes the "High Performance" receivers that use
"Softrock" direct-conversion receivers and sound cards. These
receivers cover limited bandwidth (up to about 192 kHz) but have excellent weak and strong signal handling properties.
- RF Downconverter for RTL-SDR receivers
- While there are RTL-SDR dongles that contain built-in upconverters to
allow reception across the entire HF spectrum, this may not be the best
way to do it. When receiving frequencies at or above the Nyquist
frequencie(s) on HF, one can downconvert to lower frequencies and get
good results, all described on this page.
- RF Distribution and filter system
- Absolutely essential to any receive system is the means by which RF
is distributed - and filtered, the means by which this is done at the
Northern Utah WebSDR being described on this page.
- An AGC block for RTL-SDR receivers-
Because RTL-SDR dongles have only 8 bits of A/D, their dynamic range is
limited. While one can adjust the gain to fit their useful signal
range "window", HF band conditions change constantly, making it
impossible to keep one of these receiver's limited dynamics optimized.
Preceding an RTL-SDR dongle with proper filtering and an AGC
circuit can make the best of these devices.
Go to the main "RX Equipment page.
Additional
information:
- For general information about this WebSDR system -
including contact info - go to the about
page (link).
- For the latest news about this system and current issues,
visit the latest news
page (link).
- For more information about this server you may contact
Clint, KA7OEI using his callsign at ka7oei dot com.
- For more information about the WebSDR project in general -
including information about other WebSDR servers worldwide and
additional technical information - go to http://www.websdr.org
Back to the Northern Utah WebSDR landing page