On Sep 7, 2007, at 2:14 AM, Wojciech Czylok wrote:

Hello,
we are working on a research projekt about wireless sensor networks and got a problem with packet loss under TinyOS 2.0.1 We use micaz family motes and our goal was to build a network topology like a repeater. The mote A sends packets (containing its TOS_NODE_ID and a counter) to its neighbour mote B.
We used the application BlinkToRadio for this purpose.
Mote B uses our application BlinkToRadioReceive. It receives the packet from "A", reads its information and sends a new packet with this information to its neighbour C. This Mote does the same thing as Mote B. The last mote in this chain uses the programm BaseStation and receives the packet. We use the java program Listen to read the packages
from the serial port.

If we set up a 1-to-1 connection between BlinkToRadio and BaseStation (without any repeating motes in between), then we have no packet loss at all. For every mote we add to the chain, the packet loss rises about 2%. The packet loss even occurs, if the motes are lying right next to each other. It also doesn't depend on the period of the timer, which tells the first mote to send packets.
The percentage of packet loss remains.
We wrote a few other test programs to examine this behaviour. So we checked the following:
- storing received packets on the forwarding motes before sending
- using tasks instead of functions in the events
But after all, the packet loss did not improve. The packet loss always rises about 2% for each mote we add. We assume that there is a problem when a mote receives a message and wants to send at the same time.


Output example from Listen. The last two bytes represent the counter:

00 00 00 00 00 04 00 06 00 01 00 35
00 00 00 00 00 04 00 06 00 01 00 36
00 00 00 00 00 04 00 06 00 01 00 37
//PAKETLOSS!
00 00 00 00 00 04 00 06 00 01 00 3A
00 00 00 00 00 04 00 06 00 01 00 3B
// ... //
00 00 00 00 00 04 00 06 00 01 00 83
00 00 00 00 00 04 00 06 00 01 00 84
00 00 00 00 00 04 00 06 00 01 00 85
//PAKETLOSS!
00 00 00 00 00 04 00 06 00 01 00 87
00 00 00 00 00 04 00 06 00 01 00 88


Does anyone have some ideas for a solution or experiences the same problem?


Turn on acknowledgments and retransmit if you don't get an ACK. Note that you probably won't get more than 3 nines of reliability (99.9%) per link with this, as it's possible for a packet to pass CRC at layer 2 yet be corrupted such that it does not get to the proper layer 3. For greater reliability, you need layer 3 acks.

Phil

_______________________________________________
Tinyos-help mailing list
[email protected]
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help

Reply via email to