digimesh packet loss

i’m developing a temperature sensor network based on digimesh protocol, the xbee is connected via serial port to a PIC, at every wake cycle the PIC sends a packet with the temp, the voltage and the SL of the xbee, eg. 22,3;4,10;40BEB186

The problem is at the coordinator side: altrough i can reach all the nodes of the network (20 at the moment) with XCTU, if i open a serial terminal i can read only 8\10 packets at every wake cycle. The transmitting nodes are random, the same node sometimes transmits the packet, sometimes not.
I’m using AT mode

I’ve changed the RO value to FF and tryed various baud rates without success… the other AT values are the default ones…what can i check?

Sounds like you are using sleep modes. If this is the case, try increasing the time before sleep value. By doing so, you will allow more modules to transmit the data.

Thanks for your reponse,
yes i’m using sleep mode, i have 5 nodes configured as sleep support nodes SM7 and 15 nodes SM8
actually i have configured 1 minute of sleep and 1 minute of wake time, raising the ST time have no effects

Then what I would suggest is turning off sleep mode all together and getting it working with all of the nodes powered on all of the time first. Then you can work on using CTS flow control and your timing and sleep modes.

Do you mean by raising the FT parameter?

No, what I mean is physically connecting CTS and monitoring it with your device. When the line is low, send the data. When the line is high, don’t.

Tryed to trasmit when cts is low without success, maybe i have to raise the baud rate? Now i trasmit at 9600

May I suggest you restore everything back to default settings on the radios and then try to transmit data? I am doing this as you should not need to adjust the baud rate to transmit data unless your device operates at a different baud rate.

i have restored everything to default but the result is the same.
i tryed to set the ft value to 21d, as the packet is 21characters at 9600 baud without results.
in the serial AT console i see some empty lines, what they mean?
for example:
23.06;4.19;40C071E5 ->good packet received
(empty line -> hex 0A)
(empty line -> hex 0A)
21.06;4.12;40BBC430 -> good packet received
(empty line -> hex 0A)

the sum of the good packets and the empty lines most of the times is equal to the total of nodes powered up

Don’t change the FT value at all. Leave it at default settings. If you are going to change a setting, only change the DL, DH and the baud rate. But don’t change anything else.

DH and DL are at default values 0 and FFFF

Restore them back to defaults (ATRE) and if you want to change something, only change the DL and DH addresses so that they point at each other. But nothing else and then try it.

I have tryed resetting all back to defaults, but the results are the same.
The nodes of the mesh network sends the packet in a random manner, in a wake cycle some nodes sends other not…i have implemented cts, the pic sends the packet over the serial only when cts is low.
the packet is a text string: aa.aa;bb.bb;ccccccccCARRIAGERETURN(0x0D)

i think the only thing i can try is raise the baud rate at 57600 and see i that changes something…

tryed everything, i think i have found the problem:
the packet is breaked, i receive a first packet with a part of the string except the last character, and a second packet with only the last character.
the packet itself is 33bytes long…even if i send a small packet i receive always a breaked transmission…any suggestion?

Try taking the radios out of the picture and just cable it up to get it working. When you do this, use a scope to very what you want to send is what is really being sent.