Re: [Discuss-gnuradio] gr_remez insufficient extremals

2011-03-01 Thread Martin Braun
Hi Bernardo,

I'm pretty sure the filter code hasn't changed too much since 3.2.2.
However, I'm surprised it worked before: Your FM demodulator requires a
pretty steep filter (the transition width is less than 0.005 normalised
to the sampling frequency). I only had a quick peek, but since your
decimation in the FM demod is 1, you could use a frequency demod instead
and couple it with your own (custom) filter.
The gr_remez code is a bit unstable in this respect. You normally have
to fiddle around with the parameters until you get a good filter, and
the FM demod block doesn't give you enough knobs.

MB


On Mon, Feb 28, 2011 at 11:25:54AM -0300, Bernardo Guadagnin Gonçalves wrote:
> Hello,
> 
> 
> Until last week I was using the Gnu Radio 3.2.2 (which is ready for use in
> ubuntu), then I decided to try the latest version (v3.3.1git-147-g5a23954a).
> The flowgraph was working perfectly. It's for "in" GRC simulation only. I know
> it's very simple and the 38kHz recovery (at the receiver) is not the
> recommended way.
> 
> 
> Flowgraph: http://dl.dropbox.com/u/8898915/FMstereotxrx2.grc
> 
> .Wav for simulation: http://dl.dropbox.com/u/8898915/sine4k.wav
> 
> 
> The messages that are now shown are:
> 
> 
> Showing: "/home/mula/Dropbox/Public/FMstereotxrx2.grc"
> 
> 
> Generating: "/home/mula/Dropbox/Public/top_block.py"
> 
> 
> Executing: "/home/mula/Dropbox/Public/top_block.py"
> 
> 
> gr_remez: insufficient extremals -- cannot continue
> 
> Traceback (most recent call last):
> 
>   File "/home/mula/Dropbox/Public/top_block.py", line 361, in 
> 
>     tb = top_block()
> 
>   File "/home/mula/Dropbox/Public/top_block.py", line 193, in __init__
> 
>     tau=tau,
> 
>   File 
> "/usr/local/lib/python2.6/dist-packages/gnuradio/blks2impl/fm_demod.py",
> line 65, in __init__
> 
>     60)   # Stopband attenuation
> 
>   File "/usr/local/lib/python2.6/dist-packages/gnuradio/optfir.py", line 53, 
> in
> low_pass
> 
>     taps = gr.remez (n + nextra_taps, fo, ao, w, "bandpass")
> 
>   File "/usr/local/lib/python2.6/dist-packages/gnuradio/gr/
> gnuradio_swig_py_general.py", line 432, in remez
> 
>     return _gnuradio_swig_py_general.remez(*args, **kwargs)
> 
> RuntimeError: gr_remez: insufficient extremals -- cannot continue
> 
> 
> >>> Done
> 
> 
> Thanks!
> 
> 
> Regards,
> Bernardo
> 

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


-- 
Karlsruhe Institute of Technology (KIT)
Communications Engineering Lab (CEL)

Dipl.-Ing. Martin Braun
Research Associate

Kaiserstraße 12
Building 05.01
76131 Karlsruhe

Phone: +49 721 608-43790
Fax: +49 721 608-46071
www.cel.kit.edu

KIT -- University of the State of Baden-Württemberg and
National Laboratory of the Helmholtz Association



pgpQ74dJog86Z.pgp
Description: PGP signature
___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


[Discuss-gnuradio] sensitivity in fm

2011-03-01 Thread ömer günay

How should i interpret sensitivity parameter in fm modulator block in grc? How 
does it effect modulation characteristics? If you have any opinion or offer 
please write.Thanks.
  ___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] sensitivity in fm

2011-03-01 Thread Alexandru Csete
2011/3/1 ömer günay :
> How should i interpret sensitivity parameter in fm modulator block in grc?
> How does it effect modulation characteristics? If you have any opinion or
> offer please write.Thanks.

It corresponds to the maximum deviation, see
gnuradio-core/src/python/gnuradio/blks2impl/nbfm_tx.py

Alex

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


Re: [Discuss-gnuradio] Re: UHD Announcement - February 25rd 2011

2011-03-01 Thread Feng Andrew Ge

Josh,

Thanks a lot for the explanation.

When you say 90 packets, I assume that you mean UDP packets (which 
contain samples). Given the default MTU (1500-8-20)B and 2 samples per 
symbol as well as 4B per sample, for BPSK or GMSK, 90 packets of samples 
correspond to 90*1472/(2*4*8)=2070B of user data. If I use 1500B per 
user packet, that's less than 2 packets. For 700 UDP packets, that's 
about 10 user packets. This actually explains what I observed, after 
about 10 user packets, my transmission stopped. According to you, the 
host blocked first. However, it seemed that USRP didn't send back update 
packets for some reason--which is unusual. So it's likely timeout was 
called.  To help my understanding what caused the above behavior, would 
you please spend little time answering the following questions?


(1) Which parameter (*ups_per_fifo or **ups_per_sec*) corresponds to the 
above control parameter here (90 transmission packets and 700 packets 
update)? (2) How is the update packet generated on USRP?  (3) In normal 
cases, when the host transmits a packet, does it specify a transmission 
time for USRP? If so, it must get the clock of USRP first and then leave 
some margin, this introduce some time overhead; if not, does the USRP 
send whatever it receives immediately? (4) What's the content of the 
short update packet?


Andrew

On 02/28/2011 05:58 PM, Josh Blum wrote:

A brief description on the flow control implementation:

The flow control is only used on the transmit size to throttle the host
calls to send(). Update packets are received by the host every 90
transmitted packets. If the host does not get an update packet after
about 700 packets, the calls to send will block until the an update
packet arrives or timeout.

This does not incur any overhead on receive. Update packets are small,
have their own dedicated udp port, and arrive infrequently. The overhead
on the transmit side is a check of the flow control condition per
packet. Which looks like this:
return seq_type(_last_seq_out -_last_seq_ack)<  _max_seqs_out;

-josh

On 02/28/2011 02:42 PM, Feng Andrew Ge wrote:

Marc,

Unfortunately I don't much experience  with Ethernet pause-frame flow
control.  For my applications, sending is not an issue since we don't
send high data rates; we are more concerned at the receiver side,
particularly its latency (which is related to CPU consumption too.)

Andrew


On 02/28/2011 05:19 PM, Marc Epard wrote:

On Feb 28, 2011, at 3:54 PM, Feng Andrew Ge wrote:


Josh,

I haven't found time to try what you suggested yet; however, it would
be nice that the user has the option to choose host-side flow
control.  In principle, I don't fully trust host-side flow control
simply because there is too much uncertainty in a general-purpose
processor (determined by both its hardware architecture and OS).

Andrew

(We should probably move this to one of the public lists.)

Andrew,

How much experience do you have with Ethernet pause-frame flow
control? It caused us a bunch of problems and judging by the lists
over the last 8 months or so, it creates huge customer support problems.

-Marc



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


[Discuss-gnuradio] Re: [USRP-users] UHD Announcement - February 25rd 2011

2011-03-01 Thread Thomas Tsou
On Fri, Feb 25, 2011 at 8:32 PM, Josh Blum  wrote:
> Hello list,
>
> In preparation for the coming gnuradio release, and the cut-over from
> next to master, changes have been pushed to both the uhd.git master
> branch and the gnuradio.git next branch.

I'm getting the following timeouts after the update. I presume this has
something to do with buffering since it always occurs at the same packet
number - code change at end. Same result on e100 and rlt NIC's.

[ttsou@fischer examples]$ ./tx_timed_samples --secs 4 --nsamps 40 --rate 
400e3 --dilv --spp 864
linux; GNU C++ version 4.5.1 20100924 (Red Hat 4.5.1-4); Boost_104400; 
UHD_003.20110226000831.77641c6


Creating the usrp device with: ...
Current recv sock buff size: 5000 bytes
mboard0 MIMO master
Using Device: Single USRP:
  Device: USRP2/N Series device
  Mboard 0: USRP-N210 mboard
  RX DSP 0: USRP-N210 ddc0
  RX Channel: 0
RX Dboard: USRP-N210 dboard (rx unit)
RX Subdev: Unknown - Unknown (0x)
  TX DSP 0: USRP-N210 duc0
  TX Channel: 0
TX Dboard: USRP-N210 dboard (tx unit)
TX Subdev: Basic TX (0x) - AB

Setting TX Rate: 0.40 Msps...
Actual TX Rate: 0.40 Msps...

Setting TX Freq: 0.00 Mhz...
Actual TX Freq: 0.00 Mhz...

