XBee-Pro 900 (API): RC (RSSI for channel) fails in API AT Local packet

XBEE-PRO XB09-DP Firmware version 1002 Hardware version 1B42

I was interested in reading RSSI in hopes of detecting a range limit being approached. So I was testing the RC command and found that it works as advertised in AT command mode, but the same command sent in an API AT Local command packet gets an error return.

Example: (standard AT Command sequence)





Example: (API AT Local packet)

Sent: 7E 00 05 08 09 52 43 34 25
Rcvd: 7E 00 05 88 09 52 43 01 D8

The next to the last byte in the above rcvd packet has a value of 1, which means ERROR.

This is the response from Support (rcvd quickly BTW)…

For RSSI, I would recommend using the ATDB command. However, with this particular hardware, the RSSI level is only valid for the last 25% of the range. All other shorter distances will result in readings showing full strength.

The DB command is not listed as an available command in the manual for this radio. However, it is there and worked in all modes: direct AT command; API AT Local; API AT Remote. I got a return value of 0x4F from the local radio and 0x52 from the remote unit, so it seems to be working.

The fact that it does not begin to have meaning (probably saturated)until the last 25% of available range is perfectly fine for me as I only want to know when I’m reaching end-of-range. I simply wanted to know that before packet transmission began to fail.

There is no problem with the RC command in API mode. I failed to send the channel number as a proper hex value (between 0 and B inclusive) when I built the API packet.

Previously I included the following example, which received an ERROR response - as it should have - because the parameter (channel number), which is in the next to last byte, was 0x34, an invalid value. This byte needs to be in the range of 0x00 to 0x0B

Example: (API AT Local packet)

Sent: 7E 00 05 08 09 52 43 34 25

Sorry for the misinformation. (I do wonder why Support did not pick this up.)