I have an XBee SMT Grove Development Board connected to my computer as the coordinator and operating in API[1] mode. My remote sensor PCB has an XB3-24Z8CM-J (router/end-device XBee), which transmits UART messages to the coordinator. Everything functions correctly when the sensor XBee is not in sleep mode (i.e., SM=0). Using XCTU, I can discover the coordinator, and through it, I can also discover and configure the remote sensor XBee by clicking the “Discover radio nodes in the same network” button.
However, after enabling sleep mode on the remote sensor XBee (SM=4), XCTU can no longer detect the sensor XBee. Repeated attempts to click the “Discover radio nodes in the same network” only return “0 device(s) found.”
The sensor XBee (XB3-24Z8CM-J) is a surface-mount component soldered onto the final PCB, with no breakout pins available other than the RESET pin (6). This makes it impossible to directly connect the XBee to a computer via USB for troubleshooting.
I’ve tried power cycling the sensor XBee and toggling the RESET pin high and low for varying durations, but XCTU still cannot discover the device (I kept the “Discovering remote devices…” open for 10+ minutes).
At this point, I’m not sure if the sensor PCB is done for or if there are alternative methods to “wake up” or recover the XBee?
Digi XBee3 Zigbee 3.0; Firmware Version: 1014
[EDIT]
XCTU (or the coordinator) managed to detect sensor XBee but only for once after some 20+ tries. Then it lost the connection and failed to discover the sensor XBee again…
In order for a Sleeping module/node to be discovered, you must have the sleep/wake cycle set long enough for the Node Discovery function to reach the end device.
My end device has 3.2s sleep cycle and wake time of 0.5s, and I have kept XCTU’s “Discovering remote device…” running for as long as 20minutes. The XCTU should have detected the end device through the USB-connected coordinator at least a few hundred times ( (20*60) / (3.2+0.5) = 324 times!! ). So I was surprised that the coordinator failed to pick up any response from the end device. I’m not sure how or where in XCTU to configure the “Node Discovery” function to improve the detection. Is that an option provided in XCTU or is that a specific parameter to set in my coordinator? I reckon there has to be application where remote sensing device has ultra-long sleep and sub-seconds wake cycle and there has to be a way to detect it without needing to probe into the leads and reprogram it ….
How am I supposed to enable Join Verification on the end device if XCTU cannot discover the end device in the first place? The coordinator is already in API mode with JN (as well as JV) enabled. The problem here is that the coordinator could not discover the end device in SM4 with long sleep cycle and short wake time.
It is a project or product that has been released and in operation for nearly 3 years with zero issues before we programmed the SM4 mode on the end devices (which really functioned in the past as routers with no sleep cycles). So I’m quite certain it has nothing to do with network ID mismatch or simple mistakes on other basic parameters.
I cannot access the end device through UART, as I have explained in my original post (otherwise I would have easily reprogram the end device through a UART cable:
… The sensor XBee (XB3-24Z8CM-J) is a surface-mount component soldered onto the final PCB, with no breakout pins available other than the RESET pin (6). This makes it impossible to directly connect the XBee to a computer via USB for troubleshooting…
Here’s the list of all the parameter values configured on the coordinator and the end device. Coordinator is powered by the computer’s USB port and is always awake (no SM configured).
I would suggest you submit a Support case at my.digi.com
I think there is some basic configuration issues you have made when dealing with sleeping end devices that really would be better discussed under a support case. When creating the case, please make sure to include everything you can including firmware versions and settings.