Re: [USRP-users] Plagued by sporadic TX underruns on some systems, B200

2019-05-06 Thread Matthias Brändli via USRP-users
Hi Mark-Jan,

Thanks for your response.

On 03/05/2019 00:02, Mark-Jan Bastian wrote:
> For more in-depth USB debugging, there are external USB 2.0 and 3.x 
> hardware bus analysers available, for example from the swiss company
> ellisys.com.

I have experience in USB protocol analysis from a previous job, and know
the Ellisys tools among others. As a consequence, I have an idea about
what effort it implies to look at the problem from that angle (one could
call this a "bottom-up approach"), and I won't go that way.


> Some things can be very subtle, for example this (quite amazing)
> 2013 ethernet PHY bug:
> https://www.theregister.co.uk/2013/02/06/packet_of_death_intel_ethernet/
> Very tough engineering by the affacted customer, who made it reproducable
> and fixed by a simple EEprom update from the vendor.

Interesting story, but I hope it is not a parallel to my situation, and
that a simpler approach will fix it.


> Pure theory: What if this intermittent issue would be an issue with a 
> certain sequence of packetlengths, some of them on the boundary of the 
> maximum size for that endpoint and endpointtype, that are not handled 
> properly at one or both sides, causing a glitch/retransmission/faillure, 
> resulting in the application-level visible underruns ?
> How would you measure that ? How could you optimize the packetlengths 
> so that the issue is quicker to reproduce ? Or avoid the issue by
> anticipating and avoiding such packetsequences ?

It's a possible hypothesis, but I don't see how to test it easily.


>> Could CPU frequency scaling lead to interruptions?
> 
> It would leave that off [...]

I'd love to, but it's not clear to me how to achieve that nowadays with
the intel_pstate driver:

https://www.kernel.org/doc/html/v4.12/admin-guide/pm/intel_pstate.html

It's probably not even possible anymore given that the cpu and voltage
scaling responsiblity got moved into the processor itself.

mpb

___
USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com


Re: [USRP-users] Timed frequency switching on multiple channels not possible

2019-05-06 Thread Fabian Schwartau via USRP-users

Sorry for the late answer, I was busy.
I tried that including a one second sleep after it but it does not help.

Am 26.04.2019 um 18:30 schrieb Marcus D. Leech via USRP-users:

On 04/26/2019 12:07 PM, Fabian Schwartau via USRP-users wrote:
Ohh.. you are right, I did not do that in the example code. But the 
problem is the same in my main application, where I do. As I said, the 
180° phase shift is probably somehow related and not that easy to 
reporduce. So the spectrum or I/Q swap should be the main issue here 
and I hope that this will also solve the 180° phase swap.
Interestingly the phase is correct, if I set the frequency twice for 
each channel with a little delay in between.
Could you try something?   Insert a set_time_next_pps() into the code in 
initalization--this should align the TOD clocks in both internal DSP radio

   modules.




Am 26.04.2019 um 18:02 schrieb Marcus D. Leech via USRP-users:

On 04/26/2019 11:36 AM, Fabian Schwartau via USRP-users wrote:

Hi,

I am am using LO sharing. So there should not be any phase offset 
and no mirrored spectrum, no matter when the USRP comes around to 
change the frequency. Even not using LO-sharing, the spectrum should 
NOT be mirrored.
The apparent I/Q swap issue I agree should not happen, and I have a 
query in to R&D about it.





Am 26.04.2019 um 17:12 schrieb Marcus D. Leech via USRP-users:

On 04/26/2019 05:13 AM, Fabian Schwartau via USRP-users wrote:

Hi,

a couple of days ago I filed a bug report which caused the USRPs 
to switch but noone has responded yet. I did now encountered other 
problems wich might be related to that issue. Can somone from 
Ettus (or someone else) take a look at that?

Bug report is here: https://github.com/EttusResearch/uhd/issues/271

Best regards,

Fabian


So, the original design reason for timed-commands was to support 
simultaneous tuning (and assertion of a resynch pulse) across 
*multiple USRPs*,
   in support of reducing/eliminating mutual phase offset among 
identically-hardwared USRPs, for daughtercards that supported 
phase-resynch.


When you use timed commands within a single USRP, hoping for 
similar effects, you won't get them, because the commands in the queue
   are *necessarily* executed sequentially.  Even if there was a 
