[Tinyos-help] [Shimmer-users] Software auto acknowledgements break packet timestamps in the C2420 driver

Silvan Nellen Nellen at cmc.ca
Mon Nov 22 06:41:51 PST 2010


Hello,

First of all: thank you looking into this!

I updated my codebase to the latest revision and downloaded the Ftsp test application to Shimmer 2. I'm still observing the same behavior I described in my original email: The shimmer 2 mote sends an ACK for every message by the beacon mote, but never replies with a report message. However, if I disable auto acknowledgements (PFLAGS += -DCC2420_NO_ACKNOWLEDGEMENTS) everything works as expected.

Silvan

-----Original Message-----
From: steve ayer [mailto:ayer at handhelds.org] 
Sent: November 22, 2010 9:24 AM
To: Miklos Maroti
Cc: shimmer-users at eecs.harvard.edu; Omprakash Gnawali; Silvan Nellen; TinyOS
Subject: Re: [Shimmer-users] [Tinyos-help] Software auto acknowledgements break packet timestamps in the C2420 driver

aha!

why didn't you say so?  i'll make the change now.

thanks for pointing this out; please tell me when i miss details like 
that when you discover them, it helps me a great deal to have others my 
bugs.

i committed the fix.

thanks again.  silvan, please let me know if this solves your problem 
(if you're using shimmer2, that is).

-steve

On 11/22/2010 08:48 AM, Miklos Maroti wrote:
> Hi Steve,
>
> On Mon, Nov 22, 2010 at 2:35 PM, steve ayer<ayer at handhelds.org>  wrote:
>> hi.
>>
>> miklos, you may be confusing the configurations among the various shimmer
>> revs, which have different pin layouts relative to the cc2420. on shimmer,
>> the sfd signal is routed to a capture-capable pin on the msp430; on
>> shimmer2, due to an oversight it was not, so a capture was manually
>> implemented using an interrupt.  this oversight was corrected for span and
>> shimmer2r.
>
> I am using shimmer2. I know that shimmer2 does not have the hardware
> capture feature and it is implemented in software. However, your
> implementation uses TMilli as a time source and the time
> synchronization on the CC2420 assumes that it has 32khz timers,
> otherwise the TimeSyncPacket interfaces always returns FALSE in
> isValid.
>
>> the code that you sent will break shimmer and shimmer2r, and the fix for
>> shimmer2 was committed in january.
>
> The code I have attached should be applied to shimmer2 only, since it
> does software time capture but uses the 32khz timer to do that!
>
>> silvan, how old is your tinyos-2.x codebase?  is it from the current svn
>> repository at googlecode?
>>
>> i'll be happy to help untangle this problem if it stems from up to date
>> platform code.
>
> We use the latest SVN from google code.
>
> Best,
> Miklos
>
>>
>> -steve
>>
>> On 11/22/2010 03:14 AM, Miklos Maroti wrote:
>>>
>>> Hi Silvan,
>>>
>>> I think the problem is with the configuration of CC2420 on Shimmer. We
>>> have run into this as well. Can you please two files in your
>>> platforms/shimmer/chips/cc2420 with the ones I have attached and check
>>> if this fixes your problem?
>>>
>>> Miklos
>>>
>>> On Mon, Nov 22, 2010 at 1:57 AM, Omprakash Gnawali
>>> <gnawali at cs.stanford.edu>    wrote:
>>>>
>>>> ---------- Forwarded message ----------
>>>> From: Silvan Nellen<Nellen at cmc.ca>
>>>> Date: Mon, Nov 8, 2010 at 7:36 AM
>>>> Subject: [Tinyos-help] Software auto acknowledgements break packet
>>>> timestamps in the C2420 driver
>>>> To:
>>>> "tinyos-help at millennium.berkeley.edu"<tinyos-help at millennium.berkeley.edu>
>>>>
>>>>
>>>> Hello,
>>>>
>>>>
>>>>
>>>> I'm trying to run the FTSP test application (revision 5215 of
>>>> http://tinyos-main.googlecode.com/svn/trunk) as described in
>>>> tinyos-2.x/apps/tests/TestFTSP/Ftsp/README.txt on Shimmer. At first
>>>> the nodes running TestFtspAppC didn't seem to respond to the messages
>>>> sent out by the beacon mote (java FtspDataLogger reported nothing).
>>>> Using a packet sniffer I discovered that the FTSP motes send ACK
>>>> packets for each beacon message but they don't send report messages
>>>> (which would then be picked up by the base station and ultimately be
>>>> displayed by the FtspDataLogger).
>>>>
>>>>
>>>>
>>>> I looked at the CC2420 driver source code in
>>>> tos/chips/cc2420/receive/CC2420ReceiveP.nc and used printf to see
>>>> what's going on, and I think I found the problem:  the outgoing ACK
>>>> messages trigger the SFD interrupt and cause a timestamp to be put in
>>>> to the timestamp queue (line 190). If this happens BEFORE the
>>>> timestamp of the incoming packet is read, the packet timestamp is
>>>> cleared and the timestamp queue gets flushed (lines 633-635).
>>>> Consequently all packets received by the FTSP test application contain
>>>> invalid timestamps and are thus ignored (line 67 in TestFtsp.nc).
>>>>
>>>>
>>>>
>>>> Does that make sense? Is this a known problem? Has FTSP ever been
>>>> tested with CC2420?
>>>>
>>>>
>>>>
>>>> As a temporary fix I added PFLAGS += -DCC2420_NO_ACKNOWLEDGEMENTS to
>>>> the Makefile and I get messages from the FTSP motes now, however this
>>>> fix doesn't really address the cause of the problem...
>>>>
>>>>
>>>>
>>>> Silvan
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> Tinyos-help mailing list
>>>> Tinyos-help at millennium.berkeley.edu
>>>> https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> Shimmer-users mailing list
>>>> Shimmer-users at eecs.harvard.edu
>>>> https://lists.eecs.harvard.edu/mailman/listinfo/shimmer-users
>>
>> _______________________________________________
>> Shimmer-users mailing list
>> Shimmer-users at eecs.harvard.edu
>> https://lists.eecs.harvard.edu/mailman/listinfo/shimmer-users
>>




More information about the Tinyos-help mailing list