XBee 900HP : RSSI changes with channel mask, broadcast/unicast or ???.

We are running XBee 900HP modules in API mode. Our test group is finding that when we run in our “setup” mode we have more than 5dB stronger signal. Units will run in “setup” mode but fail to connect in operational mode.

We are using Digimesh, but have the hopping disabled (CE=2). Power level is set to 4 (24dBm) in all cases.

The differences between the two modes are as follows:
1) Channel Mask: in setup the mask is always 0xFFFFFFFE00000000 while the channel mask in operational mode is determined by doing a noise scan and selecting the 25 channels with the lowest background noise level.

 2)In setup, the sensor nodes send broadcast messages to a host node which replies with a unicast message.  In operational mode, the sensor node and the host nodes use unicast messages.

 3)In setup mode, the network ID is always 0x7FFF and the preamble byte is 0, while in operational mode the network ID and the preamble byte are derived from our internal serial number for the host node.

Any thoughts?

It is most likely the channel mask you are choosing to work with that is the issue. I would suggest double checking the code you use for channel selection and make sure you are selecting the lowest noise level channels (the number farthest from 0).

Understood that the return value is in -dBm, so a noise value of 90 is better that one of 80. The ED time limit is ~= 1 second.

I have verified that the mask is built from the lowest value channels. I do not add any weight to the noise value for any channels. The manual for this radio includes the warning that:

Note: Channel 19 (910.000MHz) is disabled by default. This channel has approximately 2dBm worse receiver sensitivity than other channels. It is suggested that this channel not be used.

Would it be worthwhile to add in a compensation factor, or is this channel the only one I need to worry about?

From what I recall, that is the only channel you need to worry about.