Before we continue, I should mention that there is a crucial difference between the XBee Series 1 and Series 2. Aside from the fact that Series 2 uses the ZigBee protocol and Series 1 does not, Series 1
processes the power of the packet and encodes the value into the RX packet that the XBee API has access to. Series 2
also processes the power of the packet; however, it does not encode the value into the RX packet. Digi changed the structure of the RX packets for Series 2
and you have two choices to get the RSSI value. You can either stop receiving packets and query the XBee to tell you what the RSSI value is (ATDB and this takes quite a bit of time) or you can use a trick discussed on the Arduino Message Board
, where the RSSI value is represented through a PWM timer.
With that said, I chose XBee Series 1 to easily get access to the RSSI data. We will need to use the API mode for the XBee to be able to fully process the RX packet. My XBee settings were: Channel: F
PAN ID: 3141
DL: 0 (I used the XBee Arduino API to set the value for broadcast mode 0xFFFF)
I have also attached the XCTU profile I used for those wanting to use my exact settings. And if you need help configuring your XBee for API mode please see my other Instructable
on this topic.