Over on YouTube user AE0AI has uploaded a video where he explains how he uses an RTL-SDR and a home made noise source as a poor man's network analyzer. A network analyzer is a tool that allows you to analyze the response of RF devices, such as filters. By using a noise source together with an RTL-SDR the same functionality as a network analyzer can be obtained, however of course with less accuracy.
In the video AE0AI shows us his home made noise generator, which is a based on a simple circuit that he found online. He then shows the noise generator connected to the RTL-SDR, which shows that his home made generator works up to about 40 MHz. Later in the video he tests a home made 40m filter with the noise source and RTL-SDR, and the response is easily visible. With the response visible he is able to tune the filter by adjusting the inductor windings.
To use the driver in SDR# simply unzip all the files into the SDR# folder, then while using the dongle in SDR# open the librtlsdr_wincontrol.exe file to open the control interface. The interface also has the ability to directly write values to a register, which together with the newly released register datasheet, can be useful for experimenting with the R820T2 chip.
The description reads:
Unpack all files to SDRSharp folder, start SDR# playback, then run controller exe file. Do not forget to allow software to use UDP/32323 port in your firewall.
You may use this rtlsdr.dll with osmocom or other software, of course. It is fully compatible to original one.
There are UDP server on 32323 port inside of rtlsdr.dll. It accepts and answers \n-terminated strings and accept two easy commands: get and set register. Examples: g 5\n – will return value of R5 s 7 10 15\n – will set four lowest bits (mask 0x0f) of R7 with value 10 s 12 174 255\n – will write complete byte to R12 All values should be decimal. You may use this feature to develop own gui controller with beauty knobs.
The idea in brief is to modify the librtlsdr code so that an unix domain socket server receives i2c register set/get commands and executes them. It only works for r820t tuners. This modified rtlsdr library is then dynamically preloaded by means of LD_PRELOAD and used by the SDR software. This is actually what happens when you call r820tweak <program>. This way, no modifications to both gr-osmosdr source and the SDR program are required, instead of waiting for them to implement those controls, we kind of have a separate program that tweaks them.
The GUI program is a simple wxpython client, it currently exposes the following settings:
LNA, Mixer, VGA gain stages – the 3 variable gain stages
LPF/HPF filter cutoff – these control the “width” of the r820t2 lowpass/highpass filters, those filters are relatively sharp and this in turn is very useful to increase the dynamic range by fitlering out strong signals “close” to the weak signal you are hunting. Those are among the nicest features to play with, together with the gain stages.
LPNF cutoff – apparently there is also a low pass notch filter, however this doesn’t work as I expected. Anyway, still useful as a kind of variable attenuator.
Filter bandwidth – there is a bandpass filter which isn’t quite “sharp” at all, centered at the center frequency. Kind of additional filter, easier to manipulate than the rest of them, but not that powerful. May provide some extra dynamic range. Behaves kind of weird when gqrx decimation is used.
As far as the gain stages are concerned – the LNA gain is the first stage and thus the most important – it determines the SNR. Mixer gain is less important (unless the signal is too weak). The VGA gain should be almost always set to zero as it doesn’t contribute to the SNR at all while keeping the dongle warmer and so more thermal noise.
In the R820T2 i2c register specs there are some other interesting features, currently unexposed. One of them is the band selection filter (lo/med/high) which apparently is even used in the librtlsdr driver. I found changing that has absolutely no effect for me unfortunately. It might have provided opportunities for better reception around the “verge” where the librtlsdr driver switches them (approx. at 310MHz and 588MHz). But switching them has absolutely no effect.
By using an RTL-SDR dongle together with a low cost noise source it is possible to measure the response of an RF filter. Also, with an additional piece of hardware called a directional coupler the standing wave ratio (SWR) of antennas can also be measured. Measuring the response of a filter can be very useful for those designing their own, or for those who just want to check the performance and characteristics of a filter they have purchased. The SWR of an antenna determines where the antenna is resonant and is important for tuning it for the frequency you are interested in listening to.
The BG7TBL noise source is a wideband noise source that can provide strong noise over the entire frequency range of the RTL-SDR. It requires power from a 12V source which can be obtained from a common plug in power supply. It also uses an SMA female connector, so you may need some adapters to connect it to your filter under test (adapters can be found cheaply on Ebay). Finally a quick warning: be careful when handling the circuit board after it has been powered for some time as some of the components can get very hot. Note that if the Ebay store runs out of these there is also a seller on Aliexpress with some available, just type "noise source" in the search bar.