usrp-users@lists.ettus.com

Discussion and technical support related to USRP, UHD, RFNoC

View all threads

Re: Overflows when recording samples with the X410 stand-alone

MB
Martin Braun
Mon, Jul 21, 2025 10:03 AM

Hi Jonas,

the purpose of the onboard CPU (sometimes also called APU) is for
configuration and management. A great use case is to launch UHD
applications that do not require high rates of streaming, e.g., because
they do processing inside the FPGA (using RFNoC).

Note that correlation, FFT, and turbo decoding are very compute-intensive
tasks to start with and would require a pretty beefy machine anyway. But
correlation and FFT are also good tasks to offload onto an FPGA, and the
X410 even has a hardened FEC unit (which we haven't, however, exposed in
RFNoC ourselves). FFT is something we have a block for.

--M

On Mon, Jul 21, 2025 at 10:07 AM von Beöczy, Jonas <
j.von-beoeczy@tu-braunschweig.de> wrote:

Dear Martin,

thank you very much for your prompt response.

I wanted to clarify that recording IQ samples is just the initial step to
determine if I can extract some data. My ultimate goal is to perform
further signal processing on the processor, including tasks like FFT,
correlation, and turbo decoding.

If I understand correctly, it seems that these advanced processing tasks
may not be feasible on the processor. Could you provide some insights into
the use cases for the stand-alone "mode"? This would help me better
understand the limitations of the CPU.

I appreciate your assistance and look forward to your guidance.

Many thanks and best regards, :)
Jonas


Von: Martin Braun martin.braun@ettus.com
Gesendet: Montag, 21. Juli 2025 08:40:03
Cc: usrp-users@lists.ettus.com
Betreff: [USRP-users] Re: Overflows when recording samples with the
X410 stand-alone

Hi Jonas,

the onboard CPU (ARM64) is not for high loads, and like you suspect, is
not powerful enough to handle high loads by itself.

If you just want to capture samples at 15.36Msps, you can buffer them in
the onboard DRAM, of which you have 4 GiB in the XG_200 image, which is >
60s of streaming data if my math is correct. We have an example for how to
do that, it used to be called replay_capture.py, and was recently renamed
to rfnoc_rx_replay_samples_to_file.py (in host/examples/python).

--M

On Mon, Jul 21, 2025 at 8:37 AM von Beöczy, Jonas <
j.von-beoeczy@tu-braunschweig.de> wrote:

Dear all,

I cross-compiled a small C++ application that records some IQ samples
and runs stand-alone on the X410.
I want to use a sampling rate from 7.68e6 up to 15.36e6 samples per
second. The IQ samples are written into the /run directory.
Unfortunately I often get overflows, so that the system is not running
stable. The amount of overflows increases if I increase the sampling rate.

I also see overflows, when I run the example benchmark, e. g. like this:
/usr/lib/uhd/examples/benchmark_rate --rx_rate 15.36e6 --rx_delay 2
--priority high --rx_spb 64

I tried to play around with rx_spb from 64 to 4096, since I thought that
the buffer size would make a difference. But they all showed the same
behavior (sometimes overflows, sometimes not).

Within htop I cannot see any other CPU consuming services.

I was wondering if the processor is to weak to run stand-alone at these
data rates. Since I also wanted to run additional decoding on low
Modulation and Coding schemes on the processor this might be a problem for
me.

Could you please give me some information if the x410 should be able to
run the benchmark at such a sampling rate stand-alone?
For that specific case I unfortunately cannot find and results.

Many thanks again and best regards!
Jonas


USRP-users mailing list -- usrp-users@lists.ettus.com
To unsubscribe send an email to usrp-users-leave@lists.ettus.com

Hi Jonas, the purpose of the onboard CPU (sometimes also called APU) is for configuration and management. A great use case is to launch UHD applications that do not require high rates of streaming, e.g., because they do processing inside the FPGA (using RFNoC). Note that correlation, FFT, and turbo decoding are very compute-intensive tasks to start with and would require a pretty beefy machine anyway. But correlation and FFT are also good tasks to offload onto an FPGA, and the X410 even has a hardened FEC unit (which we haven't, however, exposed in RFNoC ourselves). FFT is something we have a block for. --M On Mon, Jul 21, 2025 at 10:07 AM von Beöczy, Jonas < j.von-beoeczy@tu-braunschweig.de> wrote: > Dear Martin, > > thank you very much for your prompt response. > > I wanted to clarify that recording IQ samples is just the initial step to > determine if I can extract some data. My ultimate goal is to perform > further signal processing on the processor, including tasks like FFT, > correlation, and turbo decoding. > > If I understand correctly, it seems that these advanced processing tasks > may not be feasible on the processor. Could you provide some insights into > the use cases for the stand-alone "mode"? This would help me better > understand the limitations of the CPU. > > I appreciate your assistance and look forward to your guidance. > > Many thanks and best regards, :) > Jonas > > ------------------------------ > *Von:* Martin Braun <martin.braun@ettus.com> > *Gesendet:* Montag, 21. Juli 2025 08:40:03 > *Cc:* usrp-users@lists.ettus.com > *Betreff:* [USRP-users] Re: Overflows when recording samples with the > X410 stand-alone > > Hi Jonas, > > the onboard CPU (ARM64) is not for high loads, and like you suspect, is > not powerful enough to handle high loads by itself. > > If you just want to capture samples at 15.36Msps, you can buffer them in > the onboard DRAM, of which you have 4 GiB in the XG_200 image, which is > > 60s of streaming data if my math is correct. We have an example for how to > do that, it used to be called replay_capture.py, and was recently renamed > to rfnoc_rx_replay_samples_to_file.py (in host/examples/python). > > --M > > On Mon, Jul 21, 2025 at 8:37 AM von Beöczy, Jonas < > j.von-beoeczy@tu-braunschweig.de> wrote: > >> Dear all, >> >> I cross-compiled a small C++ application that records some IQ samples >> and runs stand-alone on the X410. >> I want to use a sampling rate from 7.68e6 up to 15.36e6 samples per >> second. The IQ samples are written into the /run directory. >> Unfortunately I often get overflows, so that the system is not running >> stable. The amount of overflows increases if I increase the sampling rate. >> >> I also see overflows, when I run the example benchmark, e. g. like this: >> /usr/lib/uhd/examples/benchmark_rate --rx_rate 15.36e6 --rx_delay 2 >> --priority high --rx_spb 64 >> >> I tried to play around with rx_spb from 64 to 4096, since I thought that >> the buffer size would make a difference. But they all showed the same >> behavior (sometimes overflows, sometimes not). >> >> >> Within htop I cannot see any other CPU consuming services. >> >> I was wondering if the processor is to weak to run stand-alone at these >> data rates. Since I also wanted to run additional decoding on low >> Modulation and Coding schemes on the processor this might be a problem for >> me. >> >> Could you please give me some information if the x410 should be able to >> run the benchmark at such a sampling rate stand-alone? >> For that specific case I unfortunately cannot find and results. >> >> Many thanks again and best regards! >> Jonas >> _______________________________________________ >> USRP-users mailing list -- usrp-users@lists.ettus.com >> To unsubscribe send an email to usrp-users-leave@lists.ettus.com >> >