Electronic – receiving a Modem Status (0x8A) on broadcast messages (XBee)

watchdogxbeezigbee

I am sending a Remote AT Command Request in broadcast (without ACK – frameID = 0x00), from my Coordinator API, to set the CB command to 1: this simulate 1 commissioning button press in software of the remote device in order to receive a Node Identification Indicator.

When I send the first packet:

7e 0 10 17 0 0 0 0 0 0 0 ff ff ff fe 1 43(C) 42(B) 1 66 

I receive the following Node Identification Indicator frame:

7e 0 27 95 0 13 a2 0 40 aa d0 6 f9 5d 2 f9 5d 0 13 a2 0 40 aa d0 6 52 4f 54 45 41 44 4f 52 0 ff fe 1 1 c1 5 10 1e 7f

but, if I send the same Remote AT Command again (CB command with parameter 1), I get this two Modem Status frames:

7e 0 2 8a 1 74 
7e 0 2 8a 6 6f 

The first one means a Watchdog timer reset (1), and the other means a Coordinator started(6). I checked the voltage over my XBee and it's everything ok (3,3V), so is it not supposed to reset?. If I send the Remote AT Command again (a third time), I will get the Node Identification Indicator frame. And sending a second time (fourth time), I get the two Modem Status frames. Then, is keeping repeating..

Why this happen? I had to send twice in order to get the response I wanted.

EDIT

I am using XBee Series 2

Best Answer

It seems as if you did not send a correct API broadcast package. You sent

7e 0 10 17 0 0 0 0 0 0 0 ff ff ff fe 1 43(C) 42(B) 1 66

Where the first byte is the start delimiter for an API packet (0x73) - correct

the next two bytes are the length, which is 16 (0x0010) - correct

The next byte is the API identifier value for AT command request (0x17) - correct

The frame ID is also correct as already mentioned in your post - correct

The 64 bit destination address (0x000000000000FFFF) - correct

Destination network address (0xFFFE) - correct

The command options must either be 0x02 or 0x00. All other bits must be 0. You have 1 which means that bit 0 is set which should not be the case. I assume the reset is due to this wrong value. Change that to 0x02 and you will be fine.