Re: [Douglas Geiger BBN 802.11b] Porting code on USRP2 problems


#1

Hi all,

I’m very interested in the code you are discussing and as a first step I
installed gnuradio and the svn code taken from
https://www.cgran.org/browser/projects/bbn_80211/branches/usrp2_version
on a fedora core 10 and tried to test the bbn_80211b_test.py, but I
encountred this problem:

./bbn_80211b_test.py

gr_fir_ccf: using SSE
Traceback (most recent call last):
File “./bbn_80211b_test.py”, line 120, in
main()
File “./bbn_80211b_test.py”, line 101, in main
tb = my_block(rx_callback, options.spb, options.alpha, options.snr)
File “./bbn_80211b_test.py”, line 53, in init
self.packet_transmitter = bbn_80211b_mod_pkts(spb=spb, alpha=alpha,
gain=1)
File “/root/usrp2_version/gr-bbn/src/examples/bbn_80211b_pkt.py”, line
67, in init
self.xpsk_mod = bbn_80211b.bbn_80211b_mod(*args, **kwargs)
File “/root/usrp2_version/gr-bbn/src/examples/bbn_80211b.py”, line 95,
in init
gr.hier_block2.init(self, “bbn_80211b”, gr.io_signature(1, 1,
gr.sizeof_char), gr.io_signature(1, 2, gr.sizeof_gr_complex))
File
“/usr/local/lib/python2.5/site-packages/gnuradio/gr/hier_block2.py”,
line 42, in init
self._hb = hier_block2_swig(name, input_signature, output_signature)
File
“/usr/local/lib/python2.5/site-packages/gnuradio/gr/gnuradio_swig_py_runtime.py”,
line 1009, in hier_block2_swig
return _gnuradio_swig_py_runtime.hier_block2_swig(*args, **kwargs)
RuntimeError: Hierarchical blocks do not yet support arbitrary or
variable numbers of inputs or outputs (bbn_80211b)

do you have any idea about the origin of this problem? Thank you in
advance.


#2

On Tue, Apr 7, 2009 at 5:02 AM, Ben Yahmed
removed_email_address@domain.invalid wrote:

File “/root/usrp2_version/gr-bbn/src/examples/bbn_80211b.py”, line 95, in
init
gr.hier_block2.init(self, “bbn_80211b”, gr.io_signature(1, 1,
gr.sizeof_char), gr.io_signature(1, 2, gr.sizeof_gr_complex))

RuntimeError: Hierarchical blocks do not yet support arbitrary or
variable numbers of inputs or outputs (bbn_80211b)

The issue is with the output signature being declared in the last part
of the above line. It is trying to create a hierarchical block with a
variable number of output ports. This functionality is not yet
supported. In the past, we silently ignored this, and if the block
didn’t actually try to use the feature, it would work okay. To be
more robust, we recently made this a hard error, which is why the
above error message started happening.

Looking at the code, it appears that all you need to do is change the
line to have an output signature of 1, 1 instead of 1, 2.

Johnathan


#3

Thank you for your help, the error disappeared

Ben Yahmed


#4

Hi all,

Since I have tested the tx code (bbn_80211b_tx_port2.py), I wanted to
run the bbn_80211b_rx.py inorder to capture the packets sent but I
encountred this error:

./bbn_80211b_rx.py

Traceback (most recent call last):
File “./bbn_80211b_rx.py”, line 179, in
main ()
File “./bbn_80211b_rx.py”, line 174, in main
app = app_flow_graph()

File “./bbn_80211b_rx.py”, line 159, in init
self.u = usrp_rx(0, options.decim, options.rx_subdev_spec,
options.width_16, options.verbose, options.gain, options.freq)
File “./bbn_80211b_rx.py”, line 97, in init

self.u.set_decim(decim_rate=(decim * 1.5))

File “/usr/local/lib/python2.5/site-packages/gnuradio/usrp2.py”, line
499, in set_decim
return _usrp2.usrp2_source_32fc_sptr_set_decim(self, *args,
**kwargs)

TypeError: usrp2_source_32fc_sptr_set_decim() takes exactly 2 arguments
(1 given)

do you have any idea about the origin of this problem? Thank you in
advance.

On Mon, Apr 06, 2009 at 04:29:20PM -0300, Tiago Rogério Mück wrote:

/ Updated from the trunk and I’m not getting that msg anymore./
/ /
/ Everything seems to be ok now./

Glad to hear it! Thanks for letting us know.

Eric


#5

Hi Colby!

We have also tried without success.
We have used the TX path from Tiago and a modified version of the RX
path (firmware and FPGA at their latest update).
I also felt confident that the the TX path works, and consequently that
the RX path had some problem.

So we have tried to transmit with the USRP2 and receive with a real
IEEE802.11 chipset (Ralink chipset RT2500).
This chipset has no firmware and we modified the linux driver so as to:

  • avoid mac CRC (Everything received on the MAC layer is passed to the
    higher layers);
  • set fixed modulation schemes (i.e. DBPSK 1Mbps);
  • set PLCP long preamble.
  • set complete monitor/passive mode.

The chipset detects some transmitted frames. This could be an indication
that the PLCP preamble/header is correct (?).
However the PLCP payload is just rubbish.
We have also tried to submit stupid payloads (like ffffffff) and I have
the impression that what we receive is just random. :frowning:

If we obtain some successful result in the next few days, I’ll let you
know!

Best Regards,
Danilo


#6

Hi All,

I’ve been trying to run some hardware tests between two USRP2s, but I
have
had no success in receiving packets. I am using the modified TX from
Tiago.
I feel sorta confident that the TX code works, because when I run the
usrp2_fft.py, I see a wave form being transmitted over the channel.

Has anyone have any success on receiving packets between two USRP2s?
When
RX/TX there is a usrp2::ctor reset db failed error. Could this cause
problems for the RX/TX? I am using the firmware that was shipped with
the
USRP2.

Thanks,
Colby B.

On Wed, Apr 15, 2009 at 10:40 AM, Ben Yahmed <


#7

That’s good news.

The code I sent seemed to be working but i realy didn’t tested it. We
have
only one USRP2 here and we were trying to receive pkts using a 802.11b
PCI
card (Realtek RTL8180L chipset), but without success (some problems with
the
card configuration).

2009/4/17 Valerio, Danilo removed_email_address@domain.invalid


#8

I’m trying to modify the bbn_80211b_rx.py code inorder to receive
packets but in every step I’m facing an AttributeError like:

AttributeError: ‘usrp2_source_32fc_sptr’ object has no attribute
‘make_format’

AttributeError: ‘usrp2_source_32fc_sptr’ object has no attribute
‘set_format’

AttributeError: ‘module’ object has no attribute ‘set_gain’

AttributeError: ‘gr_hier_block2_sptr’ object has no attribute ‘subdev’

It seems that the code has not been switched correctly to work with
usrp2 and still make reference to usrp classes.

Did you try to run the bbn_80211b_rx.py with the usrp2 that you have?

Tiago Rogério Mück wrote: