I have had had some success using the XBEE stuff with Arduino projects. Everything I have done so far has been point-to-point with two XBEE units and has been a snap.
I am now working on a project which requires one XBEE connected via USB to a PC acting as a server of sorts, which must respond to queries from multiple remote Arduino units with XBEE adapters.
All three units I have are XB24’s (two with chips and one with a whip). The one I am connecting to the PC (which I will refer to as the host) is mounted in one of the USB boards (made by Parallax, and bought at Adafruit) and the other two (which I will call remotes) are currently connected via FTDI cables, but will eventually be in Arduino’s. All three units are running version 10E6 “XBEE 802.15.4” firmware.
I have all three of the XBEE units on the same PAN and all seem to talk to each other, but none of the controller/router and selective destination node stuff seems to work. I was thinking about something like what is outlined in the DIGI networking tutorial found in the knowledgebase here
http://www.digi.com/support/kbase/kbase … jsp?kb=186
All the modems respond the way I am expecting with the exception of the ATDN (set destination node) command. When I issue an ATDN command I just get “OK”, not the address that it resolved. After the ATDN command, the modem exits command mode and all text entered in the terminal is sent to both remote units instead of jut the one I requested in the ATDN command. Issuing and ATDN command with an invalid destination name results in ERROR, so it must be resolving properly.
I have also tried setting ATCE0 on the two remote units and ATCE1 on the host, but it does not seem to make any difference.
My questions are these:
- The DIGI document linked above mentions updating the firmware to the controller and router firmware for the host/remote respectively. I do not have these choices. Is this not possible with the XB24’s?
- Am I better off attacking this project through API-mode communications? It looks like it will take a bit longer to get that figured out, but the packet-based nature of API-mode comms would address the potential issue of data from multiple remotes colliding. If API-mode is the best bet, can anyone point me in the direction of a good resource specific to Arduino? NOTE: The DIGI documentation seems to be exceptionally good, but a perspective from someone who has already done this with a similar platform would be appreciated.
Thanks for any help you can offer.