Need help: How to extract timestamps of data for UHD mimo source block?

Hi everyone,

I set up 4 USRP2 boards for MIMO receiver system for array antennas, and
use
the PPS signal to synchronise them. I wish to collect the data from the
boards as well as the associated timestamps for the four boards.

Could someone teach me how to read the time stamps from a UHD mimo
source
block? Do I need to modify the block in C++ or Python scripts?

Thanks so much for every help and suggestions.:clap:

Best regards,
Hongliang

View this message in context:
http://old.nabble.com/Need-help%3A-How-to-extract-timestamps-of-data-for-UHD-mimo-source-block--tp29886484p29886484.html
Sent from the GnuRadio mailing list archive at Nabble.com.

On 10/06/2010 04:24 AM, Hongliang Zhang wrote:

Hi everyone,

I set up 4 USRP2 boards for MIMO receiver system for array antennas, and use
the PPS signal to synchronise them. I wish to collect the data from the
boards as well as the associated timestamps for the four boards.

Could someone teach me how to read the time stamps from a UHD mimo source
block? Do I need to modify the block in C++ or Python scripts?

The timestamps are inside the metadata, they are discarded in the work
function:
http://gnuradio.org/cgit/gnuradio.git/tree/gr-uhd/lib/uhd_mimo_source.cc?h=next#n127

You will need to modify the mimo source c++ and find a place to store
the timestamps, or write a c++ app that calls into the UHD mimo_usrp
interface directly.

-Josh

Hi Josh,

Thanks so much for your reply.

I have some questions about the metadata.

1). I read the codes in the work function. The metadata is defined by:
uhd::rx_metadata_t metadata;

Does "uhd::rx_metadata_t" define the data type or give values to

metadata? And in which C++ file may I find that the
“uhd::rx_metadata_t” is
created ?

2). Is metadata a scaler or vector? I use 4 USRP2 boards for MIMO
receiver
system. Does metadata contain 4 groups of timestamps for each 4 USRP2
boards
or just 1 group of timestamps for the whole synchronised data?

3). When I use the UHD MIMO Source block, GNU Radio Companion shows the
following sentences:

Current recv sock buff size: 50000000 bytes
Current recv sock buff size: 50000000 bytes
Current recv sock buff size: 50000000 bytes
Current recv sock buff size: 50000000 bytes
Using: Flex 2400 MIMO B RX (0x0027)
Using: Flex 2400 MIMO B TX (0x002b)
Using: Flex 2400 MIMO B RX (0x0027)
Using: Flex 2400 MIMO B TX (0x002b)
Using: Flex 2400 MIMO B RX (0x0027)
Using: Flex 2400 MIMO B TX (0x002b)
Using: Flex 2400 MIMO B RX (0x0027)
Using: Flex 2400 MIMO B TX (0x002b)
RX samples per packet: 362
TX samples per packet: 363
Recv pirate num frames: 33967
Set time with unknown pps edge:
1) set times next pps (race condition)
2) catch seconds rollover at pps edge
3) set times next pps (synchronously)
Time was reset successfully on board 1 relative to board 0
Time was reset successfully on board 2 relative to board 0
Time was reset successfully on board 3 relative to board 0

Do they mean that 4 boards are synchronised and have the same
timestamps? In
which C++ script may I find this sentence :" Time was reset successfully
on
board 1 relative to board 0" ?

Many thanks in advance.

Best wishes,
Hongliang

Josh B.-2 wrote:

boards as well as the associated timestamps for the four boards.
the timestamps, or write a c++ app that calls into the UHD mimo_usrp
Discuss-gnuradio mailing list
[email protected]
Discuss-gnuradio Info Page

–
View this message in context:
http://old.nabble.com/Need-help%3A-How-to-extract-timestamps-of-data-for-UHD-mimo-source-block--tp29886484p29908883.html
Sent from the GnuRadio mailing list archive at Nabble.com.

1). I read the codes in the work function. The metadata is defined by:
uhd::rx_metadata_t metadata;

 Does "uhd::rx_metadata_t" define the data type or give values to

metadata? And in which C++ file may I find that the “uhd::rx_metadata_t” is
created ?

http://www.ettus.com/uhd_docs/doxygen/html/structuhd_1_1rx__metadata__t.html

2). Is metadata a scaler or vector? I use 4 USRP2 boards for MIMO receiver
system. Does metadata contain 4 groups of timestamps for each 4 USRP2 boards
or just 1 group of timestamps for the whole synchronised data?

“scalar” that is 1 metadata struct for all N aligned channels.

Using: Flex 2400 MIMO B TX (0x002b)
    3) set times next pps (synchronously)
Time was reset successfully on board 1 relative to board 0
Time was reset successfully on board 2 relative to board 0
Time was reset successfully on board 3 relative to board 0

Do they mean that 4 boards are synchronised and have the same timestamps? In
which C++ script may I find this sentence :" Time was reset successfully on
board 1 relative to board 0" ?

Yes, it means that all N boards have the same time in their time
registers. The code here:

http://ettus-apps.sourcerepo.com/redmine/ettus/projects/uhd/repository/revisions/master/entry/host/lib/usrp/mimo_usrp.cpp#L116

I cannot say where “Time was reset” is in the code, I am surprised to
see those last 3 lines.

-Josh