I have two USRP B100 and I am trying to sync them
for that I have connected them both to reference and 1pps from the same
the source is a rubidium standard source reference
it has a 10MHZ 1Vrms 50 ohm sine and 1pps outputs. I have tested it with
scope to see if its stable.
for my test I transmit from one USRP B100, and receive from the other
I configured both devices for:
clock source: external
time source: external
sync: unknown 1pps
tested the output with WX GUI FFT Sink on the Rx side
whenever I set the clock source to external on the receiver side,
of getting a carrier, I get a distorted signal: the I and Q are not
constant envelope, as they should be.
whenever I set the clock source for default, I get a carrier, but it is
shifted a few 100s of hertz from the wanted signal and it changes every
few 100s of hertz (it is not constant)
I am using the latest version of GNU Radio
I didn’t see any warning or error message when disconnecting the 10MHz
I did see an error message when I disconnected the 1pps ref.
is this a known problem? is this expected? if not, what am I doing
I am adding the grc files
here is the log (it seems fine, and look identical for Tx and Rx):
linux; GNU C++ version 4.6.3; Boost_104800; UHD_003.005.003-78-g49a4929b
I Checked the levels with the clock connected to the USRP ( and without)
The levels are fine ( about 600 mV rms on the scope)
additionally, I disconnected it from the load (USRP) to see if the level
changed. and they did (proving the cables are connected to a load).
the problem remains,
is there a command that could check if the USRP is locked to the
what is the best way to debug this and to find the root cause?
I am using the same clock reference to both b100 devices.
the clock reference is XL microwave model 500, it is rubidium based, and
has multiple outputs.
since I am connecting it to both B100s (the actual same clock reference)
was expecting that the Rx and Tx frequencies will be exactly the same.
I still got 570Hz difference.
when I did not invoke the tune request command, the Rx was distorted
Tx was fine, I tested it with a spectrum analyzer)
Define “exactly the same”. Even a Rb reference oscillator has some
imprecision in it, although not usually as high as 600ppb, unless the
tube is nearing the end of its life.
How did you measure the frequency offset? The measuring device has to
have a precision much better than the thing you’re trying to measure,
or your results will just be nonsense.
If you don’t use offset tuning (using tune_request with an LO offset),
then the DC anomaly will be right in the center of your passband. If
a narrowband carrier for testing, that DC offset will interfere with
OK, I discovered what was the problem.
it turns out I did not generate a carrier, but a just constant 0
of constant 0.7)
when generating a carrier, the Rx and Tx are perfectly synced
sorry for all the trouble, and thanks for the help
on the Rx side, I use uhd.tune_request(915000000,10e6)
then I down-sample and display a FFT
the amount of down-sampling is enough that I can see how much frequency
offset I get.
I am testing it with a carrier generated from a second B100, using
even if the reference had an accuracy problem. deriving the clock would
produce the same error for all devices connected to it, given the
signal is within spec
under the scope, the reference signal seems to be a perfect sine with an
rms within spec.
currently, for now, I will have to understand more what the tuning does,
since the freq offset I see is constant, I can live with it, for now.
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.