I went back through the loopback tricks you sent and found that my at_reset 
parameter on the SR_RX_CTRL_OUTPUT_FORMAT settings register had not been 
switched to 0, so I have corrected that. and timestamping should now be 

I have been using rfnoc_rx_to_file as reference for making my own C++ example 
and it seems that the 'uhd::device3' class does not have the 'set_rx_streamer' 
function. As a result, I have been calling the function using the 
'uhd::rfnoc::radio_ctrl' class to set the streamer and issue the stream command 

'radio_ctrl->set_rx_streamer(true, radio_chan)'

'radio_ctrl->set_tx_streamer(true, radio_chan)'


Is that fine for activating and issuing the streamers or should I 'make()' my 
device using the 'uhd::usrp::multi_usrp' class instead?



From: Nick Foster <>
Sent: Friday, February 23, 2018 2:16:19 PM
To: Adam Kurisko
Subject: Re: [USRP-users] [E310 RFNoC] TX RX Loopback bypassing the ARM 

Have you verified timestamps are disabled? And have you issued a stream command 
to the RX as well as set_rx_streamer()? To be clear, I haven't tried E310 
loopback with any UHD version later than the date of the article (4/22/17), but 
I don't believe significant changes have happened which would affect loopback 
since then (maybe someone from Ettus could chime in).

I don't think you'll be able to run at full DSP clock rate -- set the device to 
stream at (say) 10Msps on RX and TX first and then increase it from there.

send() and recv() are strictly functions to submit and receive data from the 
ARM (PS)  to the FPGA (PL) and vice versa. They are not necessary for loopback.


On Fri, Feb 23, 2018 at 10:26 AM Adam Kurisko 
<<>> wrote:

Hey Nick,

Thanks for the quick reply.

I have already disabled time stamping and initiated the streamers and it 
compiles and runs on my board, however when I run it the LEDs on the RX2 and 
TRX frontend do not light up, so I am lead to believe that it actually might 
not be streaming.

 Just for clarification, Do the 'uhd::tx_streamer::send()' and 
'uhd::rx_streamer::recv()' functions route the signal to buffers on the ARM 
host or the fpga? I ask that because those functions seem to be the only way 
that I can get those LEDs on the frontend to light up signifying that the 
device is actually streaming.



From: Nick Foster <<>>
Sent: Friday, February 23, 2018 1:01:42 PM
To: Adam Kurisko
Subject: Re: [USRP-users] [E310 RFNoC] TX RX Loopback bypassing the ARM 

1. yes
2. RFNoC

I refer back to a post I wrote detailing loopback in the FPGA. It doesn't work 
"out of the box" but can be made to with minor modification.

If you haven't used RFNoC before you should probably take on the Getting 
Started guide first:


On Fri, Feb 23, 2018 at 9:28 AM Adam Kurisko via USRP-users 
<<>> wrote:

Hello all,

I am trying to utilize the full performance of the E310 and it seems like the 
Arm processor is the bottleneck in this scenario. I know the AD9361 is wired 
straight into the fpga, so it would make sense that a strictly bare metal 
loopback is possible.

Is it possible to stream data straight from RX to TX without sending or 
receiving from the host ARM processor? And if so, how would I do this?

Please let me know.

Thank you,


USRP-users mailing list<>
USRP-users mailing list

Reply via email to