Maximizing Throughput For XBee Pro 900 HP

My supplier told me I have a special version that works on 920 instead of 900 MHz. I will ask them for more details and update you.

The XBee Pro 900 HP uses Frequency-Hopping Spread Spectrum (FHSS), which means it uses multiple frequencies.

https://en.wikipedia.org/wiki/Frequency-hopping_spread_spectrum

You are getting confused between the Serial data rate that your device can interface with the radio and the supported throughput.

The Baud rate that you are referring to is the actual rate that your device can communicate with the radio. It is not the rate in which I can Stream data across the network.

Irregardless if you are using the UART (Not all UARTS support data rates above 115.2kbps.), the total throughput which is how much data you can fit down the connection without loosing data is up to 50kbps. Setting a serial data rate higher than this only allows you to feed the data in and out of the radios UART faster. It does not speed up or increase the amount of data you can send.

That product is not approved for use in Thailand.

Yes, a spectrum print would be a good idea. But you can know which version you have by simply looking at the AF command. It lists what channels are available for you to use.

Antenna <–1–> ADF7023 <–2–> Cortex-M3 <–3–> PC

(1) The ADF7023 Transceiver is set to a RF data rate of 200kbps in the firmware (though the IC itself supports up to 300 kbps).

(2) The ADF7203 communicates through SPI to the Cortex-M3 EFM32G230. I assume the ADF7203 is the slave and the Cortex-M3 is the master. Given the Cortex-M3 is operating at 28MHz, I would imagine it is pulling the data off the ADF7203 as fast as it arrives.

(3) The Cortex-M3 supports UART/SPI/I2C. The XBee was configured to use USART, so only UART and SPI are available. I assume the AT command ATBD sets the baud rate for the USART. The maximum ATBD setting is hex 6ACFC0 which is decimal 7,000,000 (7 Mbps).

mvut,

Are you saying there is some absolute limit of 50kbps that I am unaware of (which honestly wouldn’t make sense to me given the datasheet claims otherwise)? Or are you saying that for my circumstance the throughput is likely limited to 50kbps because of data loss?

This baud rate calculator is pretty interesting. (It’s intended for AVR, so it might not apply well)

http://goo.gl/WeKUo0

It indicates why 230 kbaud doesn’t work (high error). Also 250 kbaud seems to have less errorbetter than 115 kbaud.

What I am saying is that you are probably running into interference that is resulting is dropped packets.

I fail to see how that comment is helpful to myself or anyone else genuinely seeking aid from the Digi community. Not only do you have no data to support your hypothesis, but given you are not privy to any information about my environment or set-up your assumption can’t be taken seriously.

The RF environment is not a problem according to XCTU. I have performed a spectrum test with both modules. The noise floor is below -95 dBm for one and -100 dBm for the other.

I was able to achieve an Average Transfer Ratio of 91.35 kbps by simply increasing the size of the Packet Payload from default 1,000 bytes (1 kB) to 100,000 bytes (100 kB). Note, this also required increasing the Transmit Timeout. I increase the timeout from 5,000 ms (5 s) to 10,000 ms (20 s).

I tried different modules S3B S1 S3B , the best I ever got is 20 kbps with s3b.

What can be the reason it is so bad?

What I really miss here is a possibiltiy to upload screenshots and profiles of the module to verify by others.

I was told I could get 30 kbps wen I get 8 kbps with Zigbee modules, 91 kbps when I get 20 kbps with Digimesh. All tested with good antennas, modules ( baud 115200) close to each other , 1 way unicast, and XCTU latest version.

There must be a reason these figures not match right?

The Xbee’s should be an easy way to communicate, but as long as speeds are so low we can not use it propely in our home automation products.

So is there a way to email profiles and screenshots to a digi support line to analyse what goes wrong?

Kr

Wim

Did you try what I suggested on your own post?

http://www.digi.com/support/forum/54972/throughput-test-unidirectional-kbps-for-xbee-s2c-why-so-low

If you sharing such little information about your modules, setup, and environment how do you expect anyone to help you debug your issue? Open XCTU and look-up your hardware version, what is it? What firmware do you have? Is it the latest version? What are your other configuration options? Are they all default or have some of them been changed?

I love to share all, just miss a file upload option at this forum. Can not upload a screenshot, a profile file etc.
Most forums offer this, maybe someone scared to see the reality here :slight_smile:

The truth is that I really tested weeks and weeks with AT,API,Brodcats,Unicast S1 S2 S2C S3B , all kind of antenna’s from PCB to wire, to dipole, whatever I tried the speed remains low , even between 2 modules with 1 sending data to the other one ( max 20kbps). At the moment it looks S3B gives the best result 20 kbps in XTCU throughput test if no hops just first module to second module.
XBP9B-DM XBEE PRO 900HP 200K fw 8074 CM=00FFFFFFFFFFF7FFFF

You recommend me to increase the payload? I can test and change everything, but at the end what I need is to send small strings as fast as possible from main homeautomation unit to several rooms.
Our string is for example $@13/ZZZZZZ/1/C1/DIM/52/3E@$
I hoped I could update the DIM and RGB value at several (5) rooms with a speed of 20 Hz.
This seems not possible although it means the actual useful data is only 28 * 5 / 20 = 2800 Bytes or 2.8 kbps
At the end I even consider to put the main module in the middle to reduce hops although that is difficult , not flexible and means more then 1 network instead of one.

Broadcast is in all tests slower then multiple unicast. We never need to send 1 message to all rooms but often to several rooms.

Forgive me for asking again, but what throughput I can get from module to module if I send strings like $@13/ZZZZZZ/1/C1/DIM/52/3E@$, and what if 1 ,2,3 hops? IS there a way to calculate, estimate?

KR

Wim

sorry 28 * 5 * 20 = 2800 or 2.8 KByte is 28 kbps … but not possible to get this speed continiously

I am confused by this message, is the maximum payload per message not limited to just a few bytes ( 256) ? Default in XCTU hey write maximum payload size is 256 bytes. Or are we talking about something different?

Can not make the payload longer then 256 byts, error=“packet payload is to long, limit is 256 bytes”

The highest throughput I can achieve with the 868 LP was 32kbps. That was done using Unicast addressing, TO 40, NH, BH, RR and MT all set to either 0 or 1. I also set the CE to 2 on one and 3 on the other.

On the 900 HP that highest is 53.3kbps.

Put both devices in Throughput mode. Right now you must have one or both in API mode.