On 2022-04-05 22:18, Manuel Caldas wrote:
Hi!
I'm a newbie to gnuradio, and am designing a simple radiometer with an
Ettus USRP x300 SDR, which has a board mounted GPSDO (and antenna, of
course).
What I want now is to get the (GPS) timestamp(s) of my data stream, so
that I can match datapoints to correspondig UTC (gps)time.
So what I have done is I've set "Mbx Time Source" in the USRP Source
Block to "O/B GPSDO". I understand that I'm missing a step, possibly
in the File Meta Sink block, so gps time is included in the data
stream and contained in the data header (possibly in "rx_time")? Btw,
what exactly is this rx_time (only info I've found is "format from
UHD")? Is it expressed in days, hours? Referred to what date?
Thanks in advance!
/Manuel
You should probably look at the sync_to_gps UHD example.
But the "rx_time" tag is a PMT with
uint64 seconds
double fractions_of_second
https://www.gnuradio.org/doc/doxygen-3.7.8/page_metadata.html
My recollection is that if you have a B2xx with a built-in GPSDO, UHD
will set the time-of-day on the device at startup from GPS data. And
the time returned in the tag
will basically be GPS time coerced into UTC with the standard Unix Epoch.
But if the GPSDO hasn't locked when you create a session, UHD cannot
determine the valid time to stuff into the time registers. Which is
what the "sync_to_gps" example
is all about.
The "clock source" is about where it gets its 10Mhz reference clock, NOT
about "time of day". In truth, the on-board GPSDO is *primarily* about
providing a stable and precise
10Mhz reference and precise 1PPS pulse, and the GPS time-of-day as a
bit of an "also ran". There's not really good support within GRC for
doing the kind of "dance"
that "sync_to_gps" does.
It *could* be that with the new "code snippets" one could do what
"sync_to_gps" does, but I haven't really investigated, TBH.
If it were my problem, I'd bring the B2xx up, let the GPS "warm up" for
an hour, then run "sync_to_gps". Then whenever you run your
flow-graph, make sure
that "sync" is set to "none" (you don't want the program touching the
clock on the radio), and use "O/B GPSDO" for both the reference clock
and 1PPS options.