How to get IQ samples from multiple rtl-sdr dongles in asynchronized manner?

Jiao Xianjun putaoshu at
Mon Dec 30 11:44:34 UTC 2013


I don't use the method of hardware modification. That can do synchronization promisingly, sure. I know this scheme couple of months ago, and good to know it works pretty well from you.

My thought is doing the compensation by software according to a common source over the air instead of over the hardware.

Do you think it is doable? And what would be the bottleneck according to your experience? Any possibility to tune the hardware by software after we estimate the synchronization error in frequency and timing?


Jiao xianjun

-----Original Message-----
From: "Sdr Guru" <sdrguru1 at>
Sent: ‎2013/‎12/‎30 19:01
To: "Jiao Xianjun" <putaoshu at>
Cc: "osmocom-sdr at" <osmocom-sdr at>
Subject: Re: How to get IQ samples from multiple rtl-sdr dongles in asynchronized manner?


Are you using a common clock?

I've modified some of the RTL dongles, played with GNURadio and Octave.
The results are promising, sample level correlation (2.4M/10, FM radio signal).

On Mon, Dec 30, 2013 at 9:38 AM, Jiao Xianjun <putaoshu at> wrote:

Hi guys,

For the multiple dongles synchronization in signal level instead of bits/packets level, I setup a working repo in github, and write a initial demo framework. See below:

You may find information and instruction of demo quickly by reading the README.

My initial purpose is performing in-fly calibration for multiple dongles according to some pre-known signal (GSM, ADS-B?) to let them work together coherently.
An ideal scheme may be that we should generate a very narrow band and very week signal in (or just located at the edge of) target working band of dongles, and perform the software in-fly calibration in background (or driver level). This would be user friendly.

Cheap (8USD+PP), simple, computer-controlled and legal FM band "marker"

I know it is far from final state currently, and many things are not clear yet (See TODO). But please join me if you also think this is a good idea. Just check out the demo and run it to have a look.
Testing it and I'll let you know.

Currently I just test the demo in Ubuntu-Linux.
Jiao Xianjun

On Mon, Sep 2, 2013 at 8:23 PM, Sylvain AZARIAN <sylvain.azarian at> wrote:



2013/9/2 Sdr Guru <sdrguru1 at>

The second way, use MLAT enabled dump1090

On Sun, Aug 25, 2013 at 4:13 PM, Jiao Xianjun <putaoshu at> wrote:


I want to use multiple rtl-sdr dongles to do some multi-antenna experiments.

Is it possible to read IQ samples from multiple rtl-sdr dongles in a synchronized manner?

I already have a glance at dump1090 codes, which is a project using rtl-sdr to decode aircraft broadcasting ADS-B messages in 1090MHz.

Seems that I should use rtlsdr_read_async() instead of rtlsdr_read_sync(), because that if rtlsdr_read_sync() is used, I have to call it multiple times sequentially. That looks not synchronized.

But rtlsdr_read_async() function only accept one rtl-sdr device as input parameter, and it will be blocked after it is called. So seems that it also can't be used for my purpose directly.

Also welcome any opinion on how to improve rtl-sdr lib/driver to support this feature.

Thank you.


Jiao Xianjun 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the osmocom-sdr mailing list