This question seems to me hard to answer but I try it anyway:
I’ve a moderate large xbee network (30 devices, 2 routers and 1 X2 coordinator). I get node info by submitting AT commands but I find that I get a large amount of “remote command xmit failed” responses. Usually, node data can finally retrieved by retrying the same command with a delay of tenths of second for a max of 5 times. Not always but some times even this method fails and data cannot be retrieved.
XBee coordinator access is not concurrent, ie, only one AT command can be submitted at a time and only three devices send its data asynchronously each 5 minutes so I discard collisions (in ethernet jargon) as the problem cause.
I don’t know if this a the usual network behavior or it might be solved by, for instance, improving network coverage (though problems are present even in nodes close to the coordinator). Submitting this question my aim is avoiding spending some bucks in getting more routers if it’s not going to be the right solution.
End-devices are difficult to talk to - so most or all of your system should be pushing in data without being polled (so use IR/IC settings). In fact, you don’t talk to them, you talk to their parent who buffers the request for a time related to the Sn/SP. (See this page: http://www.digi.com/wiki/developer/index.php/XBee_Sleeping_Problems )
So end-device are in 1 of 2 modes:
if sleeping, then they need to ‘poll’ the parent for work when they wake, so make sure the parent’s SN/SP is large enough, plus either the ST must may be 500 msec or greater or PO needs to be reduced (defaults to 0 = 100msec). Over-simplified - when the sleeper wakes, it asks parent for work, 100msec later sleeper is allowed to fetch the data, and another 100msec later it might answer it - so you see it takes at least 200msec (0 + 100 + 100) to answer any external request.
if they are not sleeping, then they poll their parent 10 times a second (the PO setting), which with 30 nodes could create lot of RF congestion. Never have fully powered end-devices if you can help it.
Hi again Lynnl: Yes, when I say 30 devices I really mean 30 end- devices, most of them doesn’t sleep (27 out of 30)
If I’ve understood, do you say that one non-sleeping end-device polls its parent each 100ms searching for data? Well, 10 times if PO=0 I mean… Because in fact it’s a lot of traffic in a network of 27 non-sleeping end devices (27*10 = 270 requests per second just for asking if there’s something to do).
The idea of turning into sleeping devices most (or all) of them seems interesting. The other option I see, considering that previous paragraph was true, is increasing PO in order to lower traffic, though requests responses will be slower (no hard problem anyway).
I wait for your opinion prior to do anything. Many thanks again.