EttusResearch / uhd

The USRP™ Hardware Driver Repository
http://uhd.ettus.com
Other
1k stars 666 forks source link

Cannot perform rfnoc radio loopback on the same radio block on UHD 4.7 release #790

Closed tomwts closed 1 month ago

tomwts commented 1 month ago

Issue Description

I am a newbie on UHD RFnoc. I setup Ettus Research X310 with a RF sig gen signal output to Rx2 and a VSA connected to Tx/Rx output. As long as Rx2 input and Tx/Rx output are on a different radio block, the app worked fine. But when I tried to setup Rx and Tx on the same radio block. The app aborted with an error message:

[ERROR] [RFNOC::GRAPH::DETAIL] Cannot create route from device:1/sep:2 and device:1/sep:2, no route was found! Error: RuntimeError: Cannot create route from device:1/sep:2 and device:1/sep:2, no route was found!

Setup Details

Agilent signal generator connected to X310 RF2 port input. R&S VSA connected to X310 Tx/Rx port output.

Hardware: Ettus Research X310. FW version:6.1, FPGA version:39.2 Software: UHD rfnoc 4.7 O/S: Ubuntu 24.04

Expected Behavior

I expected rfnoc_radio_loopback would initialize properly even when the rx and rx radio block ID is the same. Instead, the app failed to initialized with an error.

Actual Behaviour

The example app failed with the following error msg:

[INFO] [UHD] linux; GNU C++ version 13.2.0; Boost_108300; UHD_4.7.0.0-0-ga5ed1872 [INFO] [X300] X300 initialization sequence... [INFO] [X300] Maximum frame size: 8000 bytes. [INFO] [X300] Radio 1x clock: 200 MHz Using RX radio 0/Radio#1, channel 0 Using TX radio 0/Radio#1, channel 0 [ERROR] [RFNOC::GRAPH::DETAIL] Cannot create route from device:1/sep:2 and device:1/sep:2, no route was found! Error: RuntimeError: Cannot create route from device:1/sep:2 and device:1/sep:2, no route was found!

Steps to reproduce the problem

Command line to reproduce the issue: ./rfnoc_radio_loopback --rx-freq=800000000 --tx-frequency=815000000 --rx-ant=RX2 --tx-ant=TX/RX --rx-bw=5000000 -tx-bw=5000000 --rx-gain=20 --tx-gain=3 --ref external --rx-blockid=0/Radio#1 --tx-blockid=0/Radio#1

Note: if I specified tx-blockid=0/Radio#0, the app started up properly and produced output signal on the TX/RX port as expected.

Additional Information