Hello, 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. Ian