Issue with Xbee3 digimesh polling method

We are currently working with Digi Xbee3 micro module Digimesh 2.4
Firmware version : 300B

  • We are working on Synchronous Sleep network with 100 devices with 10 hops. All end devices are battery powered.
  • Earlier we were using pushing scheme, where all 100 devices sends data at a time to coordinator.
  • We were not able to receive 100 devices data every time , even after keeping wake time(ST) = 50 seconds, we were getting for every wake cycle 92,96,84 devices data,

So we were Suggested to use polling network/method which will be faster and there will be no collisions of data
-Now the flow is first we are doing xbee.discovery()in coordinator side ,
-After discovery according to the macid we got in the list.
-We are sending a unicast packet saying “hello” to 1st end device ,if “hello” is received in 1st end device send packet to coordinator.
-Then again sending a unicast packet saying “hello” to 2nd end device. If “hello” is received send packet to coordinator.

Is this the polling method , which will be faster and there will be no collisions of data?

ISSUE :

  • For 3 end devices to poll its taking approximately 2 second
  • We are sending unicast packet to each node ,if some node got failed or battery got discharged, As coordinator sends Xbee.transmit(destination address, payload)
    as it couldn’t reach the particular node it takes more than 3 second to return from this function with error, which will be passed using exception case,
    but we will lose 3 second wakeup duration every wake cycle how to resolve it.

will the polling method will work for mesh networking for 100 devices considering 10 hops?

Yes a polling method will work. You might just need to do it in cycles or groups depending on your wake time and other issues.