[USRP-users] Synchronised Recording across different systems (OpenMPI)

Carel Combrink carel.combrink at gmail.com
Wed Dec 10 11:15:27 EST 2014


I am trying to synchronise recording over different systems from different
B210 devices. I have connected and set up the B210 devices to different
NVIDIA Jetson TK1 boards.

So to synchronise the recording I am trying to use OpenMPI, which I have
set up and is working in principle.

When I run the application distributed using OpenMPI I get the following
error when starting to stream:

My code flows as follow (extracts of relevant parts):
usrp1 = uhd::usrp::multi_usrp::make(deviceArgs);
/* ... more setup like freq and gain */
hd::rx_streamer::sptr rxStream = usrp1->get_rx_stream(streamArgs);

and then in a different thread:
streamCommand.stream_now = false;
streamCommand.time_spec = uhd::time_spec_t(10);
rxStream->recv(buffPtrs, buffers.numberSamples, md, 10.1);

If I print out the time of the metadata it is: 15.0048. This is almost
always 5 seconds after the stream command that I set up.
After the initial error I get ERROR_CODE_TIMEOUT without ever receiving

As mentioned I am using OpenMPI, but when I run the same code on my device
(TK1, not through OpenMPI but same executable) it goes through fine and I
record perfectly.

Are there anything that I am missing that would cause this to happen?

PS: I am only using basic OpenMPI to start the apps remotely and to
synchronise at some points, like before issuing the stream command. There
are no synchronising between the apps after issuing the stream command. I
have even removed all OpenMPI code from the application but the same
problem exists.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ettus.com/pipermail/usrp-users_lists.ettus.com/attachments/20141210/77eaa047/attachment-0002.html>

More information about the USRP-users mailing list