Setting device timestamp to 0...
Send timeout... Sent 362 samples of packet 237
Send timeout... Sent 0 samples of packet 238
Send timeout... Sent 0 samples of packet 239
Send timeout... Sent 0 samples of packet 240
Send timeout... Sent 0 samples of packet 241
...

  Thomas

---
 host/examples/tx_timed_samples.cpp |3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/host/examples/tx_timed_samples.cpp 
b/host/examples/tx_timed_samples.cpp
index f10d7e4..1f87ae3 100644
--- a/host/examples/tx_timed_samples.cpp
+++ b/host/examples/tx_timed_samples.cpp
@@ -106,7 +106,8 @@ int UHD_SAFE_MAIN(int argc, char *argv[]){
 //send will backup into the host this many seconds before sending:
 seconds_in_future + 0.1 //timeout (delay before transmit + padding)
 );
-if (num_tx_samps < samps_to_send) std::cout << "Send timeout..." << 
std::endl;
+if (num_tx_samps < samps_to_send)
+std::cout << "Send timeout... Sent " << num_tx_samps << " samples 
of packet " << i << std::endl;
 if(verbose) std::cout << std::endl << boost::format("Sent %d samples") 
% num_tx_samps << std::endl;
 }

-- 


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


Re: [Discuss-gnuradio] gr_remez insufficient extremals

2011-03-01 Thread Bernardo Guadagnin Gonçalves
Thanks Martin,

Thanks for the idea... and, yes, 1kHz for audio stop isn't a good idea. I've
reinstalled the 3.2.2 and it really works fine. Anyway, I'll be trying to do
a filter as you recommended.

Thanks!
Bernardo

On Tue, Mar 1, 2011 at 5:54 AM, Martin Braun  wrote:

> Hi Bernardo,
>
> I'm pretty sure the filter code hasn't changed too much since 3.2.2.
> However, I'm surprised it worked before: Your FM demodulator requires a
> pretty steep filter (the transition width is less than 0.005 normalised
> to the sampling frequency). I only had a quick peek, but since your
> decimation in the FM demod is 1, you could use a frequency demod instead
> and couple it with your own (custom) filter.
> The gr_remez code is a bit unstable in this respect. You normally have
> to fiddle around with the parameters until you get a good filter, and
> the FM demod block doesn't give you enough knobs.
>
> MB
>
>
> On Mon, Feb 28, 2011 at 11:25:54AM -0300, Bernardo Guadagnin Gonçalves
> wrote:
> > Hello,
> >
> >
> > Until last week I was using the Gnu Radio 3.2.2 (which is ready for use
> in
> > ubuntu), then I decided to try the latest version
> (v3.3.1git-147-g5a23954a).
> > The flowgraph was working perfectly. It's for "in" GRC simulation only. I
> know
> > it's very simple and the 38kHz recovery (at the receiver) is not the
> > recommended way.
> >
> >
> > Flowgraph: http://dl.dropbox.com/u/8898915/FMstereotxrx2.grc
> >
> > .Wav for simulation: http://dl.dropbox.com/u/8898915/sine4k.wav
> >
> >
> > The messages that are now shown are:
> >
> >
> > Showing: "/home/mula/Dropbox/Public/FMstereotxrx2.grc"
> >
> >
> > Generating: "/home/mula/Dropbox/Public/top_block.py"
> >
> >
> > Executing: "/home/mula/Dropbox/Public/top_block.py"
> >
> >
> > gr_remez: insufficient extremals -- cannot continue
> >
> > Traceback (most recent call last):
> >
> >   File "/home/mula/Dropbox/Public/top_block.py", line 361, in 
> >
> > tb = top_block()
> >
> >   File "/home/mula/Dropbox/Public/top_block.py", line 193, in __init__
> >
> > tau=tau,
> >
> >   File
> "/usr/local/lib/python2.6/dist-packages/gnuradio/blks2impl/fm_demod.py",
> > line 65, in __init__
> >
> > 60)   # Stopband attenuation
> >
> >   File "/usr/local/lib/python2.6/dist-packages/gnuradio/optfir.py", line
> 53, in
> > low_pass
> >
> > taps = gr.remez (n + nextra_taps, fo, ao, w, "bandpass")
> >
> >   File "/usr/local/lib/python2.6/dist-packages/gnuradio/gr/
> > gnuradio_swig_py_general.py", line 432, in remez
> >
> > return _gnuradio_swig_py_general.remez(*args, **kwargs)
> >
> > RuntimeError: gr_remez: insufficient extremals -- cannot continue
> >
> >
> > >>> Done
> >
> >
> > Thanks!
> >
> >
> > Regards,
> > Bernardo
> >
>
> > ___
> > Discuss-gnuradio mailing list
> > Discuss-gnuradio@gnu.org
> > http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>
>
> --
> Karlsruhe Institute of Technology (KIT)
> Communications Engineering Lab (CEL)
>
> Dipl.-Ing. Martin Braun
> Research Associate
>
> Kaiserstraße 12
> Building 05.01
> 76131 Karlsruhe
>
> Phone: +49 721 608-43790
> Fax: +49 721 608-46071
> www.cel.kit.edu
>
> KIT -- University of the State of Baden-Württemberg and
> National Laboratory of the Helmholtz Association
>
>
> ___
> Discuss-gnuradio mailing list
> Discuss-gnuradio@gnu.org
> http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>
>
___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Re: UHD Announcement - February 25rd 2011

2011-03-01 Thread Josh Blum

> Thanks a lot for the explanation.
> 

To explain your observations for the curious:

Prior to the fix, a recv buffer would be lost to the transport layer on
each timeout (thanks to an optimization I made earlier).

So, for every 100ms window (the default timeout) that did not have at
least 90 packets transmitted. A receive buffer was lost. After 32
timeouts, there were no more available buffers and the flow control
throttled back.

-Josh

answers below:

> When you say 90 packets, I assume that you mean UDP packets (which
> contain samples). Given the default MTU (1500-8-20)B and 2 samples per
> symbol as well as 4B per sample, for BPSK or GMSK, 90 packets of samples
> correspond to 90*1472/(2*4*8)=2070B of user data. If I use 1500B per
> user packet, that's less than 2 packets. For 700 UDP packets, that's
> about 10 user packets. This actually explains what I observed, after
> about 10 user packets, my transmission stopped. According to you, the
> host blocked first. However, it seemed that USRP didn't send back update
> packets for some reason--which is unusual. So it's likely timeout was
> called.  To help my understanding what caused the above behavior, would
> you please spend little time answering the following questions?
> 
> (1) Which parameter (*ups_per_fifo or **ups_per_sec*) corresponds to the
> above control parameter here (90 transmission packets and 700 packets
> update)? (2) How is the update packet generated on USRP?  (3) In normal
> cases, when the host transmits a packet, does it specify a transmission
> time for USRP? If so, it must get the clock of USRP first and then leave
> some margin, this introduce some time overhead; if not, does the USRP
> send whatever it receives immediately? (4) What's the content of the
> short update packet?
> 

1) ups_per_fifo

2) it counts the number of transmitted packets, and sends an update
packet every nth packet (default n = 90)

3) a transmission time is optional, when not specified the send is immediate

4) the sequence of the last transmitted packet

> Andrew
> 
> On 02/28/2011 05:58 PM, Josh Blum wrote:
>> A brief description on the flow control implementation:
>>
>> The flow control is only used on the transmit size to throttle the host
>> calls to send(). Update packets are received by the host every 90
>> transmitted packets. If the host does not get an update packet after
>> about 700 packets, the calls to send will block until the an update
>> packet arrives or timeout.
>>
>> This does not incur any overhead on receive. Update packets are small,
>> have their own dedicated udp port, and arrive infrequently. The overhead
>> on the transmit side is a check of the flow control condition per
>> packet. Which looks like this:
>> return seq_type(_last_seq_out -_last_seq_ack)<  _max_seqs_out;
>>
>> -josh
>>
>> On 02/28/2011 02:42 PM, Feng Andrew Ge wrote:
>>> Marc,
>>>
>>> Unfortunately I don't much experience  with Ethernet pause-frame flow
>>> control.  For my applications, sending is not an issue since we don't
>>> send high data rates; we are more concerned at the receiver side,
>>> particularly its latency (which is related to CPU consumption too.)
>>>
>>> Andrew
>>>
>>>
>>> On 02/28/2011 05:19 PM, Marc Epard wrote:
 On Feb 28, 2011, at 3:54 PM, Feng Andrew Ge wrote:

