Mods and performance of R820T based RTL SDR receiver

EN: I bought few different RTL2832U based SDR dongles. I want to see what cheap Software Defined Radio technology can achieve. There are huge amount of information online but it’s more fun to do some measurements on the bench and see bay my self.  I plan to add some filtering to power supply and add shielding. Then measure noise floor, frequency accuracy and maybe some other parameters.
More about SDR can be found on This is very informative site with tons of information.

LT: Programinio radijo (SDR) tema rašysiu anglų kalba, nes noriu, kad informacija pasiektų platesnę auditoriją. Kaip bebūtų iliustracijos gana aiškios ir manau nesudarys problemų net nesuprantantiems angliškai. Visada galite klausti komentaruose. 

Plačiau apie SDR radiją grystą RTL chipu galima paskaityti Labai gera svetainė su begalo daug informacijos. 

First one I tried was widely available version for 8-13 USD with RTL2832 + R820T chips.

Korpuse idetas

Be korpuso

Since I will not use dongle in original form factor I minimized it’s size. It is safe to unsolder IR remote control receiver and to cut off PCB as show in picture below:

Pjovimo vieta

Then added additional 100nF, 1nF and 100pF bypass capacitors in parallel to all existing power supply capacitors. On raw 5V power supply going from USB connector to SDR dongle I added NFM18… in line filtering solution from MuRata company. Later onI soldered more of those in other power supply nodes as an extra precaution against noise.

Next step was to cover PCB with temperature resistant kapton tape:
kapton tape

Scraped off some protective yellow PCB coating and soldered copper foil shield to the exposed ground:

Copper foil

Copper foil

With internal low noise amplifier active dongle gets pretty hot so I decided to add additional heat sinks and keep dongle cooler:
heat sinkHeat sinks were opened to improve heat radiation:

I don’t think that these modifications will add much to dongle performance and make it entirely different beast but I will definitely sleep better by knowing that I did these mods. Sooner or later I will get another dongle without modifications and will try to compare.

Now measurements:

First I am interested in antenna input return loss, how much signal is reflected back to the antenna. These dongles were meant to be used with 75 ohm impedance antennas for digital TV broadcasts so it will not perform as good on 50 ohm antennas, common in radio amateur world. Here is SWR plot of antenna input when LNA is disabled (0dBm gain):

soft at 100MHz tuner gain 0dBm

Markers are set to SWR coefficient 2 meaning that inside these boundaries more then 89% of signal power will reach receiver and will not be reflected back to antenna. From this I see that SDR dongle best performs in the region from 44MHz to 1138MHz. To make things more complicated I can add that reflection coefficient changes with different LNA gain, here is archive with more measurements – VNA SWR archive. Lowest source signal I can configure in my VNA analyzer is -30dBm so maybe with higher LNA gain insertion loss is changing due to RF front end overload? In future I will do noise floor measurement over full band and note minimal signal I can see in spectrum window. We will see how it will compare to insertion loss.

With some LNA gain settings reflection coefficient slightly changes when frequency of operation is changed to 310MHz and any above that. It’s like something is changed inside the R820T tuner when working above that point. See archive above with more measurements for an example.

How bad is standard 28.8Mhz quartz resonator?  In following measurement I fed 160.000.000 Hz carrier wave from very accurate RF generator which is clocked from rubidium frequency standard. And in the software I got 159.990.095 so error is 9905Hz, almost 10kHz:


Where is the noise floor?  Since amplitude scale in RTL-SDR software packages is relative it is not straight forward to determine signal strength or noise floor. One of the way that came to my head first was to apply barely visible carrier wave from signal generator and call that close to noise floor. And that is what I did. In the picture below you see that in real time spectrum applied signal is not visible at all, only in waterfall spectrum it is possible to see traces of signal (click on picture to zoom in). This was signal strength of -88.2 dBm when LNA is disabled (0dBm gain):

160MHz -88.2dBmThe next interesting question is really graticule step 10dB? From the noise floor I started to increase RF signal generator output power until I reached graticule levels and noted the difference. This is what I came up with:

graticule -50 <> signal applied -73,9 dBm;
graticule -40 <> signal applied -64,1 dBm (applied signal step – 9,8 dBm);
graticule -30 <> signal applied -53,0 dBm (applied signal step – 11,1 dBm);
graticule    0 <> signal applied -23,6 dBm (applied signal step – 29,4 dBm).

Since I only eyeballed the graticule with shown signal peak I call this close enough to real 10dB step. This measurement was also made with LNA disabled (0dBm gain).

That’s it, next on the bench will be RTL SDR receiver from NooElec with R820T2 tuner.


This entry was posted in RF reikalai, SDR Software Defined Radio. Bookmark the permalink.

7 Responses to Mods and performance of R820T based RTL SDR receiver

  1. Michel Tossaint says:

    Dear Laidukas

    Very interesting article. I am also trying to calibrate real power levels of FM station nearby my house. I saw you related the noise floor to -88dBm with Gain=0, but what were your other settings during this test. For example FFT Size / RBW or sampling rate? They might also affect the noise floor indicated.

    Gr Michel

  2. Laidukas says:

    Hello Michel,
    When I have opportunity I prepare new article where I compare noise floor of R820T and R820T2 tuners, I will try to reflect FFT and related parameters there.
    In this article experiment was conducted with defaults that are after SDR sharp installation.

  3. Michel Tossaint says:

    Dear Laidukas

    I am writing you because I believe you have made an error. You should measure the minimum power level of a signal that is coming just over the noise with the LNA set to a good value (30dB or so). The smallest level you get will be the noise floor under good operation (meaning minimum NF of the RTL, which is at proper LNA setting).

    According to my computations you should get something like -100dBm iso -88dBm:
    Boltzmann constant -229 dBW/Hz/K
    System Noise Temperature 390 K
    Noise PSD -203 dBW/Hz
    Noise Figure RTL receiver 10 dB
    Noise floor PSD -193 dBW/Hz
    Noise floor power in 1.8MHz -130 dBW
    in dBm -100 dBm

    what do you think?

    gr Michel

  4. Laidukas says:

    I think with LNA enabled it is not possible to get repeatable measurements between different users in different locations as surrounding RF noise will be different. So max reasonable gain setting will be also different. But certainly you can receive better reception with LNA enabled. When antenna input I connect to my RF signal gen radio signal path becomes very well shielded from outside and I can set gain to the max (50dB), then I can see signals of about -120dBm power, if I recall correctly. I will repeat this type of measurement.

  5. ABL says:

    Turiu kelis nuo senų laikų – kai pagalvoji, afygienas dalykas. Pasijungi per OTG prie tabletės, susikali iš kelių kokso gabalų anteną ir turi visą ADS-B info laukuose. Skraidant aukštai – labai geras dalykas 😉
    Modų nemėginau, viskas dar stock – jei norisi palygint performance – galiu duot?

  6. Laidukas says:

    Dėkui už pasiūlymą, bet dabar RC skraidymo sezonas, tikėtina prie šių radijo reikalų negryšiu iki vėlyvo rudens :)

  7. Julius says:

    Na, aš irgi susižavėjau šituo dalykėliu. Nesitikėjau, kad bus tokie neblogi rezultatai netgi miesto sąlygomis. Aprašiau viską, įskaitant upconverteriuko gamybą štai čia:

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>