Sleeping using Pin Sleep

I’m putting the XBee into sleep by using the pin sleep. The host would wake up and read sensor at predefined interval. Upon completing sensor reading, data would be sent to the XBee by waking up the XBee using the pin sleep and also checking the CTS pin before sending. I found that 80% of my packets are lost all the time. Connection is point to point between Coordinator and End Device. When, the End Device is replaced with a Router, I managed to get 100% reception. Did I miss out on any settings?

Thanks.

We’d like to see your config. You can get this thru x-ctu.

The CTS line will tell your processor when the end device has woken up, but that’s about it. depending on your settings, it’s possible that your end device was asleep too long for the parent, and the parent purged the end device from its child table.

When the end device wakes up and is ready to send, it finds that it is no longer associated to the network any longer and needs to re-associate to a parent before the information your processor sends will make it.

You can help verify/resolve this by doing a couple things.

One, set the SP, SN combination on the parent device long enough such that the end device will never get purged from the child table before the end device will wake up.

Use the API version. If the end device is purged from the network, your processor will receive a status message that the module has disassociated from the network. Wait until you receive the associated message and then send your data. If you just directly send your transmission, the API will also give you an indication as to why the transmission failed.

You can also send the ATAI command to check the association status of the module before you send your message. The best idea is to just set your parent such that it shouldn’t ever be purged in the first place however.

Here’s my configuration on the End Device:


XBP24-ZB_2870_S2B.mxi
80
0
301
2870
0
[A]ID=0
[A]SC=1FFE
[A]SD=3
[A]ZS=0
[A]NJ=FF
[A]JN=0
[A]DH=0
[A]DL=FFFF
[A]NI=
[A]NH=1E
[A]BH=0
[A]DD=30000
[A]NT=3C
[A]NO=0
[A]SE=E8
[A]DE=E8
[A]CI=11
[A]PL=4
[A]PM=1
[A]EE=0
[A]EO=0
[A]BD=6
[A]NB=0
[A]SB=0
[A]RO=3
[A]D7=1
[A]D6=0
[A]CT=64
[A]GT=3E8
[A]CC=2B
[A]SM=1
[A]ST=1388
[A]SP=20
[A]SN=1
[A]SO=0
[A]PO=0
[A]D0=1
[A]D1=0
[A]D2=0
[A]D3=0
[A]D4=0
[A]D5=1
[A]P0=1
[A]P1=0
[A]P2=0
[A]PR=1FFF
[A]LT=0
[A]RP=28
[A]IR=0
[A]IC=0
[A]V+=0


I intend to set the sampling interval to 10 minutes actually. Now I’m going to try with SP = 0xAF0 and SN = 0x19 for the Coordinator which comes to 2800 x 10 ms x 25 = 700 s.
Do you guys think this is adequate?
Thanks for the informative reply. :slight_smile:

It’s working already now for direct Coordinator-End Device connection.

For router, I will set SP = 0xAF0 and SN = 0x19.
Should I also set SO = 0x04?

I would shy away form using the SO parameter unless you know hat it is necessary and in this case it doesn’t seem to be.