Hi I am using xbee3 to communicate to a network that has one coordinator and 6 end devices. I am using HW Flow Control for UART on the coordinator side, but not on the end device side.I am using an stm32f413 on a custom PCB to communicate to the xbees. I am having an issue where after thousands of successful transmissions the xbee fails to respond with the expected Extended Transmit Status Frame.
I couldn’t attach the xbee profiles, so I have listed the changed settings below:
Xbee Firmware:
Product Family = XB3-24
Function Set = Digi Xbee3 802.15.4
Firmware Version = 2012 (Newest)
If the setting isn’t listed below it is set to the default value for the Function Set.
Coordinator:
CH = 1A
ID = 1111
CE = Coordinator [1]
MY = FFFF
PL = Lowest [0]
AP = API mode Without Escapes [1]
AO = API Rx Indicator - 0x90 [0]
BD = 23040 [8]
DIO6/RTS Configuration = RTS flow control [1]
DIO7/CTS Configuration = CTS flow control [1]
End Device (same for all 6):
CH = 1A
ID = 1111
CE = End Device [0]
MY = FFFF
PL = Lowest [0]
AP = API mode Without Escapes [1]
AO = API Rx Indicator - 0x90 [0]
BD = 115200 [7]
DIO6/RTS Configuration = Disable [0]
DIO7/CTS Configuration = CTS flow control [1]
DIO8/DTR/Sleep_Rq Configuration = Disabled [0]
The xbees are configured to run in API mode and I am using the Transmit Request (0x10) Frame Type to send data between coordinator and end devices. I read back the Extended Transmit Status (0x8B) from the coordinator to ensure the message sent as expected. If I don’t get the expected Extended Transmit Status Frame within 100 ms, I try again. If this fails 3 times in a row I flag an error and my application stops.
For the most part this has been working as expected, but randomly I will fail to get the Extended Transmit Status frame back from the coordinator xbee over UART even after attempting to send 3 times. This seems to happen randomly during my application, for example the last time it was seen was after 10,632 successful transmissions, that were all met with the expected Extended Transmit Status response.
Looking at the UART reception, when this happens there is no sign of any received data, even malformed as I originally thought maybe it was due to noise on the bus, but no data was received after the TransmitRequest made it out.
I’m wondering if there is anything I can do to debug the health of the xbee firmware when this happening, maybe resetting the module would fix the issue, but I’m not sure if our application can wait for the module to reset in this circumstance. Any advice is helpful!