The groups in our networking class have each built an ad-hoc wireless
networks using a modified version of tunnel.py. For the next step we
want them to develop routing in a multi-hop environment. In the code
that we started them, we pretty much used the same transmit_ and
I figured the easiest way to simulate a larger-scale wireless deployment
would be to decrease the TX amplitude, similar to putting an attenuator
in between the antenna and the USRP. The two places that volume control
is directly used are in setting the receiver gain and setting the
transmitter amplifier. The receiver gain is simply set to its midpoint
by default, and the amplifier is controlled by an application parameter
(12000 by default).
I measured packet reception rates transmitting 1000 small packets across
the air, and I am not able to generate the kind of environment we need.
For amplitudes above 800 or so, it’s basically the case that around
950/1000 packets will be received, and then if I go much lower than that
what happens is the majority of the first k packets are received and
then after that another packet is never seen. K can vary as low at 10
and as high as 1000, but is typically in the 150-700 range. Something in
the tracking or synchronization is going wrong, I think.
Also, these problems seem to be very dependent on frequency in a strange
way; if I send on 2.462G (802.11 Channel 11), I can near-zero loss rates
around amplitude 500 even, but at 2.437G it’s much higher. Since part of
the class is enabling the students design their radios to flexibly
change their behavior as a function of the environment, it’s hard to
design system parameters to make this an interesting task; it seems that
some frequencies are just unusable.
I’m using more or less the same code as
tunnel.py/transmit_path.py/receive_path.py with GMSK modulation and
bitrates varying between 125k, 250k, and 500k.
Does anyone have suggestions as to how to fix this, and/or whether there
is a better way to set up this environment? Sadly, I don’t have enough
lab space to e.g. actually distribute the machines around a large