Re: [Discuss-gnuradio] Re: Invalid EEPROM error message with the WBX board

2010-12-07 Thread Marcus D. Leech
 Thanks for your reply Marcus
 I installed the gnuradio 3.3.1 version and the message Warning:
 Treating daughterboard with invalid EEPROM contents as if it were a
 Basic Rx.
 is gone now but when I try to run gnuradio-companion I receive the
 following message
 Cannot import gnuradio. Are your PYTHONPATH and LD_LIBRARY_PATH set
 correctly?

 What do I have to do in this case
 Thanks
 Daniel
Make sure that your PYTHONPATH variable points at the location of the
Gnu Radio stuff on your system.
  On a Fedora system, it'll be:

/usr/local/lib/python2.x/site-packages

or

/usr/local/lib64/python2.x/site-packages

Where 'x' is the version of Python.  Prior to Fedora 14, 'x' was 6 but
at Fedora 14 it's 7.




-- 
Principal Investigator
Shirleys Bay Radio Astronomy Consortium
http://www.sbrac.org



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] TPB scheduler fills block buffers

2010-12-07 Thread Eric Blossom
On Tue, Dec 07, 2010 at 11:36:19AM +0100, Anton Blad wrote:
 On Mon, 29 Nov 2010 09:30:11 -0800, Eric Blossom e...@comsec.com wrote:
  On Mon, Nov 29, 2010 at 08:42:14AM +0100, antonb wrote:
  Hi,
  
  I am writing an application for which I want to keep the latency to a
  minimum, and this involves trying to keep the buffers between the
 blocks
  as
  empty as possible. Basically, I have a source block with an element
 size
  of
  512 bytes that accepts data through a public member function. If there
 is
  no data to transmit it will produce one empty packet to keep the USRP
  busy.
  The scheduler keeps asking for 64 items and I give it one. This goes on
  until its write buffer is full. The processing latency (from the source
  block to the USRP) of the first items is a few ms, but this grows to
 well
  over a second due to the large amounts of buffered data.
  
  Looking at the behavior of the single threaded scheduler, it seems it
 is
  trying to keep the latency low by only requesting data from source
 blocks
  when the other blocks fail to produce anything. However, the thread per
  block scheduler does not seem to care about whether a block is a source
  block or not. Is there any way I can configure it to do this? Is there
  any
  other approach for solving this problem?
  
  Thankful for any help,
  Anton Blad
  
  Hi Anton,
  
  There's been some discussion about this over the past few months.
  Probably the easiest way to fix this problem is to limit the usable
  size of the buffers in the processing chain.  This is a relatively
  small change, that would allow an application developer to control the
  worst case amount of buffering that is used in the graph.  By default,
  we allocate buffers on the order of 32KiB, then double that size so
  that we can double buffer under the TPB scheduler. (Optimizing for
  throughput.)
  
  The current implementation requires that the physical size of the
  buffers be a multiple of the page size.  The fix I'm proposing leaves
  that constraint in place (it's hard to remove for a variety of
  reasons), but allows the specification of a limit on the total number
  of samples allowed in the buffer.  Thus, if want low latency, you
  could specify a limit of 512 bytes (or less for that matter), and the
  total buffering would be drastically reduced from what's currently
  used.
  
  I won't have time to look at this until after the new year, but if
  you're interested in looking at it, the primary place to look is
  gnuradio-core/src/lib/runtime/gr_buffer.{h,cc}.  Basically you'd want
  to limit the amount of space that it reports is available for writing
  to min(whats-physically-available, your-limit)
  
  Eric
 
 Hi Eric,
 
 Thanks for your reply. There are two obvious drawbacks with the simple
 fix: the latency will still be higher than necessary, and processing large
 chunks will not be possible. I have the following alternative suggestion:
 
 * Create a new policy governing class (gr_tpb_policy_governor?) with the
 purpose of keeping track of which blocks are making progress. The class
 contains a condition variable that source blocks wait on in case the
 scheduling policy disallows adding more samples to the flowgraph.
 
 * Create an instance of gr_tpb_policy_governor in the gr_scheduler_tpb
 constructor and tell it the number of blocks in the flattened flowgraph.
 
 * Add a reference to the gr_tpb_policy_governor instance in the
 gr_tpb_detail blocks. Update the states of the blocks in
 gr_tpb_detail::set_{input,output}_changed and in
 gr_tpb_thread_body::gr_tpb_thread_body depending on
 gr_block_executor::state.
 
 The policies I can think of being useful are:
 
 * flooding: the current policy, for performance
 
 * active_blocks: block sources if more than a minimum number of blocks are
 processing concurrently, in order to reduce latency. Could be set to 1 to
 give the behavior of the single threaded scheduler.
 
 * num_samples: block sources if more than a minimum number of samples are
 processed currently, in order to reduce latency while still ensuring
 acceptable performance.
 
 I guess that the main drawback of this proposal is that the
 gr_tpb_policy_governor will contain a very heavily used mutex.
 
 Comments? If I do these changes, will the GNU Radio team be interested in
 a patch?

If it can be done cleanly and simply in a way that doesn't reduce the
performance too much (say 3%) for those who are using flooding, then
I think we'd consider it.  The measure of performance should be total
CPU time (== user + sys).

I do have some questions about how you'd tune the active_blocks and
num_samples cases...

Eric

___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


[Discuss-gnuradio] FSK4 Demodulation on the FPGA

2010-12-07 Thread Kevin Xu

Hey all,

Has anyone attempted to implement a C4FM demodulator on the Altera 
Cyclone in the USRP1? Right now I'm hoping to do this to read P25 
encrypted packets on the FPGA instead of on the CPU, and I wanted to 
know if it was possible. If so, could anyone could point me to any sort 
of examples or tutorials I could learn from to accomplish this? It would 
be greatly appreciated.


Much obliged,
Kevin

___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Effect of samples_per_symbol on benchmark_qt_loopback2.py

2010-12-07 Thread Tom Rondeau
On Tue, Dec 7, 2010 at 12:42 AM, Ben Reynwar b...@reynwar.net wrote:
 When I run gnuradio/gnuradio-examples/python/digital/benchmark_qt_loopback2.py
 I get a strange dependence on samples_per_symbol.

 I would naively have expected that the more samples per symbol the
 better, however:

 python benchmark_qt_loopback2.py --samples_per_symbol 10
 produces no errors

 whereas
 python benchmark_qt_loopback2.py --samples_per_symbol 11
 produces lots of errors

 Does anyone have any idea what's going on here?

 Cheers,
 Ben

That's a very large number of samples per symbol. I know I tested up
to 10, but more than that's pretty excessive. Ok, more than 2 is
excessive, really. Off the top of my head, I can't think of exactly
what might be going wrong here, but you should really never need to
use that many samples per symbol, anyway.

Tom

___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] always a spike on the FFT at the center frequency

2010-12-07 Thread Matt Ettus

On 12/05/2010 11:22 PM, adib_sairi wrote:




Matt Ettus wrote:



This is due to truncation in the USRP.  If you add 0.5 to the signal, it
should go away.

Matt





Dear Matt,
how and where does the truncation is done? is it in the FPGA (DDC) ?



At the output of the DDC.

Matt

___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio