Discussion and technical support related to USRP, UHD, RFNoC
View all threadsHello UHD folks,
I’m trying to buffer all 4 channels tx/rx data on DRAM on X410. So my application does
I don’t find the correct API for step 2. The uhd::rfnoc::rfnoc_graph::disconnect() function takes std::string &streamer_id, however, I can’t find a public API that returns a streamer_id. The connect() function accepts uhd::tx_streamer::sptr and uhd::rx_streamer::sptr, I wonder if disconnect() should accept same argument types.
If I skip step 2, I get an error in step 3.
Regards,
Nan
I'm not sure but I seem to recall that the streamer ID could not be queried
but that it used a naming convention (something like "tx_streamer_1") that
you could guess and use to successfully disconnect the graph. Perhaps if
you log DEBUG or TRACE level messages (or inspect Ettus code), you can see
what the stream ID is. I know that this is not the right answer, but it
might get you by if the API is missing the needed functions to query the ID.
Rob
On Mon, Jan 26, 2026 at 5:52 PM Yang, Nan via USRP-users <
usrp-users@lists.ettus.com> wrote:
Hello UHD folks,
I’m trying to buffer all 4 channels tx/rx data on DRAM on X410. So my
application does
1. Connect tx_streamer to replay block and write samples to DRAM
2. Disconnect tx_streamer
3. Connect replay block to radio block
4. Do tx and rx
5. Disconnect radio blocks
6. Connect replay block to rx_streamer and read samples
I don’t find the correct API for step 2. The
uhd::rfnoc::rfnoc_graph::disconnect() function takes std::string
&streamer_id, however, I can’t find a public API that returns a
streamer_id. The connect() function accepts uhd::tx_streamer::sptr and
uhd::rx_streamer::sptr, I wonder if disconnect() should accept same
argument types.
If I skip step 2, I get an error in step 3.
Regards,
Nan
USRP-users mailing list -- usrp-users@lists.ettus.com
To unsubscribe send an email to usrp-users-leave@lists.ettus.com
Hi Rob,
Thank you for the suggestion. The ID is “TxStreamer#0”. I also found that disconnecting a streamer does not fully restore its status so I need to create new streamers every time. This works for me now. I opened an issuehttps://github.com/EttusResearch/uhd/issues/903 though.
Regards,
Nan
From: Rob Kossler rkossler@nd.edu
Sent: Tuesday, January 27, 2026 7:02 AM
To: Yang, Nan nan.yang@emerson.com
Cc: usrp-users@lists.ettus.com
Subject: [EXTERNAL] Re: [USRP-users] How to disconnect streamers on RFNoC graph
I'm not sure but I seem to recall that the streamer ID could not be queried but that it used a naming convention (something like "tx_streamer_1") that you could guess and use to successfully disconnect the graph. Perhaps if you log DEBUG or TRACE level messages (or inspect Ettus code), you can see what the stream ID is. I know that this is not the right answer, but it might get you by if the API is missing the needed functions to query the ID.
Rob
On Mon, Jan 26, 2026 at 5:52 PM Yang, Nan via USRP-users <usrp-users@lists.ettus.commailto:usrp-users@lists.ettus.com> wrote:
Hello UHD folks,
I’m trying to buffer all 4 channels tx/rx data on DRAM on X410. So my application does
I don’t find the correct API for step 2. The uhd::rfnoc::rfnoc_graph::disconnect() function takes std::string &streamer_id, however, I can’t find a public API that returns a streamer_id. The connect() function accepts uhd::tx_streamer::sptr and uhd::rx_streamer::sptr, I wonder if disconnect() should accept same argument types.
If I skip step 2, I get an error in step 3.
Regards,
Nan
USRP-users mailing list -- usrp-users@lists.ettus.commailto:usrp-users@lists.ettus.com
To unsubscribe send an email to usrp-users-leave@lists.ettus.commailto:usrp-users-leave@lists.ettus.com
Hi,
a short note that might also help: The Replay block has many input ports.
You could use one input port for the Tx Streamer, and a different one for
the radio.
Also, in your list of actions, I don't see a need to actually disconnect
the Tx Streamer. Sounds like you'd be fine just leaving it connected. I
find it helpful, when possible, to do all the connection setup first, then
call commit(), and then only do streaming stuff (but yes, there are
scenarios where that doesn't work and then disconnecting is totally fine).
As for disconnecting: When you destroy the streamer object, it will get
properly disconnected. That is typically the approach I would recommend if
you really need to disconnect streamers.
--M
On Thu, Jan 29, 2026 at 9:00 AM Yang, Nan via USRP-users <
usrp-users@lists.ettus.com> wrote:
Hi Rob,
Thank you for the suggestion. The ID is “TxStreamer#0”. I also found that
disconnecting a streamer does not fully restore its status so I need to
create new streamers every time. This works for me now. I opened an issue
https://github.com/EttusResearch/uhd/issues/903 though.
Regards,
Nan
From: Rob Kossler rkossler@nd.edu
Sent: Tuesday, January 27, 2026 7:02 AM
To: Yang, Nan nan.yang@emerson.com
Cc: usrp-users@lists.ettus.com
Subject: [EXTERNAL] Re: [USRP-users] How to disconnect streamers on
RFNoC graph
I'm not sure but I seem to recall that the streamer ID could not be
queried but that it used a naming convention (something like
"tx_streamer_1") that you could guess and use to successfully disconnect
the graph. Perhaps if you log DEBUG or TRACE level messages (or inspect
Ettus code), you can see what the stream ID is. I know that this is not
the right answer, but it might get you by if the API is missing the needed
functions to query the ID.
Rob
On Mon, Jan 26, 2026 at 5:52 PM Yang, Nan via USRP-users <
usrp-users@lists.ettus.com> wrote:
Hello UHD folks,
I’m trying to buffer all 4 channels tx/rx data on DRAM on X410. So my
application does
1. Connect tx_streamer to replay block and write samples to DRAM
2. Disconnect tx_streamer
3. Connect replay block to radio block
4. Do tx and rx
5. Disconnect radio blocks
6. Connect replay block to rx_streamer and read samples
I don’t find the correct API for step 2. The
uhd::rfnoc::rfnoc_graph::disconnect() function takes std::string
&streamer_id, however, I can’t find a public API that returns a
streamer_id. The connect() function accepts uhd::tx_streamer::sptr and
uhd::rx_streamer::sptr, I wonder if disconnect() should accept same
argument types.
If I skip step 2, I get an error in step 3.
Regards,
Nan
USRP-users mailing list -- usrp-users@lists.ettus.com
To unsubscribe send an email to usrp-users-leave@lists.ettus.com
USRP-users mailing list -- usrp-users@lists.ettus.com
To unsubscribe send an email to usrp-users-leave@lists.ettus.com