Create Source Route

Hi, I´m trying the xbee pro s2 with the XB24-zb 218c Firmware.
I’ll need to work with 1 coordinator and almost 100 routers (no end devices). So i know that i need to work with API frames and source routing.

Actually I just have 3 modules A,B and C, to probe them. so I’ve already enabled many to one routing in the coordinator (device A)wich will be the concentrator (AR =0x03 to send a many to one each 30 seconds). The many to one are successfully received by the routers B & C each 30 seconds. So when each reouter sends a message to the concentrator A, this receive an api Frame 0xA1 Route Request Indicator so i have the route to each router. the next step is to Create a Source Route with the API Frame 0x21. Here is my question. When I use this Frame (0x21) should I recieve any aknowledgement? an OK, anithing? cause i´m not getting anything. So if there is no response, how can i know that Create Source Route was Successfully stored?

1 Like

Sorry, I am no source-route expert … but interested in the idea. Since no better expert answered, I will offer my view.

I do NOT think the Xbee returns an ACK after the frame 0x21, plus your CPU is responsible to maintain the source route table - the Xbee doesn’t maintain the table, only 1 record. This is because the table might become very large (image 10,000 nodes … not that that would work, but the table would kill the XBee).

You need to issue a new frame 0x21 before every single transmit request. I believe the success or failure of the source route is only implied by the success/failure of the following TX status, which includes errors for broken routes.

The same problem.
I’ll need to work with 1 coordinator and almost 60 routers and 200 end devices. If each send request all need to send a new frame ox21, it will or will not result in overall send time become long.

It is more of one, less of others :slight_smile:

Yes, you do need to issue the 0x21 before each request, however at 115kbps this requires only a few msec of serial time! Then the actual RF transmission will be as fast as the technology allows.

If you do not use source routing, then you save that few msec of serial time, but you could suffer a high number of
route discovery packets, which can consume up to 5 seconds (5000msec) each time they are used.

With your system, you do need source routing and the need to manually send the 0x21 each time is caused by the XBee having limited RAM resources, whereas we hope you main controller has much more RAM.

Thank you for your reply
I use the Source Route purpose is to achieve a node sends to multiple nodes(Almost 40 node).
When I send 0x21 frame then sends a request to send frames (0x10 ) each carrying a different MAC address, this and the next sending 0x21 or 0x10 needs number time delay?Have certain safety time? Such as minimum 10 ms.
Thanks in advance.

Okay, this is where your timign question comes. You should not have to wait at all. Keep in mind that the CPU on the XBee is buffering your data, so it doesn’t care for a delay between the 0x21 and 0x10.

However, the ideal design would be:

  1. send the 0x21
  2. send the 0x10 immediately
  3. wait for the 0x8B transmit status.

If the TX status is bad, then either your remote devcie is down, or the route is no longer valid.

That is once get delivery status (if send normal) can once again through the above three steps send the next frame data, no longer need to delay.

Yes, correct. You should be able to push this cycle as hard as you can.

Thank you very much for your reply.