rtl-sdr offset tuning and other questions

David Jacobowitz david.jacobowitz at gmail.com
Fri May 17 18:56:44 UTC 2013

Hi guys,

I'm new to this list (and to radio) so I hope you will please indulge me 
if I ask something that is a FAQ. Also, some of these questions are 
about the dongle, not the library.

I am working on a personal project to use SDR techniques to decode 
aviation navigation signals (VOR). I've got the signal processing mostly 
working from recorded signals, but am now trying to integrate my SW with 
the radio in real time.

I have a few questions:

  - What exactly is offset tuning? How is offset tuning different from 
tuning to an offset?

Is this a feature that mostly benefits people who are not going to put 
their IF through another mixer? In my application I am already tuning to 
an offset, and pulling down a wide enough IF that actually holds many 
channels of interest.  (VOR channels have 50kHz spacing). I then use a 
software mixer/channelizer to choose the channel I want. Am I correct in 
assuming that offset tuning is of no use to me?

- regarding AGC, what is the difference between AGC and auto gain?

That is, the library API has

RTLSDR_API int rtlsdr_set_tuner_gain_mode(rtlsdr_dev_t *dev, int manual)

RTLSDR_API int rtlsdr_set_agc_mode(rtlsdr_dev_t *dev, int on);

I'm guessing that these affect different AGCs. One for the tuner and one 
for the RTL device.

What are the benefits and costs of having either or both on?

- regarding rtlsdr_read_async(...) and related functions.

I take it that the library is setting up a ring buffer and calling me 
back when it has a new buffer of data for me.

How long to I have to work with this buffer? Obviously, if I want to 
work in real-time I need to keep up with the sample rate. But my 
application can afford to throw away buffers since it can decode a few 
ms of data from one station and then revisit it much later. However, I'd 
like to know how long I have until the buffer gets clobbered. I'm 
presuming it's stable until all the n-1 other buffers have been hit.

- generally how fast can the RTL devices tune? I know, this is not an 
rtlsdr question per se, but I'm curious. I noticed that when I tune, I 
get a delay.

This is a great library and I'm so glad it's out there! I was not 
looking forward to plumbing the depths of USB drivers to understand how 
to pull data from the RTL dongle! I think rtl-sdr.h could use perhaps a 
smidge more documentation.  I'd be happy to submit a comments-only patch 
if there's interest. :-)

Dave Jacobowitz

More information about the osmocom-sdr mailing list