Re: Synchronization issue with multiple USRPs

The GRC file is attached. Here i am showing it scope sink with six
channels.

Khalid.

Date: Sun, 24 Apr 2011 23:36:54 -0700
From: Josh B. [email protected]
To: [email protected]
Subject: Re: [Discuss-gnuradio] Synchronization issue with multiple
USRPs
Message-ID: [email protected]
Content-Type: text/plain; charset=ISO-8859-1

Could you post a screen shot of the flow graph or attach the grc file?
-Josh

On 04/24/2011 11:10 PM, Khalid J. wrote:

Hi,

I have an eight element circular antenna array and I want to do
beamforming
using eight N210s in receive mode. So, I distributed 10MHz/1PPS reference
to
each N210 to synchronized them and routed the eight GbE ports through a
switch to the computer. I store data from each channel in one file/channel
using gnuradio companion. Later I want to do beamforming processing.

Now, when I start receiving the data, there is a fixed phase offset from
channel to channel. That’s OK as long as I know how much is it. The
problem
I am facing is that this phase offset is random each time you start
acquiring the data. Now how can i know about it to make a correction in
the

The GRC file is attached. Here i am showing it scope sink with six
channels.

Khalid.

The synthesizers in use are fractional-N. There will be different phase
offsets every time that they’re re-tuned, and this has to be
calibrated every time you re-tune, which is every time you start up.
That’s simply a property of fractional-N synthesis.

On 04/26/2011 09:36 AM, Khalid J. wrote:

The GRC file is attached. Here i am showing it scope sink with six
channels.

The trouble is that you need to synchronize the time across all N
devices, and tell them to start streaming at a specified time.

So, if you want to synchronize N devices in GRC, every device needs to
all go into the same “uhd usrp” block; and specify the “sync unknown
pps” and “external reference” options.

Outside of GRC, if you wanted to use multiple device handles, you can
accomplish this by catching the pps edge and calling set_time_next_pps
for each handle.

-Josh

Please correct me if I am wrong. I think that this random
channel-channel
phase offset at each acquisition depends on when each usrp 100MHz LO
locks
to 10MHz external frequency reference by PLL. How PPS will help in that
case? Unless PPS is locked somehow to 10MHz clock?

Is there a good example to follow, may to start with 2 or 4 channels?

So grateful for your kind help.

Khalid

This has never been clear to me!
What about the phase ambiguity due to the fractional-N VCO’s, as Marcus
has
mentioned?

This has to be calibrated out, yes/no?, but how?, unless after a retune
you then

TX a calibration sequence that you can correlate against and correct.
But after
this, then, do you really need to accurately wait for a PPS? It’s just
stuff in
the buffer, with the computational overhead of alignment.
Basically, how do you compensate for the ambiguity? (maybe it doesn’t
matter and

I’m probably talking rubbish :-/ )

Cheers,

David

----- Original Message ----
From: Josh B. [email protected]
To: Khalid J. [email protected]
Cc: [email protected]
Sent: Tue, 26 April, 2011 21:12:08
Subject: Re: [Discuss-gnuradio] Synchronization issue with multiple
USRPs

On 04/26/2011 11:22 AM, Khalid J. wrote:

Please correct me if I am wrong. I think that this random channel-channel
phase offset at each acquisition depends on when each usrp 100MHz LO locks
to 10MHz external frequency reference by PLL. How PPS will help in that
case? Unless PPS is locked somehow to 10MHz clock?

Yes, but I strongly recommend that you get time-aligned samples working
before trying to calibrate for the LO phase offsets.

In your GRC flowgraph, each USRP source block will provide samples that
start at a different random time that could be offset by many
milliseconds. I don’t think you want that?

In order to get time-aligned samples from N devices, you must

  1. synchronize the the time registers (seconds/ticks) across all USRP
    devices. You should use the PPS to do this

  2. tell the devices to stream at the same time.

Is there a good example to follow, may to start with 2 or 4 channels?

There is an example that comes w/ uhd called rx_multi_samples. if you
want to do this in GRC, follow the instructions in the previous email.

-Josh


Discuss-gnuradio mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

On 05/25/2011 09:56 AM, David E. wrote:

Basically, how do you compensate for the ambiguity? (maybe it doesn’t matter and

Well you really need to do two things:

  1. Synchronize the time registers across all the devices using the PPS.
    This allows you to time-align samples. Also, the cordics across all
    devices will be aligned in phase when you tell the devices to stream at
    the same time.

  2. Calibrate the setup. After you tune, the daughterboard LOs will have
    different constant phase offsets. With boards like WBX, its actually
    possible to sync the LOs using hardware, but this isnt implemented yet.
    In any case, no matter what, you need to calibrate by passing in a
    common signal and measuring your channels.

If you open/close the device handle or re-tune, you will have to re-cal.

-Josh

On 04/26/2011 11:22 AM, Khalid J. wrote:

Please correct me if I am wrong. I think that this random channel-channel
phase offset at each acquisition depends on when each usrp 100MHz LO locks
to 10MHz external frequency reference by PLL. How PPS will help in that
case? Unless PPS is locked somehow to 10MHz clock?

Yes, but I strongly recommend that you get time-aligned samples working
before trying to calibrate for the LO phase offsets.

In your GRC flowgraph, each USRP source block will provide samples that
start at a different random time that could be offset by many
milliseconds. I don’t think you want that?

In order to get time-aligned samples from N devices, you must

  1. synchronize the the time registers (seconds/ticks) across all USRP
    devices. You should use the PPS to do this

  2. tell the devices to stream at the same time.

Is there a good example to follow, may to start with 2 or 4 channels?

There is an example that comes w/ uhd called rx_multi_samples. if you
want to do this in GRC, follow the instructions in the previous email.

-Josh

This has never been clear to me!
What about the phase ambiguity due to the fractional-N VCO’s, as Marcus
has
mentioned?

This has to be calibrated out, yes/no?, but how?, unless after a retune
you then
TX a calibration sequence that you can correlate against and correct.
But after
this, then, do you really need to accurately wait for a PPS? It’s just
stuff in
the buffer, with the computational overhead of alignment.
Basically, how do you compensate for the ambiguity? (maybe it doesn’t
matter and
I’m probably talking rubbish :-/ )

Cheers

----- Original Message ----
From: Josh B. [email protected]
To: Khalid J. [email protected]
Cc: [email protected]
Sent: Tue, 26 April, 2011 21:12:08
Subject: Re: [Discuss-gnuradio] Synchronization issue with multiple
USRPs

On 04/26/2011 11:22 AM, Khalid J. wrote:

Please correct me if I am wrong. I think that this random channel-channel
phase offset at each acquisition depends on when each usrp 100MHz LO locks
to 10MHz external frequency reference by PLL. How PPS will help in that
case? Unless PPS is locked somehow to 10MHz clock?

Yes, but I strongly recommend that you get time-aligned samples working
before trying to calibrate for the LO phase offsets.

In your GRC flowgraph, each USRP source block will provide samples that
start at a different random time that could be offset by many
milliseconds. I don’t think you want that?

In order to get time-aligned samples from N devices, you must

  1. synchronize the the time registers (seconds/ticks) across all USRP
    devices. You should use the PPS to do this

  2. tell the devices to stream at the same time.

Is there a good example to follow, may to start with 2 or 4 channels?

There is an example that comes w/ uhd called rx_multi_samples. if you
want to do this in GRC, follow the instructions in the previous email.

-Josh


Discuss-gnuradio mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

On Wed, May 25, 2011 at 10:14 AM, Josh B. [email protected] wrote:

  1. Calibrate the setup. After you tune, the daughterboard LOs will have
    different constant phase offsets. With boards like WBX, its actually
    possible to sync the LOs using hardware, but this isnt implemented yet.
    In any case, no matter what, you need to calibrate by passing in a
    common signal and measuring your channels.

What will it take to implement syncing the LOs on the daughterboards
that do support this - is this on the roadmap for UHD currently?

If you open/close the device handle or re-tune, you will have to re-cal.

-Josh

Thanks Josh!
Doug


Doug G.
[email protected]

On 25/05/2011 12:01 PM, Marc E. wrote:

On May 25, 2011, at 9:14 AM, Josh B. wrote:

  1. Calibrate the setup. After you tune, the daughterboard LOs will have
    different constant phase offsets.
    In my experience (with a WBX in a USRP2 and a DBSRX2 in an N210), the phase
    offsets can change between bursts, not just when you retune. Is this not supposed
    to be the case?

-Marc

I think Josh had separately observed that the CORDIC phase accumulator
gets reset between bursts, so the DDC phase isn’t
continuous, and thus offsets would be different.

An interesting test would be to do continuous streaming, and see that
the phase offsets remain constant across a single tuning with
a continuous stream.

On 05/25/2011 12:01 PM, Marc E. wrote:

On May 25, 2011, at 9:14 AM, Josh B. wrote:

  1. Calibrate the setup. After you tune, the daughterboard LOs will
    have different constant phase offsets.

In my experience (with a WBX in a USRP2 and a DBSRX2 in an N210), the
phase offsets can change between bursts, not just when you retune. Is
this not supposed to be the case?

The cordics reset when you start a new burst. So you need to time your
bursts. -josh

On 05/25/2011 10:51 AM, Douglas G. wrote:

What will it take to implement syncing the LOs on the daughterboards
that do support this - is this on the roadmap for UHD currently?

Basically a timed spi command can sync the LOs. Its on the roadmap. That
wont forgo the need for calibration mind you. -josh

On May 25, 2011, at 9:14 AM, Josh B. wrote:

  1. Calibrate the setup. After you tune, the daughterboard LOs will have
    different constant phase offsets.

In my experience (with a WBX in a USRP2 and a DBSRX2 in an N210), the
phase offsets can change between bursts, not just when you retune. Is
this not supposed to be the case?

-Marc

On Wed, May 25, 2011 at 12:52 PM, Josh B. [email protected] wrote:

Understood - thanks.
Doug


Doug G.
[email protected]