> Josh,
>
> I haven't found time to try what you suggested yet; however, it would
> be nice that the user has the option to choose host-side flow
> control.  In principle, I don't fully trust host-side flow control
> simply because there is too much uncertainty in a general-purpose
> processor (determined by both its hardware architecture and OS).
>
> Andrew
 (We should probably move this to one of the public lists.)

 Andrew,

 How much experience do you have with Ethernet pause-frame flow
 control? It caused us a bunch of problems and judging by the lists
 over the last 8 months or so, it creates huge customer support
 problems.

 -Marc

> 
> 

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


[Discuss-gnuradio] QAM/OFDM modules in GRC

2011-03-01 Thread Varun Krishnamurthy
Hi,

I just wanted to know if the QAM and OFDM modulation modules provided in GRC
are completely functioning or not.As last time I tried they were not ready.
If yes, which version of GRC has to be used.


Thanking you
Kind Regards
Varun K
___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


[Discuss-gnuradio] OFDM implementation

2011-03-01 Thread Varun Krishnamurthy
Hi,

I want to implement OFDM on gnu radio platform.
Is it possible to simulate the code provided without using the hardware .
Ben told me to use the Benchmark ofdm code. I wanted to know whether there
is some documentation for it or not.

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


Re: [Discuss-gnuradio] Re: UHD Announcement - February 25rd 2011

2011-03-01 Thread Feng Andrew Ge

Josh,

That's great, thanks.

When using UHD in GNU Radio, I observed huge time overhead: for example, 
using the raw_Ethernet code and 500kb/s, tunnel.py has only about 8 ms 
ping RTT time between two nodes; now with UHD, I have 17ms in average. 
As I increase the ping payload, the overhead time (excluding the extra 
data communication time) increases accordingly.  Since USRP2 by default 
sends data samples immediately and the RTT time between UHD and USRP2 is 
negligible, I think that the interface between UHD and GNU Radio is 
introducing some overhead.  Do you have any thought on this?


Would you tell me what threads are running in UHD when 
uhd_single_usrp_sink and uhd_single_usrp_source is called? It seems that 
at least two threads are called for each.


Is it right that the maximum amount of data that each socket.send() or 
socket.recv() can operate is dynamically determined by 
noutput_items/ninput_items from the general work function in 
uhd_single_usrp_*?  Originally I thought the num_recv_frames have 
control over this; but I noticed that the UDP transport document is 
updated: "*Note1:* num_recv_frames and num_send_frames do not affect 
performance."



Andrew


On 03/01/2011 02:45 PM, Josh Blum wrote:

Thanks a lot for the explanation.


To explain your observations for the curious:

Prior to the fix, a recv buffer would be lost to the transport layer on
each timeout (thanks to an optimization I made earlier).

So, for every 100ms window (the default timeout) that did not have at
least 90 packets transmitted. A receive buffer was lost. After 32
timeouts, there were no more available buffers and the flow control
throttled back.

-Josh

answers below:


When you say 90 packets, I assume that you mean UDP packets (which
contain samples). Given the default MTU (1500-8-20)B and 2 samples per
symbol as well as 4B per sample, for BPSK or GMSK, 90 packets of samples
correspond to 90*1472/(2*4*8)=2070B of user data. If I use 1500B per
user packet, that's less than 2 packets. For 700 UDP packets, that's
about 10 user packets. This actually explains what I observed, after
about 10 user packets, my transmission stopped. According to you, the
host blocked first. However, it seemed that USRP didn't send back update
packets for some reason--which is unusual. So it's likely timeout was
called.  To help my understanding what caused the above behavior, would
you please spend little time answering the following questions?

(1) Which parameter (*ups_per_fifo or **ups_per_sec*) corresponds to the
above control parameter here (90 transmission packets and 700 packets
update)? (2) How is the update packet generated on USRP?  (3) In normal
cases, when the host transmits a packet, does it specify a transmission
time for USRP? If so, it must get the clock of USRP first and then leave
some margin, this introduce some time overhead; if not, does the USRP
send whatever it receives immediately? (4) What's the content of the
short update packet?


1) ups_per_fifo

2) it counts the number of transmitted packets, and sends an update
packet every nth packet (default n = 90)

3) a transmission time is optional, when not specified the send is immediate

4) the sequence of the last transmitted packet


Andrew

On 02/28/2011 05:58 PM, Josh Blum wrote:

A brief description on the flow control implementation:

The flow control is only used on the transmit size to throttle the host
calls to send(). Update packets are received by the host every 90
transmitted packets. If the host does not get an update packet after
about 700 packets, the calls to send will block until the an update
packet arrives or timeout.

This does not incur any overhead on receive. Update packets are small,
have their own dedicated udp port, and arrive infrequently. The overhead
on the transmit side is a check of the flow control condition per
packet. Which looks like this:
return seq_type(_last_seq_out -_last_seq_ack)<   _max_seqs_out;

-josh

On 02/28/2011 02:42 PM, Feng Andrew Ge wrote:

Marc,

Unfortunately I don't much experience  with Ethernet pause-frame flow
control.  For my applications, sending is not an issue since we don't
send high data rates; we are more concerned at the receiver side,
particularly its latency (which is related to CPU consumption too.)

Andrew


On 02/28/2011 05:19 PM, Marc Epard wrote:

On Feb 28, 2011, at 3:54 PM, Feng Andrew Ge wrote:


Josh,

I haven't found time to try what you suggested yet; however, it would
be nice that the user has the option to choose host-side flow
control.  In principle, I don't fully trust host-side flow control
simply because there is too much uncertainty in a general-purpose
processor (determined by both its hardware architecture and OS).

Andrew

(We should probably move this to one of the public lists.)

Andrew,

How much experience do you have with Ethernet pause-frame flow
control? It caused us a bunch of problems and judging by the lists
over the last 8 months or so, it creates huge customer su

Re: [Discuss-gnuradio] GRC + N210 + RFX2200 + UHD not working

2011-03-01 Thread Phelps Williams
Hmm, when running git branch --track gr_uhd_next jblum/gr_uhd_next

I get the error fatal: Not a valid object name: 'jblum/gr_uhd_next'.

Has something changed within the past few days?

-Phelps

On Thu, Feb 24, 2011 at 10:15 PM, Josh Blum  wrote:

>
>
> On 02/24/2011 09:43 PM, Phelps Williams wrote:
> > I'm using grc to generate some extremely simple flowgraphs but I'm seeing
> > very odd performance.  Any idea why I can't seem to get this combination
> to
> > work?  I have had success with a GRC + USRP2 + WBX + UHD, anybody know
> why
> > I'm having issues here?
> >
>
> Are you saying that if you run the same flow graph, host pc, ethernet
> port, and software install on the USRP2 + WBX, you do not see this problem?
>
> I am confused about the one hardware not working while the other does,
> because its functionally identical. Just wondering if we can isolate
> this problem to a particular machine, software install, etc... instead.
>
> > UHD source block got error code 0x1
> > gr_block_executor: source  produced
> no
> > output.  We're marking it DONE.
> >
>
> This is the call to recv() on the udp socket timing out. Either data
> isnt coming over the ethernet cable for some reason recv()/select()
> error-ed.
>
> In any case, do you mind trying the next branch?
>
> In the uhd repo:
> git remote update
> git branch --track next origin/next
> git checkout next
> cd host/build && make install..
>
> and for gnuradio
> git remote add jblum git://gnuradio.org/jblum.git
> git remote update
> git branch --track gr_uhd_next jblum/gr_uhd_next
> git checkout gr_uhd_next
> make install...
>
> -josh
>
> ___
> Discuss-gnuradio mailing list
> Discuss-gnuradio@gnu.org
> http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>
___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] GRC + N210 + RFX2200 + UHD not working

2011-03-01 Thread Josh Blum


On 03/01/2011 12:50 PM, Phelps Williams wrote:
> Hmm, when running git branch --track gr_uhd_next jblum/gr_uhd_next
> 
> I get the error fatal: Not a valid object name: 'jblum/gr_uhd_next'.
> 
> Has something changed within the past few days?
> 

It has been merged into gnuradio.git/next branch.

Thanks,
-josh

