[Tinyos-devel] CTP and LPL on tmote

Andreas Köpke koepke at tkn.tu-berlin.de
Mon Dec 22 10:46:37 PST 2008


Just a short update on our experiments:

Setup: 
34 nodes, 
3-5m apart, 3D grid
sink always on 
duty cycle 5%
real network diameter: 3-4 hops
sink in "corner"
each node transmits about one packet in 5min (random uniform distribution in 
interval)

Changes to LPL to get nearly 100% delivery ratio for two nodes, 3m apart:

- extended expected sleep interval at receiver
  call LowPowerListening.setRxSleepInterval(msg, lpl + 20);
  for some reason, the real sleep interval of a telosb node is 5-6ms longer 
  than computed.

- use energy detect for CCA
  The standard threshold of -77dBm is too high to detect packets/WLAN.
  Solution: floating estimation of RSSI noisefloor and fixed threshold.
  In our testbed, the RSSI noisefloor is node dependent, probably due to USB.
  Channel busy, if RSSI >= noisefloor + 8 dB, or if valid bits are detected

- Carrier Sense the channel before packet transmission longer than the 11ms 
  gap between two packets. Prevents mixing packets from two or more packet
  trains.

- send packet repetitions without CCA
  Otherwise, the gaps between packets become too large.

- fix bug in sleep time computation (integer overflow)

- two busy CCA samples are enough to declare the channel busy. Does not seem 
  to have much influence.

- DELAY_AFTER_RECEIVE=20 to reduce energy consumption. Smaller values 
  impact the delivery ratio.

Changes in CTP:
- minimum beacon interval 2min (some also with 5min)
- maximum beacon interval 12min (some with 30min)
- round in ETX estimator (instead of floor)
- max retries: 10

Results:
- ETX to parent converges to 10 
- THL converges to diameter (3-4hops)
- Transient: 2-3 hours (then the above mentioned values are 
  somewhat reasonable and network starts to deliver messages)

Strange observations (not in all experiments):
- the sink node does not start to send beacons for 4 hours. Then 
  starts and everything works fine.
- the ETX values stay at 265 for more than 10 hours
- after running for more than two days, a couple of nodes disappear in 
  permanent routing loops. We had to restart the experiments to get rid of 
  them.
- ETX is 10, although the number of transmission attempts in the link is  
  between 1.2 and 2. (or in delivery ratios: 50% to 80%)

Comparison with MultihopLQI:
- comparable overall delivery ratio
- MultihopLQI results in permanent loops after running for more than 2 days

Changes to MultihopLQI to get rid of permanent loops:
- distinguish between good links (LQI>=100) and bad links (all others), only
  To do so, set LQI = 100 for  good links, LQI = 50 for all others.
- evict parent if more than 2 beacons are missing (instead of 8)
- detect broken links (exceeded MAX_RETRIES), evict parent, send update beacon
- beacon interval 12min, (5min for faster repair of broken links)

Conclusion:
It runs now , somehow. It seems possible to find a way to reduce the transient 
and the sometimes strange startup behavior. The discrepancy between ETX and 
the retries is of academic interest. It is interesting to note that the uplink 
breaks for short time periods, resulting in a sharp increase of ETX with no 
parent change (saw-tooth behavior of ETX).

The permanent loops are a real pain. The comparison with MultihopLQI suggests 
that there might be an interaction with the toplogy in our testbed, the bug 
seems to go unnoticed in other testbeds. Or the published results are from 
experiments shorter than three days.

Merry christmas,

Andreas 


More information about the Tinyos-devel mailing list