Maximizing Throughput For XBee Pro 900 HP

I have two XBee Pro 900 HP modules (one with a dipole antenna and the other is the wire whip version) that I would like to configure to be able to communicate at the maximum data rate (which looks to be 105.5 kbps). Currently I am only able to achieve 50 kbps using XCTU in a unidirectional, infinite loop throughput test.

Hardware/Firmware info

Firmware Version: 8074
Hardware Version: 2346 (wire whip), 2347 (dipole antenna)
Hardware Series: 301

Current non-default configurations

Unicast Retries: 0
Baud Rate: 115200

What else should I be changing in the configurations?

I would not use the Loop back test. Use the Throughput test instead.

You need to set the TO command to 0x40 and set the BH to 0 as well.

I am not sure what you mean. As stated above I am using the Throughput tool, with throughput type set to unidirectional and duration set to infinite loop. Both modules have API Enable (AP) set to Transparent Mode (default).

Broadcast Hops (BH) is zero by default, and I have already tried the Transmit Options C0, C1, 40, and 41.

What are you DL and DH set to on the transmitter?

Also what is your CM parameter set to on both?

The Destination Address High (DH) and Destination Address Low (DL) were at the default values of 0 and FFFF respectively, for both modules. I have also tried a throughput test with DH_1 = SH_2; DH_2 = SH_1; DL_1 = SL_2; DL_2 = SL_1. This had no effect.

The Channel Mask (CM) is set to default (FFFFFFFFFFF7FFFF) for both.

You need to use the Unicast addressing over the Broadcast address. You also need to adjust the CM so that you are using every other channel.

“you need to use the Unicast addressing over the Broadcast address” - I’m not sure what you mean by this. What configuration changes does this entail?

Every other channel would be repeated hex A (binary 1010) or 5 (binary 0101). I tried using 5555555555555555 for the Channel Mask (CM) on both modules. This yielded no significant throughput increase (51.5 kbps)

How did you get even 50 kps? And how you can use Transparant mode?

I was told I need to use API mode at sender, and I get only 20 kps where I expected 200 kps as mentioned in the datasheet.

When I use transparant mode I can not select destination in the througput window.

You will never see 200kbps. That is the fixed RF data rate. That is the rate in which the two modules talk to each other. Under ideal circumstances, the throughput you could achieve is up to 91kbps (Page 47 of the manual).

As for the Addressing question.

Set the DL and DH of one radio to match the SL and SH of the 2nd.

What country are you two testing these in?

I am testing in Thailand, at 920 MHz,while mobiles phone network 900 MHz and 850 MHz.

How can I get 91 kps? Now only 20 kps, and 2 modules only 1 meter away from each other.

You are not going to. The 900 HP and your Cell band conflict with each other.

Smart Alarm Co LTD.,

I was able to get my modules to transfer at 50 kbps (not “kps”) unidirectional using the default settings for everything except Unicast Retries = 0; Baud Rate = 115200. Both of my modules are inserted into a XBee USB Explorer and connected to my laptop via USB.

When performing a Throughput Test, if both modules are connected to your computer you can have both of them set to transparent mode. There will be the option of First Local Device and Second Local Device.

If you have one module configured as a remote device, then the local device will need to be in API mode, while the remote device is in transparent mode.


Is it actually true that 200 kbps will never be achieved? What if the serial data rate exceeds the RF data rate?

The throughput results presented (page 45 & 47) in the manual were performed using 115200 baud, which to my understanding isn’t the limit of the device.

“The UART baud rate (speed for data transfer between radio modem and host). Values from 0-8 select preset standard rates. Values at 0x39 and above select the actual baud rate. Providing the host supports it. Baud rates can go as high as 7Mb/s.” - Page 71 of Manual

I haven’t had any luck with the 230400 baud setting in XCTU (I actually don’t know why it exists if it doesn’t work), but I have been able to communicate reliably at 250,000 baud through two instances of the Arduino IDE. I currently have no way of testing the throughput with this configuration.

I haven’t tested with SPI yet, but I would imagine this option would get someone closest to the maximum throughput.

Wouldn’t a spectrum test be worth performing to confirm that hypothesis?

I’m testing in Canada.

Thank you for all feedback and advice.

Still not understand why 900 MHz far away would interfere more with XBEE 920 MHZ ( wse use XBEE 920 not 900 ) then WIFI with XBEE 2.4GHz.

Is there a way to select the normal baudrate of 256000 at the XBEE’s?

At the moment the question remains how to get the best results. I will try today again to reach 91 kbps



Dude, click “comment” not “answer”.

What do you mean you use XBEE 920 not 900? This XBee uses many frequencies between 902 and 928 MHZ (the 900 MHz ISM band). The default setting uses 19 different frequencies.