[USRP-users] API change in UHD 3.9.1 for MIMO recv?

Martin Braun martin.braun at ettus.com
Thu Oct 1 14:59:29 EDT 2015


the problem is that VITA times are unsynched. This was indeed something
that changed in 3.9.0, probably when we updated the RFIC interface. The
fact that it worked before (in pre-3.9 code) was more of a coincidence
than a design decision, though.

If you set VITA times at initialization, your code works fine (and yes,
it also fails on my end without the initialization). This is the changes
I had to do:

 68     //init board and set frequencies
 69     auto rfBoardPtr = uhd::usrp::multi_usrp::make(
uhd::device_addr_t( "" ) );
 70     rfBoardPtr->set_clock_source( "internal" );
 71     rfBoardPtr->set_master_clock_rate( samplingRate_Hz * 2.0 );
 72     rfBoardPtr->set_rx_rate( samplingRate_Hz );
 73     rfBoardPtr->set_rx_freq( uhd::tune_request_t( carrierFreq_Hz ) );
 74     rfBoardPtr->set_time_unknown_pps(0.0);

(Only the last line was changed, rest included for reference).

Setting vita times needs be done at init, and when the master clock rate
is changed.
Sorry for the inconvenience, and we may come up with a cleaner way of
fixing this in 3.10. I hope this'll fix your issues.


On 01.10.2015 11:05, Dario Fertonani via USRP-users wrote:
> I'm upgrading to UHD 3.9.1 now that the B210 CODEC loopback bug is under
> control.
> Did anything change in the API that initializes a two-antenna receive
> stream? All our MIMO code stopped working.
> I'm attaching a toy C++ code that does nothing but streaming and writing
> if errors occurred while streaming. This code has worked since the 3.8.0
> days and now all of a sudden doesn't when the stream has two antennas.
> It dies for ERROR_CODE_LATE_COMMAND even with a full second of margin
> (attached version). It I raise that margin to 5 seconds, then it dies
> for ERROR_CODE_TIMEOUT even if the timeout is raised to something
> unrealistic like 10 seconds.
> For anyone that can help, the compile/run instructions are in the first
> few lines of the attached code. This version works on all our PCs that
> still have UHD 3.8.5:
>     $ ./rxTest 739 4 2 1000 256
> while it doesn't on the one that I just updated to UHD 3.9.1. On this
> one though the single antenna version
>     $ ./rxTest 739 4 1 1000 256
> works.
> I'm suspecting a subtle change in UHD. Maybe an init command that now is
> no longer optional? 
> Thanks,
> Dario
> _______________________________________________
> USRP-users mailing list
> USRP-users at lists.ettus.com
> http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com

More information about the USRP-users mailing list