We are using a Libelium Waspmote equipped with a Digi XBP24 ZigBee interface, configured as End Device.
The Waspmote is connected to my Coordinator throught a Router (Netvox Z801R). We must use a router because we can’t cover the distance between coordinator and Waspmote without it. We’ve checked that Waspmote cannot communicate with the Coordinator directly, in any way. With the intermediate router the signal strenght is good and we cover well the distance.
The Waspmote is programmed as following:
- At setup it starts and turns on the XBee interface for 2 minutes, giving us the time to enable the network join process on coordinator and router.
- After this 2 minutes the device ends the setup and goes in deep sleep for 1 minute, disabling the XBee interface.
- When waking up, the device enables the XBee interface and starts sending data to coordinator for about 20 seconds.
- After the data sending phase is completed, the device goes back to a deep sleep mode, for about 2 minutes and 40 seconds.
- back to 3)
So, the Waspmote loops enabling the XBee interface every 3 minutes, for about 20 seconds.
After some time (usually from 30 minutes to 6 hours) we notice that the Waspmote is no longer connected to the network. We had further investigation on this with a sniffer and we noticed the following behavior:
- Usually, when Waspmote wakes up (step 3), it sends an orphan notification, followed by a Coordinator realignment. Router registers his activity and keeps Waspmote in its child list.
- At some time, Waspmote wakes up sending only the orphan notification, without the coordinator realigment. Router, so, sends a Network Leave packet, to inform about the Waspmote leaving. Since that, the router in the following IEEE Address Response, replies with 0 child nodes in his child list.
Any point about this behavior? How can we keep the End Device in the network avoiding its leaving?
Thanks in advance,