Series 1 delays sending data when RTS asserted, can loose data and hang

From what I can troubleshoot, I believe I’ve found an issue with the 10CD firmware on a Series 1 in API mode. If the DO buffer collects data while RTS was deasserted, it is only sent out of the DO buffer if additional data is received. In addition, if the DO buffer overflows while RTS is deasserted, then no data is sent out when RTS is asserted.

Please correct me if I’m wrong. I’m definitely human.

Setup:
Series 1 with x10CD firmware
Enable API mode (AP1)
Enable DTR/Sleep (SM1)
Enable RTS flow control (D61)
Put two xbees on same pan and channel

Repro:

  1. Assert DTR and RTS on receiveXBee
  2. Slowly send packets from transmitXbee using 16-bit addressing (API 0x01) using broadcast address 0xfff where the RF data is 29 bytes (therefore entire packet is 38 bytes).
  3. Verify that the API packets are received on the receiveXbee.
  4. Deassert RTS on receive XBee
  5. Send 3 API packets from transmitXBee
  6. Assert RTS

Result: No data is send out the DO buffer.
Expected: 3 packets of data to be immediately sent out the DO buffer.

  1. Send 1 API packet from transmitXBee

Result: 4 packets of data are sent out the DO buffer
Expected: 1 packet of data to be sent out the DO buffer

  1. Slowly send packets from transmitXbee using 16-bit addressing (API 0x01) using broadcast address 0xfff where the RF data is 29 bytes (therefore entire packet is 38 bytes).
  2. Verify that the API packets are received on the receiveXbee.
  3. Deassert RTS on receive XBee
  4. Send 6 API packets from transmitXBee
  5. Assert RTS

Result: No data is send out the DO buffer. Ever. Transmitting additional packets from transmitXbee are ignored. The XBee appears to no longer send data out its DO buffer.
Expected: 5 API packets to be immediately sent out the DO buffer. The 6th packet and subsequent to be lost while RTS is deasserted.

Notes:

  1. 5 packets of 38 bytes fit into the 202 byte DO buffer while the 6th packet overflows it.
  2. After step (12) of the repro, while the XBee no longer sends data out its DO buffer “mute to the UART”, if you deassert and reassert DTR, then the XBee awakes and functions correctly until the repro scenario is repeated.

Message was edited by: diablodale