Noticed that the RO (Packetization Timeout) by default on the XBee Pro S1 module is set to “3” character times. What do you mean by “character times”? Is it the same as 1ms or 10ms or ???
Under what circumstances do this value has to be changed? Will I have to change this value if my application is having a master polling 6 slave devices in RS-485 multidrop network?
I’ve been assuming that a ‘character time’ is the time to transmit one character to the UART. That would include the start and stop bits, so it’s 10 bit periods. At 9600 baud, it’d be 1/960 seconds or just over 1.04mS. At 1200 baud, it’d be 1/120 seconds or just over 8.3mS.
That would square with the idea that a device transmitting data to the XBee is likely to transmit what it has in a burst, and then stop. The timeout lets the XBee judge that the pause is a good time to transmit the packet.
As for your network, I can only suggest experiment. If you find the slave responses are being transmitted cleanly, each in its own RF packet, then all is well. If they’re being broken up into small packets, then maybe there are pauses during transmission so increasing the parameter could improve efficiency.
Thanks for your feedback! I will do some experiments by varying the RO values and Baud rates.
I just get involved in a project that involved using XBee modules. I discover the importance of this parameter. The Packetization Timeout value defines the time it takes to the XBee modules to packetized a group of data, and it’s totally related with the baud rate you are using to send the data to the XBee.
What this means?
For example if you are transmitting a group of 10 characters and you configure the serial data to have a baud rate of 9,600 bps, that means that for one character you send via UART would last aprox. 1.04 ms per character since every data is composed of of 10 bits (including start bit and stop bit). Since you want to send 10 characters per packet you would have 10.4 ms per packet. Now the XBee needs some time for packetized this data and send it all as a packet instead of sending each character every time you send it.
If you leave the RO parameter as default “3”, this means that you would have to wait 3 x (time it takes to send all the data through UART) before you send another packet or before you put your XBee in sleep mode. For the example I was telling before it would be 3 x (10 ms) = 30 ms.
When I was working on my project I realised of this because I start to send data thorugh XBee device and when last character was sent I put the module in sleep mode. I realized that this affected the way data was sent over time. I programmed my microcontroller to send data every one second and I noticed that packets take more time to be sent and when they finally were sent they arrived as a group of packets.
I realized I have to program a delay after I send the last character of my packet before putting the XBee in sleep mode due to this Packetization Timeout parameter RO.
Hope this help the community that have the same problem.