> -Phelps
> 
> On Thu, Feb 24, 2011 at 10:15 PM, Josh Blum  wrote:
> 
>>
>>
>> On 02/24/2011 09:43 PM, Phelps Williams wrote:
>>> I'm using grc to generate some extremely simple flowgraphs but I'm seeing
>>> very odd performance.  Any idea why I can't seem to get this combination
>> to
>>> work?  I have had success with a GRC + USRP2 + WBX + UHD, anybody know
>> why
>>> I'm having issues here?
>>>
>>
>> Are you saying that if you run the same flow graph, host pc, ethernet
>> port, and software install on the USRP2 + WBX, you do not see this problem?
>>
>> I am confused about the one hardware not working while the other does,
>> because its functionally identical. Just wondering if we can isolate
>> this problem to a particular machine, software install, etc... instead.
>>
>>> UHD source block got error code 0x1
>>> gr_block_executor: source  produced
>> no
>>> output.  We're marking it DONE.
>>>
>>
>> This is the call to recv() on the udp socket timing out. Either data
>> isnt coming over the ethernet cable for some reason recv()/select()
>> error-ed.
>>
>> In any case, do you mind trying the next branch?
>>
>> In the uhd repo:
>> git remote update
>> git branch --track next origin/next
>> git checkout next
>> cd host/build && make install..
>>
>> and for gnuradio
>> git remote add jblum git://gnuradio.org/jblum.git
>> git remote update
>> git branch --track gr_uhd_next jblum/gr_uhd_next
>> git checkout gr_uhd_next
>> make install...
>>
>> -josh
>>
>> ___
>> Discuss-gnuradio mailing list
>> Discuss-gnuradio@gnu.org
>> http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>>
> 

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


Re: [Discuss-gnuradio] Re: UHD Announcement - February 25rd 2011

2011-03-01 Thread Josh Blum


On 03/01/2011 12:52 PM, Feng Andrew Ge wrote:
> Josh,
> 
> That's great, thanks.
> 
> When using UHD in GNU Radio, I observed huge time overhead: for example,
> using the raw_Ethernet code and 500kb/s, tunnel.py has only about 8 ms
> ping RTT time between two nodes; now with UHD, I have 17ms in average.
> As I increase the ping payload, the overhead time (excluding the extra
> data communication time) increases accordingly.  Since USRP2 by default
> sends data samples immediately and the RTT time between UHD and USRP2 is
> negligible, I think that the interface between UHD and GNU Radio is
> introducing some overhead.  Do you have any thought on this?
> 

The ping time is talking to the embedded cpu and is not a reflection of
the latency when dealing with data/samples. For a better explanation,
see:
http://lists.ettus.com/pipermail/usrp-users_lists.ettus.com/2011-January/000521.html


Also, make sure you pull the latest gnuradio next branch. I pushed that
diff I sent you earlier in regards to the time stamps. With the latest
change, all packets are sent ASAP in the single channel case.

> Would you tell me what threads are running in UHD when
> uhd_single_usrp_sink and uhd_single_usrp_source is called? It seems that
> at least two threads are called for each.
> 

In reference to what runs on the latest master in uhd:

For a USB device (USRP1) there is a thread running libusb async
transactions.

For a network device (USRP2/N210) there is a thread receiving async
message packets, these include flow control updates and transmit error
notifications.

The other threads you see (and the ones with any major overhead) are the
threads in gnuradio (thread-per-block scheduler)

> Is it right that the maximum amount of data that each socket.send() or
> socket.recv() can operate is dynamically determined by
> noutput_items/ninput_items from the general work function in

correct

> uhd_single_usrp_*?  Originally I thought the num_recv_frames have
> control over this; but I noticed that the UDP transport document is
> updated: "*Note1:* num_recv_frames and num_send_frames do not affect
> performance."
> 

Those refer to number of buffers allocated. But in the UDP
implementation, buffers are used and disposed of synchronously, so you
only ever need a few.

In the libusb implementation, buffers are processed asynchronously, so
you can potentially have all the buffers being emptied/filled in the
background, so altering those values may make sense to do.

-Josh

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


Re: [Discuss-gnuradio] Re: UHD Announcement - February 25rd 2011

2011-03-01 Thread Feng Andrew Ge

Josh,

First of all, I am aware of what you pointed out and I did use the code 
latency_test.cpp for measuring latency between USRP2 and a host.  The 
latency is negligible.


I think I was not clear enough in my previous email.
My setting is this: host_1--USRP2_1   talks to  host_2--USRP2_2.  The 
latency I measured is based on GNU Radio-created wireless network 
interface, e.g., gr0.  I started tunnel.py and created a digital link 
between host_1 and host_2; then I compared ping RTT time performance 
between using the UHD code and using the Raw_Ethernet code base.  UHD 
introduced 9 ms of overhead and I am really puzzled about this. Since 
USRP2 sends samples immediately out and the latency between the host and 
USRP2 is negligible, the likely place I can think of is the interface 
between UHD and GNU Radio, for example, can UDP packet sending be 
preempted by other threads? Each time how many UDP packets can be 
possibly sent out?


Another possibility is how you allocate CPU resources in handling UHD 
and what the impact might be.


The third possibility is buffer management: how do you handle buffer 
management in UHD for sending and receiving? How do data stay in those 
buffers and how are data are processed, by FIFO or LIFO? If overflow 
happens, will newly coming packets get simply dropped?


Andrew


On 03/01/2011 04:18 PM, Josh Blum wrote:

On 03/01/2011 12:52 PM, Feng Andrew Ge wrote:

>  Josh,
>  
>  That's great, thanks.
>  
>  When using UHD in GNU Radio, I observed huge time overhead: for example,

>  using the raw_Ethernet code and 500kb/s, tunnel.py has only about 8 ms
>  ping RTT time between two nodes; now with UHD, I have 17ms in average.
>  As I increase the ping payload, the overhead time (excluding the extra
>  data communication time) increases accordingly.  Since USRP2 by default
>  sends data samples immediately and the RTT time between UHD and USRP2 is
>  negligible, I think that the interface between UHD and GNU Radio is
>  introducing some overhead.  Do you have any thought on this?
>  

The ping time is talking to the embedded cpu and is not a reflection of
the latency when dealing with data/samples. For a better explanation,
see:
http://lists.ettus.com/pipermail/usrp-users_lists.ettus.com/2011-January/000521.html


Also, make sure you pull the latest gnuradio next branch. I pushed that
diff I sent you earlier in regards to the time stamps. With the latest
change, all packets are sent ASAP in the single channel case.




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


[Discuss-gnuradio] gnuradio.org down? - everybody panic

2011-03-01 Thread Josh Blum

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


[Discuss-gnuradio] gnuradio.org down?

2011-03-01 Thread Douglas Geiger
Looks like the gnuradio.org server (web/git) is down.
 Doug

-- 
Doug Geiger
doug.gei...@bioradiation.net

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


Re: [Discuss-gnuradio] Re: UHD Announcement - February 25rd 2011

2011-03-01 Thread Josh Blum


On 03/01/2011 02:21 PM, Feng Andrew Ge wrote:
> Josh,
> 
> First of all, I am aware of what you pointed out and I did use the code
> latency_test.cpp for measuring latency between USRP2 and a host.  The
> latency is negligible.
> 

Ok, i see. You were measuring the ping time over the tunnel. :-)

Can you tell me: Is this a new problem with UHD since the " February
25rd 2011" announcement. That is, was it working properly for you
previously?

> I think I was not clear enough in my previous email.
> My setting is this: host_1--USRP2_1   talks to  host_2--USRP2_2.  The
> latency I measured is based on GNU Radio-created wireless network
> interface, e.g., gr0.  I started tunnel.py and created a digital link
> between host_1 and host_2; then I compared ping RTT time performance
> between using the UHD code and using the Raw_Ethernet code base.  UHD
> introduced 9 ms of overhead and I am really puzzled about this. Since

I am puzzled as well. 9ms sounds pretty bad. Is this a port of tunnel.py
to UHD, can you share it?

> USRP2 sends samples immediately out and the latency between the host and
> USRP2 is negligible, the likely place I can think of is the interface
> between UHD and GNU Radio, for example, can UDP packet sending be
> preempted by other threads? Each time how many UDP packets can be
> possibly sent out?
> 

The work function is called with a randomly sized buffer determined by
the scheduler. The number of packets received or sent depends on the
size of the buffer when the work() function is called.

I think this is exactly the same for the raw_ethernet driver.

It may be helpful to print the number of items in the work function. It
seems to be in the 10s of thousands of samples last I looked.

When you compared UHD vs raw_ethernet driver, it was all the same
version of gnuradio, correct?

> Another possibility is how you allocate CPU resources in handling UHD
> and what the impact might be.
> 
> The third possibility is buffer management: how do you handle buffer
> management in UHD for sending and receiving? How do data stay in those
> buffers and how are data are processed, by FIFO or LIFO? If overflow
> happens, will newly coming packets get simply dropped?
> 

Nothing gets buffered in the UHD in the usrp2/n210 implementation.
However, there is a kernel socket buffer on receive that has enough
buffering for a second of samples. Once this buffer fills, newer packets
are dropped.

