[Tinyos-devel] lost packets from PC to the mote

Razvan Musaloiu-E. razvanm at cs.jhu.edu
Mon Apr 21 12:06:04 PDT 2008


Hi!

On Mon, 21 Apr 2008, Andreas Koepke wrote:

>>> 2. Due to the temperature dependency of the uC clock speed it may happen
>>>    that the baud rate error is sometimes slightly too large for reliable
>>>    communication. This cause is less likely with slower baud rates
>>>    (they have a smaller initial error).
>> 
>> If this would be the case then the losses should happen even if there are 
>> no packets from the mote to the PC, right? From my tests there are no 
>> losses in that case though.
>
> Correct, now for a little math: At 115200 Bit/s the uC has 86us to process 
> each byte.

115200 bits = 14400 bytes and 1/14400 is about 7e-05. So the MCU has 
around 70us to deal with each byte.

> If both directions are used, this drops to 43us. Scheduling a timer 
> takes about this much in T2. So if the node happens to do something else 
> than mere byte crunching, packets may be lost.

This situation should be indicated by some overflow register from MSP420, 
right?

--
Razvan ME

>>> 3. Can you cross-check with the C++ sf? In our experiments it does not
>>>    loose packets.
>> 
>> Here is what the C++ version says:
>>     >> SF-Server ( SerialComm on device /dev/ttyUSB0 ) : baudrate = 115200 , packets read = 8958 ( dropped = 2678, bad = 0 ) , packets written = 106 ( dropped = 0, total retries: 46 )
>> The packets are not really dropped from the sf client point of view because 
>> the sf is retrying. The number of retries is very high though. :|
>
> Well, yeah but there is some good news hidden here: the first retry is 
> usually successful, and half of the packets are successful at the first 
> attempt.
>
>> -- 
>> Razvan ME
>> 
>>> Best, Andreas
>>> 
>>> Razvan Musaloiu-E.:
>>>> Hi!
>>>> 
>>>> On Sat, 19 Apr 2008, Razvan Musaloiu-E. wrote:
>>>> 
>>>>> Hi!
>>>>> 
>>>>> On Sat, 19 Apr 2008, Vlado Handziski wrote:
>>>>> 
>>>>>> It is a known behavior for which many hypothesis have been made, but no one
>>>>>> has nailed the bug/problem until now. You can dig through the  core WG notes
>>>>>> for some more info on the issues like the different preference to sending
>>>>>> mote->pc direction, etc. Ben has looked into this and it seems it is not a
>>>>>> queue overflow problem. He also experimented with making the ISR reentrant
>>>>>> without noticeable improvement.
>>>>>
>>>>> Thanks for the quick reply. I guess some of the notes you are talking
>>>>> about are these:
>>>>>     http://tinyos.stanford.edu:8000/TinyOS_2.x_WG/05.16.2007
>>>> 
>>>> Some more details: I run the same test code on micaz (on which the
>>>> baudrate is 57600) and no packets were lost. I also lowered the baudrate
>>>> to 57600 for telosb and it also stop losing packets. I only tested with
>>>> low (1 packet/s) data rates from PC to the mote.
>>>> 
>>>> Question for Ben: did you also notice this?
>>>> 
>>>> -- 
>>>> Razvan ME
>>>> 
>>>>>> On Sat, Apr 19, 2008 at 3:47 AM, Razvan Musaloiu-E. 
>>>>>> <razvanm at cs.jhu.edu>
>>>>>> wrote:
>>>>>> 
>>>>>>> Hi!
>>>>>>> 
>>>>>>> I just noticed that when a mote sends a lot of packets to a the PC, the
>>>>>>> packets from the PC to the mote doesn't go reach the user application layer
>>>>>>> some of the time. In the attached archive there is a test program that is
>>>>>>> exposing this. The mote program is sending packets back-to-back while the PC
>>>>>>> program (in Java) is receiving the packets and sends to the mote one packets
>>>>>>> each second. I run the program on telosb in the following way:
>>>>>>> 
>>>>>>> (console 1)$ ./sf 9001 /dev/ttyUSB0 115200
>>>>>>> (console 2)$ java StressSerialTest -comm sf at localhost:9001
>>>>>>> 
>>>>>>> The mote is toggling the blue led each time it receives a packet and it
>>>>>>> should change state each time the RX led from the USB blinks. This doesn't
>>>>>>> always happen: the RX led indicates a receive but the blue doesn't always
>>>>>>> change its state. The (console 1) also shows lines like this:
>>>>>>>        Note: write failed
>>>>>>>        Note: write failed
>>>>>>>        Note: write failed
>>>>>>>        Note: write failed
>>>>>>> 
>>>>>>> Did anyone else notice this behavior?
>>>>>>> 
>>>>>>> -- 
>>>>>>> Razvan ME
>>>>>>> 
>>>>>>> 
>>>> 
>>> 
>> 
>


More information about the Tinyos-devel mailing list