"parallel execution" structure within the FPGA to handle the 
commands, most of
   the commands you care about ultimately end up on an SPI or I2C 
bus, and those are inherently serial, and multiple devices 
(synthesizers,
   variable-gain amplifiers, clock-plls) typically share a single 
such bus on a per-slot basis.  In order to have "true parallelism" 
*within* a single
   USRP, you'd need dedicated control buses to each device that is 
controlled by I2C/SPI/whatever, *in addition* to parallel execution 
within the

   FPGA.

When you're setting a bunch of PLL synthesizers sequentially, you 
can expect that they won't agree on phase, even when being driven
   by a common clock.   The mechanism for achieving phase coherence 
with TwinRx is to use LO sharing.


https://kb.ettus.com/TwinRX

This app-note talks about LO sharing with TwinRX

https://kb.ettus.com/Direction_Finding_with_the_USRP%E2%84%A2_X-Series_and_TwinRX%E2%84%A2 






___
USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com


___
USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com



___
USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com


___
USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com



___
USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com


___
USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com


Re: [USRP-users] Plagued by sporadic TX underruns on some systems, B200

2019-05-06 Thread Mark-Jan Bastian via USRP-users
On Mon, May 06, 2019 at 09:36:34AM +0200, Matthias Br??ndli wrote:
> > Pure theory: What if this intermittent issue would be an issue with a 
> > certain sequence of packetlengths, some of them on the boundary of the 
> > maximum size for that endpoint and endpointtype, that are not handled 
> > properly at one or both sides, causing a glitch/retransmission/faillure, 
> > resulting in the application-level visible underruns ?
> > How would you measure that ? How could you optimize the packetlengths 
> > so that the issue is quicker to reproduce ? Or avoid the issue by
> > anticipating and avoiding such packetsequences ?
> 
> It's a possible hypothesis, but I don't see how to test it easily.

The ellisys protocol analyser supports an external trigger,
and does support recording the USB enumeration, then pause and
record into a circular buffer for indefinite time.

Then the trick is to wait and detect your underrun, in your 
UHD apllication, and send a charachter to a usb serialport conncted 
via another usb hostcontroller/root port, to this coaxial 
trigger input. Configure the trigger to stop capturing, and analyse
the USB traffic around the underrun.
This timestamping is not perfect, but you should be in a few
10s msec of the underrun.

If there is a USB bulk endpoint underrun visible in the ellisys log, 
other ways of filling that endpoint in time could be tried, 
in hostcontroller driver, libusb, uhd, or your application.
Scheduling and prioritisation of all software components can be
double-checked.

Mark-Jan


___
USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com


Re: [USRP-users] B200 Overrun

2019-05-06 Thread Rensi Mathew via USRP-users
 @Marcus Muller
What are the settings of usrp_spectrum_sense that you use?
Sampling rate :16e6Min_freq 2.4e9max_freq 2.5e9BW 15625 Hz
FFT 1024
On Monday, 6 May, 2019, 12:53:49 am IST, Rensi Mathew 
 wrote:  
 
  Yes USB 3.0. 

The OS is Ubuntu 16.04 LTS 64-bit
Intel® Core™ i5-4570 CPU @ 3.20GHz × 4 
Disk 309.6 GB
Memory 3.6 GiB
Could it because of memory problem?The yellow/orange light in the system blinks 
when USRP runs(showing heavily loaded).
RensiOn Saturday, 4 May, 2019, 10:09:03 am IST, Robin Coxe 
 wrote:  
 
 Are you using USB 3.0?  USB 2.0 will max out at about 8 Ms/s.  


Robin Coxe | Chief R&D Program Manager, SDR | Santa Clara, CA | 408.610.6363 
From: USRP-users  on behalf of Rensi Mathew 
via USRP-users 
Sent: Friday, May 3, 2019 9:17 PM
To: Vsr Ravi via USRP-users
Subject: [USRP-users] B200 Overrun Dear sirI am using B200 SDR to run the 
program usrp_spectrum_sense.py with a sampling frequency of 16e6.I think I am 
using a fairly low sampling rate.
Still I am getting some ''.
Could someone tell me the possible reasons for the same? And how I can avoid 
the same?
Thanking youRensi Sam

___
USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com


Re: [USRP-users] E320 numpy missing?