I also believe that this is the same on the raw ethernet driver.

-josh

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


Re: [Discuss-gnuradio] gnuradio.org down? - everybody panic

2011-03-01 Thread Jeffrey Lambert

Yes, It has been down for at least a few hours...

On 3/1/2011 5:59 PM, Josh Blum wrote:

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




--
~Jeffrey Lambert, K1VZX


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


Re: [Discuss-gnuradio] Re: UHD Announcement - February 25rd 2011

2011-03-01 Thread Josh Blum


On 03/01/2011 03:25 PM, Feng Andrew Ge wrote:
> Josh,
> 
> Everything is in the attachment, look for python-based UHD_* code.
> 
> The performance before and after Feb.25 was both poor. At one point
> before Feb. 25, the latency was even worse, up to >30ms. But I forgot
> the time.
> 
> In terms of GNU Radio, for running UHD I checked out next from GNU Radio
> git.  However, for raw Ethernet, I only ran GNU Radio 3.3.0.  I haven't
> found time to check GNU Radio changes yet, what might cause such huge
> performance drop.
> 

Andrew,

Here is an idea that may explain your problem:

When the raw ethernet source calls into work(), it does not attempt to
fill the entire buffer (noutput_items). Rather, it waits at least one
packet to become available and then copies only the data that is
available immediately into the buffer.

In contrast, the UHD work function is bandwidth optimized and tries to
fill the entire buffer. At your sample rate (500ksps), this will impose
serious delays for very large noutput_items (10s of thousands). I hope
that explains the issue you see.

I am going to attempt a modification to the work function, where we recv
a single packet with timeout, and then anything else that is available
without waiting.

I will let you know when I post a branch with changes.
-Josh

> 
> Andrew
> 
> On 03/01/2011 06:13 PM, Josh Blum wrote:
>>
>> On 03/01/2011 02:21 PM, Feng Andrew Ge wrote:
>>> Josh,
>>>
>>> First of all, I am aware of what you pointed out and I did use the code
>>> latency_test.cpp for measuring latency between USRP2 and a host.  The
>>> latency is negligible.
>>>
>> Ok, i see. You were measuring the ping time over the tunnel. :-)
>>
>> Can you tell me: Is this a new problem with UHD since the " February
>> 25rd 2011" announcement. That is, was it working properly for you
>> previously?
>>
>>> I think I was not clear enough in my previous email.
>>> My setting is this: host_1--USRP2_1   talks to  host_2--USRP2_2.  The
>>> latency I measured is based on GNU Radio-created wireless network
>>> interface, e.g., gr0.  I started tunnel.py and created a digital link
>>> between host_1 and host_2; then I compared ping RTT time performance
>>> between using the UHD code and using the Raw_Ethernet code base.  UHD
>>> introduced 9 ms of overhead and I am really puzzled about this. Since
>> I am puzzled as well. 9ms sounds pretty bad. Is this a port of tunnel.py
>> to UHD, can you share it?
>>
>>> USRP2 sends samples immediately out and the latency between the host and
>>> USRP2 is negligible, the likely place I can think of is the interface
>>> between UHD and GNU Radio, for example, can UDP packet sending be
>>> preempted by other threads? Each time how many UDP packets can be
>>> possibly sent out?
>>>
>> The work function is called with a randomly sized buffer determined by
>> the scheduler. The number of packets received or sent depends on the
>> size of the buffer when the work() function is called.
>>
>> I think this is exactly the same for the raw_ethernet driver.
>>
>> It may be helpful to print the number of items in the work function. It
>> seems to be in the 10s of thousands of samples last I looked.
>>
>> When you compared UHD vs raw_ethernet driver, it was all the same
>> version of gnuradio, correct?
>>
>>> Another possibility is how you allocate CPU resources in handling UHD
>>> and what the impact might be.
>>>
>>> The third possibility is buffer management: how do you handle buffer
>>> management in UHD for sending and receiving? How do data stay in those
>>> buffers and how are data are processed, by FIFO or LIFO? If overflow
>>> happens, will newly coming packets get simply dropped?
>>>
>> Nothing gets buffered in the UHD in the usrp2/n210 implementation.
>> However, there is a kernel socket buffer on receive that has enough
>> buffering for a second of samples. Once this buffer fills, newer packets
>> are dropped.
>>
>> I also believe that this is the same on the raw ethernet driver.
>>
>> -josh
> 

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


Re: [Discuss-gnuradio] gnuradio.org down? - everybody panic

2011-03-01 Thread Tom Rondeau
It's back up now.


These things always happen when one's away...

Tom



On Tue, Mar 1, 2011 at 6:17 PM, Jeffrey Lambert  wrote:

> Yes, It has been down for at least a few hours...
>
>
> On 3/1/2011 5:59 PM, Josh Blum wrote:
>
>> ___
>> Discuss-gnuradio mailing list
>> Discuss-gnuradio@gnu.org
>> http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>>
>>
>
> --
> ~Jeffrey Lambert, K1VZX
>
>
>
> ___
> Discuss-gnuradio mailing list
> Discuss-gnuradio@gnu.org
> http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>
___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] WBX - only real signal after some time

2011-03-01 Thread Ruben Undheim
It's working wonderfully now after I moved it to side B. More investigation
is needed to find the problem...
But for the moment I'll just enjoy the working set-up!

(btw: the loss of the complex signal is apparently not the only problem when
it's in slot A. It is also unstable and hangs after a while.. However, when
it's in slot B, everything's fine)

Ruben


2011/1/20 Ruben Undheim 

> Thanks
>
> I am using the traditional driver. Maybe I can try to use another computer
> or to put the board in the other slot,
> and see if the problem remains the same.
>
> Ruben
>
> 2011/1/20 Marcus D. Leech 
>
>  On 01/20/2011 11:40 AM, Ruben Undheim wrote:
>> > Hello.
>> >
>> > I just wondered if anyone else has experienced that the WBX stops
>> > sending the quadrature component of the complex signal after a while.
>> > This happens especially if I have sliders for setting the frequencies
>> > or the gain, and the sliders are slided. (so that a frequency change
>> > control signal is sent several times successively)
>> > In an FFT-sink, this is observed as a display mirrored around the base
>> > frequency.
>> >
>> > I have not found any other solution to fix this than to restart the
>> > whole program every time it happens. This has never happened when
>> > using the TVRX board.
>> The TVRX isn't actually a quadrature front-end, so quadrature is
>> synthesized within the FPGA.
>>
>> >
>> > I wonder if this is normal for these daughterboards, and that one just
>> > has to ensure that they do not get a lot of frequency setting control
>> > messages successively, or if there is a workaround.
>> >
>> I don't think it's normal.  Something definitely wonky.   Are you using
>> UHD, or "traditional" ??
>>
>> There was something *similar* in UHD a couple of months back, but it was
>> for USRP2, so I don't
>>  think that's it.
>>
>>
>> --
>> 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
>>
>
>
___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Re: UHD Announcement - February 25rd 2011

2011-03-01 Thread Feng Andrew Ge

Josh,

Your explanation makes sense.  Is there a quick fix for me to bypass 
this problem temporarily while you are working on the modification.


Further,  following your current bandwidth optimization implementation, 
is the code trying to fill the buffer in both uhd_single_usrp_sink 
(sending buffer) and uhd_single_usrp_source (receiving buffer)?


When I started uhd_benchmark_tx.py, it also asked for specification of 
*recv_buff_size, where is it used? *



On 03/01/2011 07:01 PM, Josh Blum wrote:


On 03/01/2011 03:25 PM, Feng Andrew Ge wrote:

Josh,

Everything is in the attachment, look for python-based UHD_* code.

The performance before and after Feb.25 was both poor. At one point
before Feb. 25, the latency was even worse, up to>30ms. But I forgot
the time.

In terms of GNU Radio, for running UHD I checked out next from GNU Radio
git.  However, for raw Ethernet, I only ran GNU Radio 3.3.0.  I haven't
found time to check GNU Radio changes yet, what might cause such huge
performance drop.


Andrew,

Here is an idea that may explain your problem:

When the raw ethernet source calls into work(), it does not attempt to
fill the entire buffer (noutput_items). Rather, it waits at least one
packet to become available and then copies only the data that is
available immediately into the buffer.

In contrast, the UHD work function is bandwidth optimized and tries to
fill the entire buffer. At your sample rate (500ksps), this will impose
serious delays for very large noutput_items (10s of thousands). I hope
that explains the issue you see.

I am going to attempt a modification to the work function, where we recv
a single packet with timeout, and then anything else that is available
without waiting.

