# USRP1 Clock drift

**URL:** <https://www.ruby-forum.com/t/usrp1-clock-drift/201418>\
**Category:** GNU Radio\
**Created:** [January 7, 2011, 12:02am UTC](https://www.ruby-forum.com/t/usrp1-clock-drift/201418 "2011-01-07T00:02:01Z")\
**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:** [January 7, 2011, 12:02am UTC](https://www.ruby-forum.com/t/usrp1-clock-drift/201418/1 "2011-01-07T00:02:01Z")

</div>

Hi Guys,

I ran Kalibrate against my pair of USRP1’s using GSM900 towers (around  
940MHz) and found my first unit to me 5kHz off and the second was 13kHz  
off.

Is this within limits for the built in oscillator? I have been using  
them to transmit P25 frames around 435Mhz and found that my commercial  
P25 radios will not decode anything coming from the second USRP. The  
first USRP works OK. I have swapped around all daughterboards between  
both USRPs and the only common factor is the second USRP motherboard so  
I am sure its due to the clock in that unit.

Perhaps clocktamer or a secondhand GPSDO is needed for my Tx  
applications.

Cheers,  
Matt

---

<div class="post-metadata">

**Author:** ![hazmatt](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/h/b2d939/32.png) [@hazmatt](https://www.ruby-forum.com/u/hazmatt)\
**Post date:** [January 7, 2011, 12:43am UTC](https://www.ruby-forum.com/t/usrp1-clock-drift/201418/2 "2011-01-07T00:43:24Z")

</div>

On Fri, 2011-01-07 at 10:01 +1100, Matt R. wrote:

> I am sure its due to the clock in that unit.

This is within spec. It doesn’t tend to drift that much so if you  
characterize how far it’s off it’ll stay reasonably constant (to a few  
ppm) unless temperature changes drastically.

> Perhaps clocktamer or a secondhand GPSDO is needed for my Tx applications.

You will need an oscillator with a ~64MHz output to run the USRP1. There  
is no 10MHz reference input on USRP1. I used a GPSDO and a homebrew PLL  
based around an Si570 VCXO to keep mine synchronized, but it wasn’t a  
quick hack. Unfortunately there don’t seem to be many 64MHz TCXOs in a  
reasonable form factor out there.

–n

---

<div class="post-metadata">

**Author:** ![hazmatt](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/h/b2d939/32.png) [@hazmatt](https://www.ruby-forum.com/u/hazmatt)\
**Post date:** [January 7, 2011, 4:15am UTC](https://www.ruby-forum.com/t/usrp1-clock-drift/201418/3 "2011-01-07T04:15:22Z")

</div>

Hi Matt;

Is it possible to include in your application a monitor which would  
receive a transmission which you could use as a reference in order to  
correct your transmitter’s local oscillator? It seems to me that this  
would be a better solution to your problem than modifying the hardware  
in order to inject an external clock.

On Fri, 7 Jan 2011, Matt R. wrote:

> I am sure its due to the clock in that unit.
> 
> Perhaps clocktamer or a secondhand GPSDO is needed for my Tx applications.
> 
> Cheers,  
> Matt

Cheers

–  
Peter F Bradshaw: [http://www.exadios.com](http://www.exadios.com) (public keys avaliable there).  
Personal site: [http://personal.exadios.com](http://personal.exadios.com)  
“I love truth, and the way the government still uses it occasionally to  
keep us guessing.” - Sam Kekovich.

---

<div class="post-metadata">

**Author:** ![hazmatt](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/h/b2d939/32.png) [@hazmatt](https://www.ruby-forum.com/u/hazmatt)\
**Post date:** [January 8, 2011, 9:29pm UTC](https://www.ruby-forum.com/t/usrp1-clock-drift/201418/4 "2011-01-08T21:29:04Z")

</div>

Hi Mike/Nick,

Thanks for your help, I tried offsetting the transmitter by a couple of  
kHz and it all came to life (isn’t software radio great like that!) The  
error of 13kHz was only at 940.2MHz, which is definitely within spec. As  
Mike explained this correlates to an error of about 6kHz @ 435MHz.

Seems that the ppm unit of measurement had caught me out - once I  
figured out that it is a _ratio_ and not a specific value everything  
suddenly became clear.

Cheers,  
Matt
