I have bought about 20 Xbee Pro S2C modules.
Initially I started using it by sending a byte and receiving a byte, learning later that it was in AT mode and it isn’t the best configuration in order to create a coordinator-router mesh. So I configured my modules in API mode and zigbee mode:
- Updated firmware and put it in the zigbee function set;
- CE = 1 for coordinator and CE=0 for routers;
- AP = 1 for all modules
- Connected my modules to Arduino Unos and Megas in order to create a network;
Initially I started using the xbee-arduino library, but it couldnt quite get it to work and I also found it overly complicated … certainly 4 different objects shouldn’t be necessary to work properly, so I changed the library for a simple serial object and started sending the packets to the modules.
At first my routers were only able to read a modem status indicating over voltage, which after further inspection, indicated that the modules were @3V6, even though they were connected to the 3V3 output of the board. This was fixed by disconnecting and reconnecting the module to the board.
After that I noticed that I sent a 0x10 framtype (write command) and the other module received a 0x90 frametype (read command, indicating that the module received the data). I don’t do it via broadcast, I send it directly to the desired MAC. So far I can communicate among one coordinator and 2 routers (haven’t implemented the entire network yet), which is good and indicates that there is a good chance that all of them can be put in the same network.
My problem is, what do I do if a desired MAC is too far away for the coordinator, but not for another router? Does the firmware in the modules do the routing by itself or do I need to implement it? How can I get an example of this? Where can I read the documentation for this, if it exists? Can’t I simply implement my own way of getting to the far away modules? May be I could simply map all available devices to the coordinator and ask each router to get to the missing routers.