I will let you know when I post a branch with changes.
-Josh


Andrew

On 03/01/2011 06:13 PM, Josh Blum wrote:

On 03/01/2011 02:21 PM, Feng Andrew Ge wrote:

Josh,

First of all, I am aware of what you pointed out and I did use the code
latency_test.cpp for measuring latency between USRP2 and a host.  The
latency is negligible.


Ok, i see. You were measuring the ping time over the tunnel. :-)

Can you tell me: Is this a new problem with UHD since the " February
25rd 2011" announcement. That is, was it working properly for you
previously?


I think I was not clear enough in my previous email.
My setting is this: host_1--USRP2_1   talks to  host_2--USRP2_2.  The
latency I measured is based on GNU Radio-created wireless network
interface, e.g., gr0.  I started tunnel.py and created a digital link
between host_1 and host_2; then I compared ping RTT time performance
between using the UHD code and using the Raw_Ethernet code base.  UHD
introduced 9 ms of overhead and I am really puzzled about this. Since

I am puzzled as well. 9ms sounds pretty bad. Is this a port of tunnel.py
to UHD, can you share it?


USRP2 sends samples immediately out and the latency between the host and
USRP2 is negligible, the likely place I can think of is the interface
between UHD and GNU Radio, for example, can UDP packet sending be
preempted by other threads? Each time how many UDP packets can be
possibly sent out?


The work function is called with a randomly sized buffer determined by
the scheduler. The number of packets received or sent depends on the
size of the buffer when the work() function is called.

I think this is exactly the same for the raw_ethernet driver.

It may be helpful to print the number of items in the work function. It
seems to be in the 10s of thousands of samples last I looked.

When you compared UHD vs raw_ethernet driver, it was all the same
version of gnuradio, correct?


Another possibility is how you allocate CPU resources in handling UHD
and what the impact might be.

The third possibility is buffer management: how do you handle buffer
management in UHD for sending and receiving? How do data stay in those
buffers and how are data are processed, by FIFO or LIFO? If overflow
happens, will newly coming packets get simply dropped?


Nothing gets buffered in the UHD in the usrp2/n210 implementation.
However, there is a kernel socket buffer on receive that has enough
buffering for a second of samples. Once this buffer fills, newer packets
are dropped.

I also believe that this is the same on the raw ethernet driver.

-josh


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


Re: [Discuss-gnuradio] GRC + N210 + RFX2200 + UHD not working

2011-03-01 Thread Phelps Williams
I think I have isolated the issue to uhd.  I used the following procedure
and the benchmark_rx_rate test program appears to show the issue I've been
experiencing.  I have performed the same test with a USRP2 and a WBX
daughterboard and no errors occurred.

git clone git://code.ettus.com/ettus/uhd.git
cd {UHD_ROOT}
git remote update
git branch --track next origin/next
git checkout next
cd {UHD_ROOT}/host
mkdir build
cd build
cmake ../
make
make test
sudo make install
sudo ldconfig

cd /usr/local/share/uhd/examples
./benchmark_rx_rate
linux; GNU C++ version 4.4.1; Boost_103800; UHD_003.20110226000831.77641c6


Creating the usrp device with: ...
Current recv sock buff size: 5000 bytes
mboard0 MIMO master
Using Device: Single USRP:
  Device: USRP2/N Series device
  Mboard 0: USRP-N210 mboard
  RX DSP 0: USRP-N210 ddc0
  RX Channel: 0
RX Dboard: USRP-N210 dboard (rx unit)
RX Subdev: RFX2200 (0x002c)
  TX DSP 0: USRP-N210 duc0
  TX Channel: 0
TX Dboard: USRP-N210 dboard (tx unit)
TX Subdev: RFX2200 (0x002d)

Testing receive rate 0.50 Msps (10.00 second run)
Error code: 1
Unexpected error on recv, exit test...
Testing receive rate 1.00 Msps (10.00 second run)
Error code: 1
Unexpected error on recv, exit test...
Testing receive rate 2.00 Msps (10.00 second run)
Error code: 1
Unexpected error on recv, exit test...
Testing receive rate 4.00 Msps (10.00 second run)
Error code: 1
Unexpected error on recv, exit test...

Warning:
The hardware does not support the requested RX sample rate:
Target sample rate: 8.00 MSps
Actual sample rate: 8.33 MSps
Testing receive rate 8.33 Msps (10.00 second run)
Error code: 1
Unexpected error on recv, exit test...
Testing receive rate 16.67 Msps (10.00 second run)
Error code: 1
Unexpected error on recv, exit test...

Warning:
The hardware does not support the requested RX sample rate:
Target sample rate: 33.33 MSps
Actual sample rate: 25.00 MSps
Testing receive rate 25.00 Msps (10.00 second run)
Error code: 1
Unexpected error on recv, exit test...

Warning:
The hardware does not support the requested RX sample rate:
Target sample rate: 50.00 MSps
Actual sample rate: 25.00 MSps

Done!




On Tue, Mar 1, 2011 at 1:07 PM, Josh Blum  wrote:

>
>
> On 03/01/2011 12:50 PM, Phelps Williams wrote:
> > Hmm, when running git branch --track gr_uhd_next jblum/gr_uhd_next
> >
> > I get the error fatal: Not a valid object name: 'jblum/gr_uhd_next'.
> >
> > Has something changed within the past few days?
> >
>
> It has been merged into gnuradio.git/next branch.
>
> Thanks,
> -josh
>
> > -Phelps
> >
> > On Thu, Feb 24, 2011 at 10:15 PM, Josh Blum  wrote:
> >
> >>
> >>
> >> On 02/24/2011 09:43 PM, Phelps Williams wrote:
> >>> I'm using grc to generate some extremely simple flowgraphs but I'm
> seeing
> >>> very odd performance.  Any idea why I can't seem to get this
> combination
> >> to
> >>> work?  I have had success with a GRC + USRP2 + WBX + UHD, anybody know
> >> why
> >>> I'm having issues here?
> >>>
> >>
> >> Are you saying that if you run the same flow graph, host pc, ethernet
> >> port, and software install on the USRP2 + WBX, you do not see this
> problem?
> >>
> >> I am confused about the one hardware not working while the other does,
> >> because its functionally identical. Just wondering if we can isolate
> >> this problem to a particular machine, software install, etc... instead.
> >>
> >>> UHD source block got error code 0x1
> >>> gr_block_executor: source 
> produced
> >> no
> >>> output.  We're marking it DONE.
> >>>
> >>
> >> This is the call to recv() on the udp socket timing out. Either data
> >> isnt coming over the ethernet cable for some reason recv()/select()
> >> error-ed.
> >>
> >> In any case, do you mind trying the next branch?
> >>
> >> In the uhd repo:
> >> git remote update
> >> git branch --track next origin/next
> >> git checkout next
> >> cd host/build && make install..
> >>
> >> and for gnuradio
> >> git remote add jblum git://gnuradio.org/jblum.git
> >> git remote update
> >> git branch --track gr_uhd_next jblum/gr_uhd_next
> >> git checkout gr_uhd_next
> >> make install...
> >>
> >> -josh
> >>
> >> ___
> >> Discuss-gnuradio mailing list
> >> Discuss-gnuradio@gnu.org
> >> http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
> >>
> >
>
___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Re: UHD Announcement - February 25rd 2011

2011-03-01 Thread Josh Blum


On 03/01/2011 04:39 PM, Feng Andrew Ge wrote:
> Josh,
> 
> Your explanation makes sense.  Is there a quick fix for me to bypass
> this problem temporarily while you are working on the modification.
> 

http://gnuradio.org/cgit/jblum.git/commit/?id=75538e12300cb0d593792a986841ba2df9997c54

:-)

> Further,  following your current bandwidth optimization implementation,
> is the code trying to fill the buffer in both uhd_single_usrp_sink
> (sending buffer) and uhd_single_usrp_source (receiving buffer)?
> 

For the source, the work function waits for the entire RX buffer to be
filled with samples. I strongly believe this is the cause of the latency.

For the sink, the work function sends the entire buffer. This is correct
behavior for optimum latency and bandwidth.

> When I started uhd_benchmark_tx.py, it also asked for specification of
> *recv_buff_size, where is it used? *
> 

http://www.ettus.com/uhd_docs/manual/html/transport.html#resize-socket-buffers

