Gowthami
Gowthami

Reputation: 31

How does an XBee coordinator handle simultaneous data from multiple nodes?

How can I make multiple nodes communicate to a coordinator without loss of data?

When more number of XBee nodes send their data simultaneously to the same XBee coordinator won't there be problems of congestion? To my knowledge, it's an yes.

In such case, how can I avoid this congestion? Also, I want the system to work in real time. So there should not be any delay.

I came across Stack Overflow question XBee - XBee-API and multiple endpoints. I deal with a similar problem.

How was this was solved?

Upvotes: 3

Views: 5399

Answers (2)

Chandra
Chandra

Reputation: 37

I have setup 15nodes of Series 2 XBee.Node will have multiple sensor like Light,motion etc. XBee placed on Fio board and send data for every 3 min. Node will be in AT mode and Co-ordinator in API mode.Nodes go through few Router XBee ( AT mode). Co-ordinator collects data (Connected to R'pi) and upload data to server. It is not mesh network and Xbee will not sleep. So,i did not encounter any congestion issue at this level.

Hope this helps.

Upvotes: 0

tomlogic
tomlogic

Reputation: 11694

As you add devices on a network, the only way to avoid congestion is to transmit less frequently.

If you look at the XBee documentation, most of the modules have a "Transmit Status" frame that the host receives once the message has been successfully delivered (or abandoned due to errors). I believe the success response is triggered by a MAC-level ACK on the network.

If you have smart hosts on your nodes, they can adjust their transmit frequency by waiting for an ACK before sending their next frame, and maybe even using the retries counter in the Transmit Status frame to set a delay before sending.

While the 802.15.4 protocol sends data at 250 kbit/s, the overhead of headers, relaying of messages across a mesh network, and dealing with collisions brings that down to around 100 kbit/s of useable bandwidth. Try to maximize the payload from your devices, to increase the data-to-headers ratio. Sending five pieces of data in a single frame every five seconds is better than one piece in a frame every second.

How much data do you need to send, and what is your definition of "real time"? Is a 10 ms delay acceptable? How about 100 ms? 500 ms? How many devices will try to send at the same time? How often will they send?

All of those questions will figure into your design, and you may find that 802.15.4 isn't suited for what you need to do.

Upvotes: 2

Related Questions