Improving the frequency precision of R820T dongles

radio at radio at
Sun Mar 28 16:33:52 UTC 2021


To avoid confusion, this post is about frequency errors inherent in the
dongle hardware, which is quite separate from crystal drift.

Having noticed that some dongles have impressive frequency stability, I did
some calibration tests, and discovered (as I should have known) that the
limited number length of the dongle hardware tunes to only an approximation
of the requested frequency. In extreme cases the frequency error, i.e. the
difference between the actual frequency and the requested frequency, can be
as much as 1 ppm.

To get around this limitation, I added an experimental function to
librtlsdr.c that returns the *exact* frequency that the dongle is tuned to.
It does this by reading internal registers, and working backwards to compute
the frequency.

Software that makes use of the added function can expect 1 to 2 orders of
magnitude improvement in precision, when a dongle is calibrated at one
frequency and then tuned to other frequencies.

If people here are interested in this work, please let me know where I can
post details, preferably including the occasional graph and table.


More information about the osmocom-sdr mailing list