usrp-users@lists.ettus.com

Discussion and technical support related to USRP, UHD, RFNoC

View all threads

Using Replay block on X410

RK
Rob Kossler
Tue, Aug 5, 2025 2:22 PM

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:

  • 0/DUC#0:0==>0/Radio#0:0
  • 0/Replay#0:0-->0/DUC#0:0
  • TxStreamer#0:0-->0/Replay#0:0
    Requesting TX Freq: 5800.000000 MHz...
    TX Freq at Radio: 5800.000000 MHz...

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, 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: * 0/DUC#0:0==>0/Radio#0:0 * 0/Replay#0:0-->0/DUC#0:0 * TxStreamer#0:0-->0/Replay#0:0 Requesting TX Freq: 5800.000000 MHz... TX Freq at Radio: 5800.000000 MHz... 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:~$
AM
Anderseck, Martin
Mon, Aug 11, 2025 8:40 AM

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:

  • 0/DUC#0:0==>0/Radio#0:0
  • 0/Replay#0:0-->0/DUC#0:0
  • TxStreamer#0:0-->0/Replay#0:0
    Requesting TX Freq: 5800.000000 MHz...
    TX Freq at Radio: 5800.000000 MHz...

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: * 0/DUC#0:0==>0/Radio#0:0 * 0/Replay#0:0-->0/DUC#0:0 * TxStreamer#0:0-->0/Replay#0:0 Requesting TX Freq: 5800.000000 MHz... TX Freq at Radio: 5800.000000 MHz... 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:~$