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.
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