2019-05-06 Thread Jason Matusiak via USRP-users
Thanks Neel, I will keep an eye out for updates.


From: Neel Pandeya 
Sent: Saturday, May 4, 2019 1:23 AM
To: Jason Matusiak
Cc: Ettus Mail List; Chris Gobbett
Subject: Re: [USRP-users] E320 numpy missing?

Hello Jason and Chris:

I understand your frustration. We are working on instructions for adding GNU 
Radio support to the E320, and we will provide you with a filesystem. We should 
have something ready for you by the middle of next week. I can be your 
point-of-contact on this issue, and feel free to contact me directly. I will 
make a follow-on post as well to update the mailing list.

--Neel Pandeya



On Thu, 2 May 2019 at 08:07, Jason Matusiak via USRP-users 
mailto:usrp-users@lists.ettus.com>> wrote:
Chris,

It is a shame that the E320 doesn't seem to have complete support, but maybe 
someone from Ettus will chime in at some point (though it has already been over 
a month since you posted).  As of now, these are paperweights in our office and 
I have to switch gears to a different project with a different vendor until it 
gets updated.  I am not sure who we can even ping at Ettus on the embedded 
front in case they aren't monitoring the mailing list.  Do you have a contact 
there on the embedded side?

You don't happen to have a series of steps posted somewhere that you use to try 
to get the E320 to a usable state do you?




From: USRP-users 
mailto:usrp-users-boun...@lists.ettus.com>> 
on behalf of Chris Gobbett via USRP-users 
mailto:usrp-users@lists.ettus.com>>
Sent: Wednesday, May 1, 2019 9:21 PM
To: Ettus Mail List
Subject: Re: [USRP-users] E320 numpy missing?

I've had similar problems since this post in March, and still waiting on a 
'clean' way forward
http://lists.ettus.com/pipermail/usrp-users_lists.ettus.com/2019-March/059332.html

In the interim I've done lots of cross-compiling and also stealing 
libraries/binaries from working E310 images; many of the included binaries seem 
gimped or a step down from what was on the E310.

- Original Message -
From:
"Jason Matusiak" 
mailto:ja...@gardettoengineering.com>>

To:
"Philip Balister" mailto:phi...@balister.org>>, "Ettus 
Mail List" mailto:usrp-users@lists.ettus.com>>
Cc:

Sent:
Wed, 1 May 2019 14:40:16 +
Subject:
Re: [USRP-users] E320 numpy missing?


