I am using X-CTU software and the problem I am seeing is transmitting from the coordinator stops after about 8-9 characters. What I mean to say is the display on the router stops displaying what I am typing on the coordinator. If I keep typing it will sort of catch up and display what I typed on the coordinator all at once. Now going the other way from the router to the coordinator works fine and does not stop or pause or whatever it happening.
Please let me know your thoughts as to why the coordinator might be doing this.
Hi all some additional information. It appears that the data flow will stop between 8-9 characters… It also appears that some packets get lost and they can even be received out of order… Really weird The delay is around 2-3 seconds. Any thoughts Folks? I am running in AT mode should I try API mode?
What are you using an an interface between the XBee serial and your PC?
Try setting the DH, DL to the full 64bit address of the other XBee. I think the setting these to 0 on the router is broadcast mode which has no ACK and retransmission of the RF packets so any loss of signal and the packet is lost.
AT mode is wanted if you need a serial pass through (transparent mode). API mode requires building and decoding an API frame which is very difficult to do by hand but not to hard within code.
Is the serial Flow control enabled or disabled? Serial Flow is disabled I believe. IE: D7-DI07 Configuration is set to 0 and it was set to 1 on both the router and the coordinator
What are you using an an interface between the XBee serial and your PC? I have used a few different configurations for the interface. I have used a beaglebone with a cape, a Digi XBIB-U-CAP and the Digi XStick with both the router and the coordinator in all the various configurations.
Try setting the DH, DL to the full 64bit address of the other XBee. I think the setting these to 0 on the router is broadcast mode which has no ACK and retransmission of the RF packets so any loss of signal and the packet is lost. I will try the DH, DL technique and let you know how it goes.
I tried it with the DH and DL set to each others address and it works properly. So if broadcast has issues with packet delivery reliability then how would one use a mesh network of Xbee’s? So I am trying to setup a system where the coordinator sends to all the routers and if a router sends a packet it should broadcast all the other Xbees as well. Is there a way to do this reliably? Thank you in advance for your assistance.
broadcast uses the FFFF destintation address in either 16 or 64 bit addressing mode.
Broadcasts cannot have an ACK, by nature. Same for IEEE 802.3 MAC layer broadcasts (Ethernet).
Broadcasts are used, normally, for network management/discovery. Data transfers are always unicast (peer to peer). This is true in most any standards based wireless, e.g., 802.11 as well.
XBee Series 2 are far more complex, due to the mandatory use of Zigbee in these radios that use the Ember chipset.
XBee Series 1 are much simpler; they use Freescale’s chipset and never use Zigbee. IMO, Digi’s proprietary DigiMesh is a better choice than Zigbee if you MUST use a self-forming/healing mesh. Rare is the need for that in student/hobby projects.
As Steve said, XBee S2, ZibBee, is a bit complicated. Do study the XBee document and also any of the other info found on Digi Int’s web site including their Wiki and Forum.
In general: The coordinator’s host does a ‘node discovery’ then collects a list of all nodes (XBees) discovered (another way is having a hard coded list of all nodes that should be on the network). If a message MUST get to every node then the Host sends this message through the Coordinator to every node (by the 64bit address). Each node will then ACK the message.
I like having the Coordinator set in API command mode, which requires the host to build and decode API Frames. But the advantage is every incoming Frame has the address of the originating Node.