Why don't my XBee's talk to each other?


I’ve used Zigbee in the past, but only just getting on board with DigiMesh. I’ve got a bunch of XBee Series 1 modules and have started playing around using DigiMesh.
So I’ve loaded them up with XBEE DIGIMESH 2.4 v8064 and successfully managed to get them working together in a SYNCHRONISED SLEEP mode - I made one of the modules a preferred sleep co-ordinator, and the remaining modules responded correctly. I could see this behaviour was working ok because I’d set each one up with a simple LED circuit which illuminated when the modules SLEEP_ON pin was set. So I know that at one level, the modules are communicating with each other.
My problem is that no matter what I try, I can’t successfully send a message between any 2 modules. I’m using the API ATAP=2 mode, have what I believe to be good code (running on an Arduino) that builds a message and sends it but it never gets received by the destination and the sender never gets a success response back.
I’ve tried both unicast (using a specific 64bit destination address) and a broadcast - both seem to fail and the destination receives nothing.
Here’s one of the byte messages I sent to device with address 0x0013a200, 0x4008b06f

uint8_t testMsg[26] = { 0x7e,0x00,0x16,   0x10,0x01    ,0x00,0x13, 0xa2,0x00,0x40,0x08,0xb0,0x6f   ,0xff,0xfe,0x00,0x00,0x54,0x78,0x44,0x61,0x74,0x61,0x30,0x41,0x1e };

and here’s another that I sent as a broadcast

uint8_t testMsgBC[26] = { 0x7e,0x00,0x16,   0x10,0x01    ,0x00,0x00, 0x00,0x00,0x00,0x00,0xff,0xff   ,0xff,0xfe,0x00,0x00,0x54,0x78,0x44,0x61,0x74,0x61,0x30,0x41,0x3c };

Neither are received by the destination module. I’ve tried using ATAP=1 and ATAP=2 (and modifying my code accordingly). All modules are using the same Channel and Network ID and are currently set to SLEEP_MODE=0 (i.e. no sleeping). One thing that might be relevant is that each module has its own unique Node Id but I don’t know if that would affect the behavior I am seeing.

On the receiving end, I’ve tried using an Arduino sketch, just sitting in a tight loop waiting for any data on its Rx pin, and also tried using X-CTU terminal.

Any ideas on how to debug this would be appreciated.

Argh :slight_smile: as I said in my other response, don’t use AP=2 unless you have a long, noisy wire path.

First question - what is your TX status response? All APi frames accepted by the local XBee in API mode will return a TX status response, which defines if the message was handed off or not.

If there is no TX status response, then the local XBee did not even accept the 0x10 Transmit request. If the checksum is bad or with AP=2 your escapingis bad, then it should just ignore you.

With the TX status message, you can see if the remote node was given the message, or if it timed out in the local node and was discarded.