[USRP-users] E310 Rx Timeout with higher sampling rates

Voss, Nathan J VossN at battelle.org
Thu Apr 30 17:39:45 EDT 2015

I checked top as suggested, and the CPU isn't pegged while my application is waiting for the recv() call to return. I'm not running the E310 in network mode. I am compiling my code, transferring it over, and running it natively on the device from an SSH command line.

The symptoms are that I start the radio in continuous receive mode, and start calling recv() requesting 512 samples. The first ~250-300 calls return with the requested samples, then subsequent calls return 0 with the ERROR_TIMEOUT result in the rx_metadata. My timeout for the recv() call is currently set to 3 seconds. Identical code runs fine on an N200, I'm only seeing the issue on the E310 when the data rate is above ~500 Ksps.

Thanks again.
From: Jason Hein [jason.j.hein at gmail.com]
Sent: Thursday, April 30, 2015 3:40 PM
To: Voss, Nathan J
Cc: usrp-users at lists.ettus.com
Subject: Re: [USRP-users] E310 Rx Timeout with higher sampling rates


It sounds like you're running in network mode (pulling streaming data off the gigabit network interface) and the usrp_e3x0_network_mode process on the E310 can't keep up with those sample rates.  Try logging into the E310 and running 'top' when you're doing the usrp->recv().  Start scaling back the data rate until the CPUs aren't pegged.  I was getting about 1 MSps 16-bit complex.


On Thu, Apr 30, 2015 at 2:45 PM, Voss, Nathan J via USRP-users <usrp-users at lists.ettus.com<mailto:usrp-users at lists.ettus.com>> wrote:
I am in the process of porting code that was built and tested successfully on a USRP N200 to a USRP E310. The sampling rate is user-configurable, and we really need to support as large a bandwidth as possible. On the N200, my code worked fine for sampling rates up to ~15Msps, but on the E310 the same code is struggling to run over about 500Ksps.

When I set the sampling rate on the E310 above about 500Ksps, I initially get one or two 'O' overflow notifications, and then start to get timeout errors very frequently. My code is fairly simple, in that I'm calling 'usrp->recv()' in a pretty tight loop, very similar to the 'rx_samples_to_file' example. The timeout value I'm passing into the recv() call is currently 3.0 seconds, and my 'nsampls_per_buf' is typically 512.

Thanks for your help.
USRP-users mailing list
USRP-users at lists.ettus.com<mailto:USRP-users at lists.ettus.com>

More information about the USRP-users mailing list