Hi Miklos, Hi M.S., Thanks for the help and sorry for the late reply.
Indeed, hardware acks work. For future reference, the following mail explains how to enable hardware acks: http://mail.millennium.berkeley.edu/pipermail/tinyos-help/2008-February/031061.html The simplest way is to insert the following line into the Makefile: CFLAGS+=-DCC2420_HW_ACKNOWLEDGEMENTS Cheers, Urs Miklos Maroti wrote: > Hi Guys, > >> Could there be a timing issue when waiting for Acks? >> It might be that the telos responds a little slower >> and the iris gives up waiting too soon -- if I have >> the order of execution right anyway... > > Yes, I think that is it. From Urs data the first big number is the > time stamp of the SFD (start frame delimiter) of the packet, the > second smaller number is the current time when the packet was > downloaded, both in roughly microseconds. We see the following: > > TelosB -> TelosB: approx 1.65 millisecond delay > TelosB -> IRIS: approx 0.77 millisecond delay > IRIS -> TelosB: approx 1.63 millisecond delay > IRIS -> IRIS: approx 0.77 millisecond delay > > These are delays between the SFD of the data packet and the SFD of the > ack packet, so the actual gap between the two packets is smaller (by > 14 data bytes + 5 preamble bytes, which is around 19*32=608, i.e. 0.6 > milliseconds. So the actual delay between the end of the data packet > and start of the ack packet for the IRIS is 0.17 milliseconds. > > Anyways, the problem is the timing, the IRIS does not wait long enough > for the ACK. In RF230ActiveMessageP.nc it is said that > > async command uint16_t SoftwareAckConfig.getAckTimeout() > { > return (uint16_t)(800 * RADIO_ALARM_MICROSEC); > } > > So it waits up to 0.8 milliseconds, which is less than the CC2420 1.6 > millisecond delay. By the way, the IEEE 802.15.4 standard requires > acknowledgements within 192 microseconds, so the IRIS is compliant and > the TelosB is not (with its software ACK implementation). > > You can solve the problem in two ways: 1) increase the 800 microsecond > wait period for the ISIS for example to 1600 (probably 1100 is enough) > microseconds, or 2) use hardware ACK for the TelosB. > > Miklos > _______________________________________________ Tinyos-help mailing list [email protected] https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