-Josh
> 
> On 03/01/2011 07:01 PM, Josh Blum wrote:
>>
>> On 03/01/2011 03:25 PM, Feng Andrew Ge wrote:
>>> Josh,
>>>
>>> Everything is in the attachment, look for python-based UHD_* code.
>>>
>>> The performance before and after Feb.25 was both poor. At one point
>>> before Feb. 25, the latency was even worse, up to>30ms. But I forgot
>>> the time.
>>>
>>> In terms of GNU Radio, for running UHD I checked out next from GNU Radio
>>> git.  However, for raw Ethernet, I only ran GNU Radio 3.3.0.  I haven't
>>> found time to check GNU Radio changes yet, what might cause such huge
>>> performance drop.
>>>
>> Andrew,
>>
>> Here is an idea that may explain your problem:
>>
>> When the raw ethernet source calls into work(), it does not attempt to
>> fill the entire buffer (noutput_items). Rather, it waits at least one
>> packet to become available and then copies only the data that is
>> available immediately into the buffer.
>>
>> In contrast, the UHD work function is bandwidth optimized and tries to
>> fill the entire buffer. At your sample rate (500ksps), this will impose
>> serious delays for very large noutput_items (10s of thousands). I hope
>> that explains the issue you see.
>>
>> I am going to attempt a modification to the work function, where we recv
>> a single packet with timeout, and then anything else that is available
>> without waiting.
>>
>> I will let you know when I post a branch with changes.
>> -Josh
>>
>>> Andrew
>>>
>>> On 03/01/2011 06:13 PM, Josh Blum wrote:
 On 03/01/2011 02:21 PM, Feng Andrew Ge wrote:
> Josh,
>
> First of all, I am aware of what you pointed out and I did use the
> code
> latency_test.cpp for measuring latency between USRP2 and a host.  The
> latency is negligible.
>
 Ok, i see. You were measuring the ping time over the tunnel. :-)

 Can you tell me: Is this a new problem with UHD since the " February
 25rd 2011" announcement. That is, was it working properly for you
 previously?

> I think I was not clear enough in my previous email.
> My setting is this: host_1--USRP2_1   talks to  host_2--USRP2_2.  The
> latency I measured is based on GNU Radio-created wireless network
> interface, e.g., gr0.  I started tunnel.py and created a digital link
> between host_1 and host_2; then I compared ping RTT time performance
> between using the UHD code and using the Raw_Ethernet code base.  UHD
> introduced 9 ms of overhead and I am really puzzled about this. Since
 I am puzzled as well. 9ms sounds pretty bad. Is this a port of
 tunnel.py
 to UHD, can you share it?

> USRP2 sends samples immediately out and the latency between the
> host and
> USRP2 is negligible, the likely place I can think of is the interface
> between UHD and GNU Radio, for example, can UDP packet sending be
> preempted by other threads? Each time how many UDP packets can be
> possibly sent out?
>
 The work function is called with a randomly sized buffer determined by
 the scheduler. The number of packets received or sent depends on the
 size of the buffer when the work() function is called.

 I think this is exactly the same for the raw_ethernet driver.

 It may be helpful to print the number of items in the work function. It
 seems to be in the 10s of thousands of samples last I looked.

 When you compared UHD vs raw_ethernet driver, it was all the same
 version of gnuradio, correct?

> Another possibility is how you allocate CPU resources in handling UHD
> and what the impact might be.
>
> The third possibility is buffer management: how do you handle buffer
> management in UHD for sending and receiving? How do data stay in those
> buffers and how are data are processed, by FIFO or LIFO? If overflow
> happens, will newly coming packets get simply dropped?
>
 Nothing gets buffered in the UHD in the usrp2/n210 implementation.
 However, there is a k

[Discuss-gnuradio] Zynq-7000

2011-03-01 Thread Jordan Hayes
Just saw that Xilinx has announced the Zynq-7000 family -- chips that 
combine a dual-core ARM Cortex-A9 processor and peripherals with 
programmable logic cells (i.e., FPGA fabric).  Seems like this could 
make a pretty good base for an embedded gnuradio platform.  Anyone 
looked at this yet?


Details at 
http://www.xilinx.com/publications/prod_mktg/zynq7000/Product-Brief.pdf


/jordan 



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


[Discuss-gnuradio] new feature work: qtgui support in grc

2011-03-01 Thread Josh Blum
Hey list,

I have been working on supporting PyQt widgets and the qtgui sinks in
the Gnuradio Companion. Get the code on my wip/qtgui/grc branch on
jblum.git http://gnuradio.org/cgit/jblum.git/log/?h=wip/qtgui/grc

Available widgets:
 * qtgui plotter (dft, scope, etc)
 * tabbed panel
 * slider
 * combo box
 * radio buttons
 * text entry
 * label

1) The slider adds a new requirement of PyQwt (python Qwt bindings). Qwt
should already be installed for the qtgui sinks themselves.

2) The qtgui and wxgui widgets are distinctly separated. Previously, the
"variable slider" was a wx slider form. Now, there is a WX GUI Slider
and a QT GUI Slider. And the generate options now have a QT GUI option.
You cannot mix and match widgets from different graphics libraries.

3) No attempt was made to make the existence of different graphics
toolkits transparent to the user. That would have been a huge pain on my
part and I couldn't try new things. If this Qt thing catches on, I am
considering a migration script from wx->qt.

4) The Qt widgets in grc do not have a python wrapper/forms library like
they do in gnuradio. All the generated code uses the PyQt API directly.
This is in-part possible because Qwt supplies its own set of useful
wrappers around Qt widgets. Examples: http://qwt.sourceforge.net/sliders.png

5) Each widget block in grc has a gui hint parameter. This parameter is
a combination of the grid parameter and notebook parameter seen in the
wx widget blocks. It also allowed the implementation code to be a lot
more generic.

Whats missing?
I feel that the widgets still need a bit of polishing. Engineering
notation would be nice. I'd like to see features in the wx scope sink
brought to the qtgui scope such as trigger modes and multiple channels.
I think the qt equivalent of the numbersink would be nice too (and that
could use some of those real fancy qwt widets):
http://read.pudn.com/downloads186/sourcecode/embed/872381/qwt/doc/images/dials2.png

Why qtgui stuff?
The WX stuff in gnuradio is fairly polished in comparison; and when it
works, it works. But we have seen many issues with wx outside of the
linux+x86 world, not to mention opengl issues on the x86. I hope that
the qt stuff is a viable, cross platform option for live gnuradio
plotting and graphical applications.

Please try it out. Feedback is welcome!
-Josh

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


Re: [Discuss-gnuradio] Zynq-7000

2011-03-01 Thread Philip Balister

On 03/01/2011 08:27 PM, Jordan Hayes wrote:

Just saw that Xilinx has announced the Zynq-7000 family -- chips that
combine a dual-core ARM Cortex-A9 processor and peripherals with
programmable logic cells (i.e., FPGA fabric). Seems like this could make
a pretty good base for an embedded gnuradio platform. Anyone looked at
this yet?

Details at
http://www.xilinx.com/publications/prod_mktg/zynq7000/Product-Brief.pdf


