# Synchronization issue with multiple USRPs

**URL:** <https://www.ruby-forum.com/t/synchronization-issue-with-multiple-usrps/206183>\
**Category:** GNU Radio\
**Created:** [April 25, 2011, 8:11am UTC](https://www.ruby-forum.com/t/synchronization-issue-with-multiple-usrps/206183 "2011-04-25T08:11:22Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![dubstep](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/cdc98d/32.png) [@dubstep](https://www.ruby-forum.com/u/dubstep)\
**Post date:** [April 25, 2011, 8:11am UTC](https://www.ruby-forum.com/t/synchronization-issue-with-multiple-usrps/206183/1 "2011-04-25T08:11:22Z")

</div>

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  
array processing. Is there a way to fix it or take care of it in system  
calibration?

Thanks,

Khalid.

---

<div class="post-metadata">

**Author:** ![khalid\_j](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/53a042/32.png) [@khalid\_j](https://www.ruby-forum.com/u/khalid_j)\
**Post date:** [April 25, 2011, 8:37am UTC](https://www.ruby-forum.com/t/synchronization-issue-with-multiple-usrps/206183/2 "2011-04-25T08:37:54Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![khalid\_j](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/53a042/32.png) [@khalid\_j](https://www.ruby-forum.com/u/khalid_j)\
**Post date:** [April 25, 2011, 7:30pm UTC](https://www.ruby-forum.com/t/synchronization-issue-with-multiple-usrps/206183/3 "2011-04-25T19:30:42Z")

</div>

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

Khalid.

Josh B. wrote in post #994831:

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

---

<div class="post-metadata">

**Author:** ![khalid\_j](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/53a042/32.png) [@khalid\_j](https://www.ruby-forum.com/u/khalid_j)\
**Post date:** [June 23, 2011, 1:00pm UTC](https://www.ruby-forum.com/t/synchronization-issue-with-multiple-usrps/206183/4 "2011-06-23T13:00:13Z")

</div>

Hi,

I was building an 8-channel system using N210s. I got a 10MHz/1PPS OCXO  
clock from jackson labs and applied it across all channels. The result  
is  
that all channels got phase-locked but still with a random phase offset  
between channel-to-channel. The bad thing is that this phase offset is  
random every time you tune or re-tune the system. The reason being, what  
I  
understood, that we are not distributing the same LO across all N210s  
but  
asking their freq synthesizers to PLL to a 10MHz freq reference. This is  
not  
the best way to achieve a phase coherent system anyway. The best thing  
would’a been to daisy-chain a single LO across all usrps but that’s not  
the  
case here.

So, now I am trying is to build my own calibration mechanism by  
injecting a  
known phase at each channel before acquiring the actual signals without  
re-tuning the system. I hope it will do the job. At least the first  
attempt  
was encouraging. HIH.

Khalid.

On Wed, Jun 22, 2011 at 5:38 PM, Scott Johnston
