Discussion and technical support related to USRP, UHD, RFNoC
View all threadsHi,
I recently received and starting using an X410. I noticed that my custom
software does not work when using the Replay block for playout in the
transmit path (Replay=>DUC=>Radio). This software works with all of our
other USRPs including N310, X310, and N321. I don't get any error
messages, but the transmit light simply does not turn on and there is no RF
coming out.
I then tried rfnoc_replay_samples_from_file (see command line and terminal
output below). This also does not show any error message but the transmit
light does not turn on and there is no RF.
I then tried tx_samples_from_file (see command line and terminal output
below). This produces an error message "Cannot forward action tx_event from
0/Radio#0:INPUT_EDGE:0, no neighbour found!".
Note that I am able to get RF output (and Tx light on) if I use the
multi_usrp object (which sends the Tx samples real-time across the Ethernet
link). I am also able to get RF output (and Tx light on) if I use the
rf_siggen_gui utility.
I'm wondering if anyone can confirm that they are using the Replay block as
a playout memory on the X410. Any ideas what may be happening?
Rob
Command line and terminal output from "rfnoc_samples_from_file"
chisum-gnb@chisumgnb-Precision-5860-Tower:~$ rfnoc_replay_samples_from_file
--freq 5800e6 --rate 30.72e6 --gain 50 --file
~/Documents/waveforms/mtone_100_0p8_1.bin
Creating the RFNoC graph with args: ...
[INFO] [UHD] linux; GNU C++ version 13.3.0; Boost_108300;
UHD_4.8.0.0-0ubuntu1~noble1
[INFO] [MPMD] Initializing 1 device(s) in parallel with args:
mgmt_addr=192.168.20.2,type=x4xx,product=x410,serial=3498DB3,name=ni-x4xx-3498DB3,fpga=UC_200,claimed=False,addr=192.168.20.2
[INFO] [MPM.PeriphManager] init() called with device args
`fpga=UC_200,mgmt_addr=192.168.20.2,name=ni-x4xx-3498DB3,product=x410,clock_source=internal,time_source=internal,initializing=True'.
Using Radio Block: 0/Radio#0, channel 0
Using Replay Block: 0/Replay#0, channel 0
Using DUC Block: 0/DUC#0, channel 0
[WARNING] [0/Radio#0] Attempting to set tick rate to 0. Skipping.
Active connections:
Requesting TX Rate: 30.720000 Msps...
DUC block found.
Interpolation value is 8
Actual TX Rate: 30.720000 Msps...
Requesting TX Gain: 50.000000 dB...
Actual TX Gain: 50.000000 dB...
Replay file size: 2000 bytes (250 qwords, 500 samples)
Record base address: 0x0
Record buffer size: 2000 bytes
Record fullness: 0 bytes
Emptying record buffer...
Record fullness: 0 bytes
Sending data to be recorded...
Waiting for recording to complete...
Record fullness: 2000 bytes
Issuing replay command for 500 samps in continuous mode...
Replaying data (Press Ctrl+C to stop)...
Command line and terminal output using "tx_samples_from_file"
chisum-gnb@chisumgnb-Precision-5860-Tower:~$ tx_samples_from_file --freq
5800e6 --rate 30.72e6 --gain 50 --file
~/Documents/waveforms/mtone_100_0p8_1.bin
Creating the usrp device with: ...
[INFO] [UHD] linux; GNU C++ version 13.3.0; Boost_108300;
UHD_4.8.0.0-0ubuntu1~noble1
[INFO] [MPMD] Initializing 1 device(s) in parallel with args:
mgmt_addr=192.168.20.2,type=x4xx,product=x410,serial=3498DB3,name=ni-x4xx-3498DB3,fpga=UC_200,claimed=False,addr=192.168.20.2
[INFO] [MPM.PeriphManager] init() called with device args
`fpga=UC_200,mgmt_addr=192.168.20.2,name=ni-x4xx-3498DB3,product=x410,clock_source=internal,time_source=internal,initializing=True'.
Using Device: Single USRP:
Device: X400-Series Device
Mboard 0: x410
RX Channel: 0
RX DSP: 0
RX Dboard: A
RX Subdev: 0
RX Channel: 1
RX DSP: 1
RX Dboard: A
RX Subdev: 1
RX Channel: 2
RX DSP: 2
RX Dboard: B
RX Subdev: 0
RX Channel: 3
RX DSP: 3
RX Dboard: B
RX Subdev: 1
TX Channel: 0
TX DSP: 0
TX Dboard: A
TX Subdev: 0
TX Channel: 1
TX DSP: 1
TX Dboard: A
TX Subdev: 1
TX Channel: 2
TX DSP: 2
TX Dboard: B
TX Subdev: 0
TX Channel: 3
TX DSP: 3
TX Dboard: B
TX Subdev: 1
Setting TX Rate: 30.720000 Msps...
Actual TX Rate: 30.720000 Msps...
Setting TX Freq: 5800.000000 MHz...
Setting TX LO Offset: 0.000000 MHz...
Actual TX Freq: 5800.000000 MHz...
Setting TX Gain: 50.000000 dB...
Actual TX Gain: 50.000000 dB...
Checking TX: all_los: locked ...
[WARNING] [0/Radio#0] Attempting to set tick rate to 0. Skipping.
Done!
[WARNING] [RFNOC::GRAPH::DETAIL] Cannot forward action tx_event from
0/Radio#0:INPUT_EDGE:0, no neighbour found!
chisum-gnb@chisumgnb-Precision-5860-Tower:~$
Hi Rob,
I haven’t seen this issue before; however, I’m not using the X410 too often. Is it the same effect with a different FPGA image? You’re using UC_200, we mostly use X4_200 here.
A good check of the replay block in TX direction is the tx_waveforms.py example. It has a dram switch, so you can easily switch back and forth.
/Martin
From: Rob Kossler via USRP-users usrp-users@lists.ettus.com
Sent: Tuesday, August 5, 2025 4:22 PM
To: usrp-users usrp-users@lists.ettus.com
Subject: [EXTERNAL] [USRP-users] Using Replay block on X410
Hi,
I recently received and starting using an X410. I noticed that my custom software does not work when using the Replay block for playout in the transmit path (Replay=>DUC=>Radio). This software works with all of our other USRPs including N310, X310, and N321. I don't get any error messages, but the transmit light simply does not turn on and there is no RF coming out.
I then tried rfnoc_replay_samples_from_file (see command line and terminal output below). This also does not show any error message but the transmit light does not turn on and there is no RF.
I then tried tx_samples_from_file (see command line and terminal output below). This produces an error message "Cannot forward action tx_event from 0/Radio#0:INPUT_EDGE:0, no neighbour found!".
Note that I am able to get RF output (and Tx light on) if I use the multi_usrp object (which sends the Tx samples real-time across the Ethernet link). I am also able to get RF output (and Tx light on) if I use the rf_siggen_gui utility.
I'm wondering if anyone can confirm that they are using the Replay block as a playout memory on the X410. Any ideas what may be happening?
Rob
Command line and terminal output from "rfnoc_samples_from_file"
chisum-gnb@chisumgnb-Precision-5860-Tower:~$ rfnoc_replay_samples_from_file --freq 5800e6 --rate 30.72e6 --gain 50 --file ~/Documents/waveforms/mtone_100_0p8_1.bin
Creating the RFNoC graph with args: ...
[INFO] [UHD] linux; GNU C++ version 13.3.0; Boost_108300; UHD_4.8.0.0-0ubuntu1~noble1
[INFO] [MPMD] Initializing 1 device(s) in parallel with args: mgmt_addr=192.168.20.2,type=x4xx,product=x410,serial=3498DB3,name=ni-x4xx-3498DB3,fpga=UC_200,claimed=False,addr=192.168.20.2
[INFO] [MPM.PeriphManager] init() called with device args `fpga=UC_200,mgmt_addr=192.168.20.2,name=ni-x4xx-3498DB3,product=x410,clock_source=internal,time_source=internal,initializing=True'.
Using Radio Block: 0/Radio#0, channel 0
Using Replay Block: 0/Replay#0, channel 0
Using DUC Block: 0/DUC#0, channel 0
[WARNING] [0/Radio#0] Attempting to set tick rate to 0. Skipping.
Active connections:
Requesting TX Rate: 30.720000 Msps...
DUC block found.
Interpolation value is 8
Actual TX Rate: 30.720000 Msps...
Requesting TX Gain: 50.000000 dB...
Actual TX Gain: 50.000000 dB...
Replay file size: 2000 bytes (250 qwords, 500 samples)
Record base address: 0x0
Record buffer size: 2000 bytes
Record fullness: 0 bytes
Emptying record buffer...
Record fullness: 0 bytes
Sending data to be recorded...
Waiting for recording to complete...
Record fullness: 2000 bytes
Issuing replay command for 500 samps in continuous mode...
Replaying data (Press Ctrl+C to stop)...
Command line and terminal output using "tx_samples_from_file"
chisum-gnb@chisumgnb-Precision-5860-Tower:~$ tx_samples_from_file --freq 5800e6 --rate 30.72e6 --gain 50 --file ~/Documents/waveforms/mtone_100_0p8_1.bin
Creating the usrp device with: ...
[INFO] [UHD] linux; GNU C++ version 13.3.0; Boost_108300; UHD_4.8.0.0-0ubuntu1~noble1
[INFO] [MPMD] Initializing 1 device(s) in parallel with args: mgmt_addr=192.168.20.2,type=x4xx,product=x410,serial=3498DB3,name=ni-x4xx-3498DB3,fpga=UC_200,claimed=False,addr=192.168.20.2
[INFO] [MPM.PeriphManager] init() called with device args `fpga=UC_200,mgmt_addr=192.168.20.2,name=ni-x4xx-3498DB3,product=x410,clock_source=internal,time_source=internal,initializing=True'.
Using Device: Single USRP:
Device: X400-Series Device
Mboard 0: x410
RX Channel: 0
RX DSP: 0
RX Dboard: A
RX Subdev: 0
RX Channel: 1
RX DSP: 1
RX Dboard: A
RX Subdev: 1
RX Channel: 2
RX DSP: 2
RX Dboard: B
RX Subdev: 0
RX Channel: 3
RX DSP: 3
RX Dboard: B
RX Subdev: 1
TX Channel: 0
TX DSP: 0
TX Dboard: A
TX Subdev: 0
TX Channel: 1
TX DSP: 1
TX Dboard: A
TX Subdev: 1
TX Channel: 2
TX DSP: 2
TX Dboard: B
TX Subdev: 0
TX Channel: 3
TX DSP: 3
TX Dboard: B
TX Subdev: 1
Setting TX Rate: 30.720000 Msps...
Actual TX Rate: 30.720000 Msps...
Setting TX Freq: 5800.000000 MHz...
Setting TX LO Offset: 0.000000 MHz...
Actual TX Freq: 5800.000000 MHz...
Setting TX Gain: 50.000000 dB...
Actual TX Gain: 50.000000 dB...
Checking TX: all_los: locked ...
[WARNING] [0/Radio#0] Attempting to set tick rate to 0. Skipping.
Done!
[WARNING] [RFNOC::GRAPH::DETAIL] Cannot forward action tx_event from 0/Radio#0:INPUT_EDGE:0, no neighbour found!
chisum-gnb@chisumgnb-Precision-5860-Tower:~$