I just double-checked and ENABLE_PYTHON is on in my system (which was 
apparently the default since I didn't spell it out in my cmake command).


From: Jason Matusiak
Sent: Wednesday, May 1, 2019 10:36 AM
To: Philip Balister; Ettus Mail List
Subject: Re: [USRP-users] E320 numpy missing?

I actually was using a .sh file from earlier in April, but pulling down the 
most recent: e3xx_e320_sdk_default-v3.13.0.2-20190415.zip, I still don't see 
pretty much any site-packages in the sysroot.

Those things seem to be there automatically when using the .sh info with the 
e310 files.

I will try including python in the cmake path (which I've never needed to do 
before), but is that going to be enough?  I feel like the back-and-forth you 
and I had last year with the rocko build for the E310 were for pretty similar 
issues.  But honestly, I need to look back at the emails for the exact issues 
at the time.


From: Philip Balister mailto:phi...@balister.org>>
Sent: Wednesday, May 1, 2019 10:31 AM
To: Jason Matusiak; Ettus Mail List
Subject: Re: [USRP-users] E320 numpy missing?

On 05/01/2019 09:55 AM, Jason Matusiak via USRP-users wrote:
> I also get a "ImportError: No module named sip" when I try to run: 
> uhd_siggen_gui
>
> So I think a few things might be missing from the cross-compile setup.

I took a few minutes and looked at the current state of the BSP. It
looks like you might have this image:

https://github.com/EttusResearch/meta-ettus/blob/master/meta-ettus-core/recipes-core/images/developer-image.bb

I forget where numpy is the gnuradio dependency tree, but I'm going to
guess if you enable python support in gnuradio (yes it might be possible
to use gnuradio without python) you will need numpy to build/run.

Philip

>
> 
> From: Jason Matusiak
> Sent: Wednesday, May 1, 2019 8:46 AM
> To: Ettus Mail List
> Subject: E320 numpy missing?
>
> Finally got my E320 in and I cross-compiled a new setup.  I tried to fire up 
> my flowgraph (which works fine on an E310) and it is complaining about numpy 
> missing.
>
> If I do a search from / on the E320, the only numpy that is showing up is:
> /usr/include/boost/python/numpy
>
> If I do a search from a good E310 in / I see:
> ./usr/lib/python2.7/site-packages/numpy
> ./usr/lib/python2.7/site-packages/numpy/core/include/numpy
> ./usr/lib/python2.7/site-packages/Cython/Includes/numpy
> ./usr/include/boost/python/numpy
>
>
> Back on the host machine, my E320 cross-compile prefix shows numpy:
> ./sysroots/cortexa9hf-neon-oe-linux-gnueabi/usr/include/boost/python/numpy
>
> My good E310

[USRP-users] Bursty packet transmission

2019-05-06 Thread Huacheng Zeng via USRP-users
Hi,

I am using USRP N210 for bursty packet transmission, and have difficulty to
understand "tx_md.end_of_burst = true" in C++ code. I am attaching my code
at the end and hope someone can help.

The problem is:
1. when I comment out "tx_md.end_of_burst = true" and use the function for
transmission periodically, my receiver can decode the packet successfully.
But it seems that it can only detect N - 1 packet, where N is the number of
packets that I sent at the transmitter. For example, when I send 3 packets,
the receiver can only decode 2 packets, and so forth. Not sure what is the
reason behind this.

2. When I uncomment "tx_md.end_of_burst = true" (either the one inside the
WHILE loop or outside one), my receiver cannot decode the packets anymore.
When I use spectrum analyzer to see the signal, I can see that the
transmitter does send the signal into the air and the waveform shape looks
right. However, the signal cannot be decoded.


Any suggestions?

Thank you!

Hua





=

size_t sdr_dev::usrp_transmit(vector*> tx_buff_ptr, size_t
requested_num_samps) {

tx_md.start_of_burst = true;
tx_md.end_of_burst = false;
tx_md.has_time_spec = false;
tx_md.time_spec = uhd::time_spec_t(1.0); //0.1

//the first call to send() will block this many seconds before sending:
timeout = seconds_in_future + 0.1; //timeout (delay before transmit +
padding)

vector*> tx_buff_ptr_tmp = tx_buff_ptr;

size_t acc_num_samps = 0; //number of accumulated samples
size_t total_num_samps = requested_num_samps;
while(acc_num_samps < total_num_samps) {
size_t samps_to_send = total_num_samps - acc_num_samps;
if (samps_to_send > tx_max_num_samps) {
samps_to_send = tx_max_num_samps;
}
else {
//tx_md.end_of_burst = true;
}

for (int i = 0; i < tx_buff_ptr.size(); i++) tx_buff_ptr_tmp[i] =
&tx_buff_ptr[i][acc_num_samps];

//send a single packet
size_t num_tx_samps = tx_stream->send(tx_buff_ptr_tmp,
samps_to_send, tx_md, timeout);

//do not use time spec for subsequent packets
tx_md.has_time_spec = false;
tx_md.start_of_burst = false;

acc_num_samps += num_tx_samps;
}

//tx_md.end_of_burst = true;
tx_stream->send("", 0, tx_md);

return acc_num_samps;
}
==
___
USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com


[USRP-users] E320 Auto-Booting function not working?

2019-05-06 Thread Chris Gobbett via USRP-users
Following the steps from the E320 getting started guide [1], I'm not
having any luck with the unit auto booting when power is applied
The command "eeprom-set-flags 0x1" seems to take effect successfully,
and sets the value of MCU_FLAGS[0] to 0x1 (noting that the default
value is 0x8, which I'm assuming means auto boot is "off") . This is
also verified as holding its value between power cycles, by looking at
the output of the eeprom-dump command.

But... removing power to the unit, then applying power again doesn't
result in the unit booting by itself.

Anyone had any experience with this and/or able to offer help? I'm
hesitant to trial-and-error different values into eeprom-set-flags,
for fear of breaking something... :)

Cheers,Chris

[1] https://kb.ettus.com/E320_Getting_Started_Guide [1]

Links:
--
[1] https://kb.ettus.com/E320_Getting_Started_Guide

___
USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com