discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] Strange overflow problem on USRP N2XX


From: Josh Blum
Subject: Re: [Discuss-gnuradio] Strange overflow problem on USRP N2XX
Date: Tue, 18 Sep 2012 13:30:21 -0400
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:15.0) Gecko/20120827 Thunderbird/15.0


On 09/18/2012 05:36 AM, Ting Wu wrote:
> Hi,
> 
>  
> 
> I made more tests, and even stranger things happened. Let me clarify this
> problem all over again.
> 
>  

Well, here is a description of overflow:
http://files.ettus.com/uhd_docs/manual/html/general.html#overflow-underflow-notes

So, its usually a factor of buffering, interrupts, and CPU performance.
It looks like you are connecting a USRP source to a gr messsage queue
and reading the queue in python. The python processing might be a
serious performance bottleneck

-josh

> 
> I have two USRP (N210 Rev.4) (Let's say U1 and U2) with LFRX daughterboard,
> and two computers (Endeavo ST160E) (Let's say P1 and P2).
> 
> First, U1 is connected with P1 and running test code (see below) works well.
> 
> U2 is connected with P2, and running the code below prints 'O', indicating
> overflow problem.
> 
>  
> 
> Then, I connect U1 to P2. Overflow problem happens again, and printing of
> 'O' becomes more frequent.
> 
> Then, I connect U2 to P2. Same as above, frequent printing of 'O'.
> 
> Then I rebooted P2, and connect it with U1. No overflow problem.
> 
> Then I connect P2 with U2. Again there is overflow problem.
> 
> Then I rebooted P2 again, and connect it to U2. No overflow problem again.
> 
>  
> 
> For P1, there is always overflow problem even if I reboot it and no matter
> it is connected with U1 or U2.
> 
>  
> 
> This is the code for making tests:
> 
> #######################################code##########################
> 
>  
> 
> #!/usr/bin/env python
> 
>  
> 
> from gnuradio import gr
> 
> from gnuradio import uhd
> 
> import time
> 
> from time import sleep
> 
> from struct import unpack
> 
>  
> 
> samp_rate = 4e6
> 
> gain = 0 
> 
>  
> 
> class trig_with_pretrig(gr.top_block):
> 
>     def __init__(self):
> 
>               gr.top_block.__init__(self)
> 
>               self.source = uhd.usrp_source(device_addr="",
> stream_args=uhd.stream_args('sc16', 'sc16', args="scalar=1024"))
> 
>  
> 
>               self.source.set_samp_rate(samp_rate)
> 
>               self.source.set_gain(gain)
> 
>               self.source.set_center_freq(0)
> 
>  
> 
>               self.queue = gr.msg_queue()
> 
>               self.sink = gr.message_sink(gr.sizeof_short*2, self.queue,
> False)
> 
>               self.connect(self.source, self.sink)
> 
>  
> 
>  
> 
> if __name__=="__main__":
> 
>     tb = trig_with_pretrig()
> 
>     tb.start()
> 
>  
> 
>     while True:
> 
>               
> 
>               #Test speed of computer
> 
>               tb.queue.flush()
> 
>               for i in range(1000):
> 
>                   msg = tb.queue.delete_head()
> 
>                   payload = msg.to_string()
> 
>                   loadLen = int(msg.arg2())
> 
>                   format = str(loadLen*2)+'h'
> 
>                   data = unpack(format, payload)
> 
>                   datach1 = data[0::2]
> 
>                   dataMax = max(datach1)
> 
>               wait_len = tb.queue.count()
> 
>               sleep(1)
> 
>  
> 
> ##########################code ############################
> 
>  
> 
> When there is overflow problem, it is like this:
> 
>  
> 
> address@hidden:~$ ./test_overflow.py
> 
> linux; GNU C++ version 4.4.3; Boost_104000; UHD_003.004.003-224-gc2e197c0
> 
>  
> 
> -- Opening a USRP2/N-Series device...
> 
> -- Current recv frame size: 1448 bytes
> 
> -- Current send frame size: 1472 bytes
> 
> -- Detecting internal GPSDO.... Found a Jackson Labs GPS
> 
> -- found
> 
> -- Setting references to the internal GPSDO
> 
> -- Initializing time to the internal GPSDO
> 
> OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
> OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
> 
>  
> 
> Anyone has any clue what might be the reason for this overflow problem?
> 
> Any suggestion is appreciated.
> 
>  
> 
> Wu
> 
>  
> 
> From: address@hidden
> [mailto:address@hidden
> g] On Behalf Of Ting Wu
> Sent: Tuesday, September 18, 2012 5:36 PM
> To: address@hidden
> Subject: [Discuss-gnuradio] Strange overflow problem on USRP N2XX
> 
>  
> 
> Hi all,
> 
>  
> 
> Now I'm using several USRP N200 and N210 to build an observation network.
> 
> I have bought several new computers, which are exactly the same.
> 
> When I connect a USRP N210 with one computer, it has overflow problem
> (occasionally print 'O').
> 
> However, when I connect the same USRP with another computer (exactly the
> same model), it does not have such problem.
> 
>  
> 
> Several months ago, when I used a USRP N200, it also had similar problem.
> 
> When I connect the USRP to a laptop (a very new and fast one), it
> occasionally has overflow problem.
> 
> However, when I connect it to other computers (some of them are very old and
> slow), it did not have the problem.
> 
>  
> 
> This really bothers me because I don't know what is the reason of this
> problem, so we are not sure what computers we should buy in future
> operation.
> 
> Does anyone have any clue?
> 
>  
> 
> Wu
> 
> 
> 
> 
> _______________________________________________
> Discuss-gnuradio mailing list
> address@hidden
> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
> 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]