In our network we have an Xbee Gateway (formerly ConnectPort X2e ZB), Wall Routers (XR-Z14-CW1P1), and custom PCBs that implement Xbee SMT Modules (XB24CZ7PIS-004).
The custom PCBs are sleeping end devices that wake the Xbee Modules up (pin sleep) every 5s to check for any new data on their parent. If a module joins the coordinator (X2e) directly everything functions as expected, but if a module joins a Wall Router, messages do not appear to be buffered and delivered to the end device.
Initially I had issues with the child poll timeout, but I think I have that fixed and still experience the same issue. What I am setting on the Wall Router (beyond defaults) is:
JV = 0x1 ( since their behavior is annoying otherwise )
EE = 0x1 (
KY = 0x1234 ( Sets security for network )
SP = 0x3E8 ( 1000 x 10ms = 10s)
My understanding is that the sleep poll timeout should be (SP x SN x 10ms x 3) or 30s, and polling the NC AT register through XCTU, NC jumps back up one about 30s after an end device goes offline, so I think that is working correctly. However, the Wall Router still doesn’t seem to be buffering messages.
To help further isolate my problem, I took an XBee SMT Module and inserted it into an XBIB breakout board. There I configured it through XCTU to set it up as a router with the same settings as I was applying to the Wall Router, and it appears to buffer messages and deliver them to the end device as expected. During these tests I was just using our “custom PCB” to drive the sleep wake line and monitoring serial activity coming from the SMT Module directly with a logic analyzer (to avoid potential external issues).
This leads me to believe my issue is with the Wall Router specifically, or the older through hole module at it’s core that utilizes the older EM250 chipset (to my understanding). Is there something different I need to set for a parent of end devices because I’m working with a Wall Router/EM250 chipset vs a newer SMT Module/EM357?