UHD: Sink and source synchronization

Hi all,

Right now I’m implementing tx and rx on the same device (USRP b210), and
I’m trying to synchronize the two in order to determine the exact moment
when a message is sent by the Tx. The purpose of this synchronization is
add an idle state for tx right after the “sending state”, so the Rx part
can “hear” the channel and determine if there are no active
at the same time, that could lead to interference.

I used first the gettimeofday function along with the uhd::time_spec_t,
I have been told that this is a kind of “system timer”, and that could
be 100% reliable as a counter for the USRP’s. The idea now is use the
rx_time tag that comes at the start of every reception, but so far I
been able to generate the idle state just before the sensing state, and
believe that I’m, so to say, interfering myself.

Now I was thinking on trying to extract a so-called tx_time tag not
beforehand but within the UHD block (as near to the usrp antenna as
possible), that would tell me the time when the signal is going to be
For that I would go into modifying the uhd blocks. Before doing that, I
would like to hear some ideas of synchronization or some feedback from
mailing list. It would be really helpful if someone could lead into a
decent way than modifying the main blocks.

Thank you in advance.

Best Regards,

Nicolas C.


the tx_time tag is generated by the device, not by gr-uhd. So as a time
base, this should serve your purpose – unless I misunderstood what
you’re trying to do.