Yes, this is an exciting product. Xilinx announced this last April 
during an Embedded Conference. They are slowly releasing technical 
details, but what I haven't seen in the announcements is a solid time 
frame for getting silicon and dev boards :(


Philip

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


Re: [Discuss-gnuradio] FM Receiver

2011-03-01 Thread Anoth

Hi,

I agree that it is a sample rate issue. The USRP sends too many data to the
computer which becomes overrun. As you said, I put a Polyphase Resampler
between the USRP and the WBFM receive blocks (
http://old.nabble.com/file/p31046181/fm_receiver.py fm_receiver.py ). But,
when I execute the flow graph, I get this message :

PCM name: hw:0,0
Access types:
MMAP_INTERLEAVED YES
MMAP_NONINTERLEAVED  NO
MMAP_COMPLEX NO
RW_INTERLEAVED   YES
RW_NONINTERLEAVEDNO
Formats:
S16_LE   YES
Number of channels
min channels: 2
max channels: 2
2 channels  YES
Sample Rates:
min rate:8000 (dir = 0)
max rate:   48000 (dir = 0)
  8000  YES
 16000  YES
 22050  YES
 32000  YES
 44100  YES
 48000  YES
 96000  NO
192000  NO
audio_alsa_sink[hw:0,0]: using S16_LE
>>> gr_fir_ccf: using SSE

>>> Done

Nothing happens and I can no longer see the FFT sink window. By the way,
sorry for the delay of my response, but I have not worked on this project
for a couple of days.

Francois


Tom Rondeau wrote:
> 
> On Thu, Feb 24, 2011 at 10:28 PM, Anoth 
> wrote:
>>
>> Yes, you must be right, I must have made a mistake when I set up the flow
>> graph. How do you know the sample rate delivered by the UHD and how is
>> the
>> Polyphase Resampler implemented into the flow graph ?
>>
>> Francois
> 
> Not entirely sure how to do this in GRC... When you set the sample
> rate of the UHD device, you can request back what it was actually set
> to using "get_samp_rate". So if you were doing this just in Python,
> you can have:
> 
> req_sr = SR
> act_sr = uhd.get_samp_rate()
> resamp_rate = req_sr / act_sr
> resampler = blks2.pfb_arb_resampler(resamp_rate)
> 
> Unless, of course, it's "resamp_rate = act_sr/req_sr". I've been
> working too long today to reason that out.
> 
> I'm sure there is a way to do this in GRC by knowing the name of the
> UHD device and using it; I've just never done it.
> 
> Tom
> 
> 
> 
>> Tom Rondeau wrote:
>>>
>>> On Thu, Feb 24, 2011 at 7:17 PM, Anoth 
>>> wrote:

 Hi Josh,

 Yes, I have already though about that and I tried to match the sample
 and
 sound card rates without success (but I might made a mistake). I have
 also
 read on the Internet that it might come from the sound card which
 cannot
 support all rates but I did not find anything more about that subject.
 Here
 the python code generated by GRC :
 http://old.nabble.com/file/p31009164/wfm_rx.py wfm_rx.py

 Francois
>>>
>>> I think Josh is right and it's a sampling rate error. When you set the
>>> sampling rate of the USRP, ask the UHD driver what the current
>>> sampling rate is. Use what it returns to you to adjust the sampling
>>> rate properly. I ran into this same issue and solved it by using the
>>> pfb_arb_resampler block (Polyphase Resampler in GRC) to adjust the
>>> rates correctly.
>>>
>>> Tom
>>>
>>>
 Josh Blum-2 wrote:
>
>
> gr_fir_ccc: using SSE
>> aUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaU
>>
>
> These characters being printed means that you have mismatched sample
> rates between your USRP device and sound card. Could this be the case?
>
> -josh
>
> ___
> Discuss-gnuradio mailing list
> Discuss-gnuradio@gnu.org
> http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>
>

 --
 View this message in context:
 http://old.nabble.com/FM-Receiver-tp31009069p31009164.html
 Sent from the GnuRadio mailing list archive at Nabble.com.


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

>>>
>>> ___
>>> Discuss-gnuradio mailing list
>>> Discuss-gnuradio@gnu.org
>>> http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>>>
>>>
>>
>> --
>> View this message in context:
>> http://old.nabble.com/FM-Receiver-tp31009069p31010011.html
>> Sent from the GnuRadio mailing list archive at Nabble.com.
>>
>>
>> ___
>> Discuss-gnuradio mailing list
>> Discuss-gnuradio@gnu.org
>> http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>>
> 
> ___
> Discuss-gnuradio mailing list
> Discuss-gnuradio@gnu.org
> http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
> 
> 

-- 
View this message in context: 
http://old.nabble.com/FM-Receiver-tp31009069p31046181.html
Sent from the GnuRadio mailing list archive at Nabble.com.


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


Re: [Discuss-gnuradio] FM Receiver

2011-03-01 Thread Anoth

Hi again,

I resolved my problem without using the Polyphase Resampler. It was a sample
rate issue which did not match the requirements of the audio card. Anyway,
thank you a lot for your help.

Francois


Anoth wrote:
> 
> Hi,
> 
> I agree that it is a sample rate issue. The USRP sends too many data to
> the computer which becomes overrun. As you said, I put a Polyphase
> Resampler between the USRP and the WBFM receive blocks (
> http://old.nabble.com/file/p31046181/fm_receiver.py fm_receiver.py ). But,
> when I execute the flow graph, I get this message :
> 
> PCM name: hw:0,0
> Access types:
> MMAP_INTERLEAVED YES
> MMAP_NONINTERLEAVED  NO
> MMAP_COMPLEX NO
> RW_INTERLEAVED   YES
> RW_NONINTERLEAVEDNO
> Formats:
> S16_LE   YES
> Number of channels
> min channels: 2
> max channels: 2
> 2 channelsYES
> Sample Rates:
> min rate:8000 (dir = 0)
> max rate:   48000 (dir = 0)
>   8000  YES
>  16000  YES
>  22050  YES
>  32000  YES
>  44100  YES
>  48000  YES
>  96000  NO
> 192000  NO
> audio_alsa_sink[hw:0,0]: using S16_LE
 gr_fir_ccf: using SSE
> 
 Done
> 
> Nothing happens and I can no longer see the FFT sink window. By the way,
> sorry for the delay of my response, but I have not worked on this project
> for a couple of days.
> 
> Francois
> 
> 
> Tom Rondeau wrote:
>> 
>> On Thu, Feb 24, 2011 at 10:28 PM, Anoth 
>> wrote:
>>>
>>> Yes, you must be right, I must have made a mistake when I set up the
>>> flow
>>> graph. How do you know the sample rate delivered by the UHD and how is
>>> the
>>> Polyphase Resampler implemented into the flow graph ?
>>>
>>> Francois
>> 
>> Not entirely sure how to do this in GRC... When you set the sample
>> rate of the UHD device, you can request back what it was actually set
>> to using "get_samp_rate". So if you were doing this just in Python,
>> you can have:
>> 
>> req_sr = SR
>> act_sr = uhd.get_samp_rate()
>> resamp_rate = req_sr / act_sr
>> resampler = blks2.pfb_arb_resampler(resamp_rate)
>> 
>> Unless, of course, it's "resamp_rate = act_sr/req_sr". I've been
>> working too long today to reason that out.
>> 
>> I'm sure there is a way to do this in GRC by knowing the name of the
>> UHD device and using it; I've just never done it.
>> 
>> Tom
>> 
>> 
>> 
>>> Tom Rondeau wrote:

 On Thu, Feb 24, 2011 at 7:17 PM, Anoth 
 wrote:
>
> Hi Josh,
>
> Yes, I have already though about that and I tried to match the sample
> and
> sound card rates without success (but I might made a mistake). I have
> also
> read on the Internet that it might come from the sound card which
> cannot
> support all rates but I did not find anything more about that subject.
> Here
> the python code generated by GRC :
> http://old.nabble.com/file/p31009164/wfm_rx.py wfm_rx.py
>
> Francois

 I think Josh is right and it's a sampling rate error. When you set the
 sampling rate of the USRP, ask the UHD driver what the current
 sampling rate is. Use what it returns to you to adjust the sampling
 rate properly. I ran into this same issue and solved it by using the
 pfb_arb_resampler block (Polyphase Resampler in GRC) to adjust the
 rates correctly.

 Tom


> Josh Blum-2 wrote:
>>
>>
>> gr_fir_ccc: using SSE
>>> aUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaUaU
>>>
>>
>> These characters being printed means that you have mismatched sample
>> rates between your USRP device and sound card. Could this be the
>> case?
>>
>> -josh
>>
>> ___
>> Discuss-gnuradio mailing list
>> Discuss-gnuradio@gnu.org
>> http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>>
>>
>
> --
> View this message in context:
> http://old.nabble.com/FM-Receiver-tp31009069p31009164.html
> Sent from the GnuRadio mailing list archive at Nabble.com.
>
>
> ___
> Discuss-gnuradio mailing list
> Discuss-gnuradio@gnu.org
> http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>

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


>>>
>>> --
>>> View this message in context:
>>> http://old.nabble.com/FM-Receiver-tp31009069p31010011.html
>>> Sent from the GnuRadio mailing list archive at Nabble.com.
>>>
>>>
>>> ___
>>> Discuss-gnuradio mailing list
>>> Discuss-gnuradio@gnu.org
>>> http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>>>
>> 
>> ___
>> Discuss-gnuradio mailing list
>> Discuss-gnuradio@gnu

[Discuss-gnuradio] smart pointer problem

2011-03-01 Thread johan kuijpers

Hi,

I'm fighting a bit with a smart pointer. I want to apply a filter in my 
block. Hence I construct a filter as shown below:


gr_fir_filter_fff_sptr hi_pass = gr_make_fir_filter_fff(1, 
gr_firdes::high_pass (1.0,

64000,
5000,
1000,
gr_firdes::WIN_HAMMING,
6.76
));

as soon as I dereference the smart pointer in order to use the filter I 
get an assertion error: const [with T = gr_block_detail]: Assertion `px 
!= 0' failed.


hi_pass->general_work(noutput_items, ninput_items, input_items, 
output_items);


this means the smart pointer doesn't have a pointer (any longer?) to the 
filter. Does anyone see what I'm doing wrong. I've been trying quite 
hard to find the mistake but I simply don't get it.


Cheers,

John.



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