An RTL-SDR ExtIO with Decimation and Tuner Bandwidth Controls

RTL-SDR experimenter Hayati Ayguen ( on GitHub) has released a version of rtl_tcp and an ExtIO module that allows access to normally hidden tuner settings. The ExtIO allows you to manually set the tuner bandwidth of the R820T/2 chip. It can be set almost anywhere between 350 kHz and 8000 kHz. In the standard drivers the tuner bandwidth is normally set at a size appropriate for the sample rate, but in this driver using a smaller bandwidth allows you to filter out unwanted signals whilst taking advantage of the decimation a higher sample rate gives you.

In addition to the tuner bandwidth settings, the ExtIO module also implements decimation controls. This allows you to reduce the displayed bandwidth without sacrificing the sample rate. At the same time the R820T/2 tuner bandwidth is reduced to the visible sample rate, improving filtering.

Hayati writes in the Readme file:

Tuner bandwidth is supported with E4000 and R820T tuners.
Changing bandwidth with R820T looks good and shows immediate differences in spectrum.
E4000 is not so nice, i can’t see any difference, for the bandwidths below 3400 kHz.
I also put in the wider bandwidths, even wider than the samplerate, which will produce aliasing!
These might be interesting for wide amplitude modulated signals, e.g. ADS-B.

Decimation of Samplerate is an option for very old and slow computers:
Before decimation, a very simple and fast low-quality filter (sum) is applied:
y(k) = sum over x( k * (1..decimation) ) ; x() = input samples from rtl_tcp
; y() = output samples to SDR app (HDSDR)
The sum produces values requiring more than 8 bit.
In addition to this soft-filter, minimize the tuner-bandwidth!
You will still receive aliases!!!, but a bit damped compared to directly sampling at the slower speed.
The reception’s center frequency (LO) is the most alias-free region.

The ExtIO interface. Enables tuner bandwidth and decimation controls.
The ExtIO interface. Enables tuner bandwidth and decimation controls.

A precompiled release of the ExtIO dll can be downloaded at As the ExtIO connects via an rtl_tcp server, you will also need to download Hayati’s modified rtl_tcp server from To use the driver, first run rtl_tcp locally simply by double clicking on it, then open HDSDR and select the new ExtIO_RTL_TCP.dll file.

We tested out the tuner bandwidth functions and it appears to work well. For instance in the following image there is a strong pager signal near 157.9 MHz. At first the RTL-SDR is overloaded by the strong signal causing multiple images to appear on the spectrum. But after reducing the tuner bandwidth to 350 kHz the left side of the spectrum is attenuated, and the interfering pager signal is no longer too strong. 

The modified rtl_tcp software (and rtl_(adsb|fm|power|tcp)) also support access to the software activated bias tee on our V3 dongles via the -T flag.

Tuner Bandwidth Selection Example.
Tuner Bandwidth Selection Example.

Hayati has also uploaded some slides which show some of the effects of using various different tuner bandwidths.

Notify of

Inline Feedbacks
View all comments

I hope this thread is checked. I tried this on the NooElec NESDR Smart. You know how bright and smooth the granular back ground is on a new rtl-sdr? Well mine was that way until I tried this EXTIO. Now its kind of dim and good amount of aliasing with the waterfall background looking like dim dark dim dark bands where it’s supposed to be a smooth bright granular back ground (with the regular extio for hdsdr). I tried reinstalling zading, and hdsdr. No help. How do I fix this side effect? Did the developer consider this? Why is there no instructions to get the R820T2 to function normally again? please reply!


I did. It’s not the same as before this decimation thingy. Aliasing forest now. Before had much less aliasing


On the Nooelec NESDR Smart it does the same for the right side as the left side using 350 khz filter.


I forgot to say apparently the filters are to wide causing the aliasing from overload. Why did driver developers do that?

Muhsin Dogrular

Eline sağlık 🙂


I’m surprised he did not put mixer and VGA controls in it. I use the optional SDR# tuner with great success reducing front end overload and optimizing the ADC input level. The Decimator is very powerful and will reduce the FFT display noise floor to that of the IF display. Note that while the FFT display may look better, the actual results are seen on the IF and AF spectrum displays.


Is it working with Sharp too or it is only for HDSDR?


i get NO audio out put in HDSDR when i use this extio and the same with sdruno ? but get audio when i use the original extios that come with the programs