Using repeater to send data to sleeping node from a gateway (with XBee-Pro 900HP (S3B) modules)

My goal is to set up a simple 3 node network (using the same XBee-Pro 900HP (S3B) module), where the data of the end-device is routed via the repeater to the coordinator and vice versa. In short, my question is: is it possible to send a packet from the Gateway via the repeater to the end-device (using directed broadcast) while the end-device is in “Async. Cyclic Sleep Pin Wake” mode, set to wake up every, for example, 10 seconds?

Here’s some more details:

I’d like to use the repeater (directed broadcast ) mode and “not” the Digimesh. The end-device and coordinator are placed sufficiently far so there’s no direct link between them. Although the end-device –> Gateway direction is working, the Gateway –> end-device is not. I’ve included the important parameters of the three nodes below:

CE: Non-routing Coordinator [3]
TO: 80
SM: Normal [0]

CE: Standard router [0]
TO: 80
SM: Normal [0]
DH, DL: MAC address of Gateway

CE: Non-routing Poller [4]
TO: 80
SM: Async. Cyclic Sleep Pin Wake [5]
DH, DL: MAC address of Gateway
SP: BB8 (10000ms)

Without a mesh, you’ll find this tough. You’ll need to:

  1. keep your sleeper awake ‘longer’ to make it a better target for the message.
  2. expect a lot of failed messages.
  3. perhaps you can configure the repeater to repeat each broadcast more times?

What happens in a MESH with sleeping nodes is that router-nodes act as the parent (or proxy) for any sleepers. So when you send a message to the sleeper, the parent/proxy HOLDS/BUFFERS the message for the sleeper. The sleeper literally wakes up and does NOT talk to the full network, but just the parent/proxy via a pt-to-pt link. So you can think of the parent as a ‘remote buffering manager’ for the sleeper.

In a non-mesh design, you’ll need to be lucky and have your sleeper awake when someone broadcasts the message for it.

Now, perhaps you could use a smart repeater - have it detect & hold/store the message for the sleeper. When it detects the sleeper broadcast that it’s awake, quickly repeat the old/stored broadcast. You could do that, but you are just reinventing a crude version of “a mesh”.