This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Thread connection check on SED

Hi! I am developing application for thread on NRF52840. I've got one problem with connection stability. Sometimes some SED nodes are disappearing. Only reset makes them to renew the connection. My nodes are connecting as children to mesh, going to sleep and wake up to send packet every few minutes. Is there any smart way to check connection in program for SED? I want to reset node or establish new connection while connection failure.

Best regards, Wojciech Rzepecki

  • Hello Wojciech!

    Glad to hear about your project!

    First of all, how do you know that SED nodes are disappearing? Do you check it in Thread Topology Monitor, or nodes suddenly stop communicate e.g. with the cloud?

    When it comes to SED there are two important parameters:

    • Polling period - which is the interval to perform 802.15.4 Data Poll Request. See: otLinkSetPollPeriod function.

    As you probably know, when parent node wants to send message to a SED child, it has to wait for 802.15.4 Data Poll Request from its child. So this parameter defines the responsiveness of delivering packets to the SED. Poll period can be changed dynamically, e.g. when you expect to receive some message quickly you can reduce the poll period, and after it is received you can restore longer poll period.

    • Child Timeout - this is time register by SED to its parent, after which the child is timeouted (and removed) if 802.15.4 Data Poll Request is not sent within this time. And so it should be longer than poll period.

    See: otThreadSetChildTimeout function.

    I guess if you expirience such disconnections it might be incorrect setting of MLE Child Timeout.

    Please look at role_change_handler function inside examples\thread\experimental\simple_coap_server\main.c file in our SDK to check how to manage role change (also to know when node disconnects - OT_DEVICE_ROLE_DETACHED).

    If the problem is not related with the MLE Child Timeout, can you provide any sniffer logs, RTT OpenThread logs etc. to us?

  • Hello!

    Thanks for fast answer. Yes, I'm using Topology Monitor. I'll do some experiments with poll period and child timeout. I've previously set child timeout a liitle longer that my rtc wakeup. Is it correct? Is poll period important when using SED only for data send via UDP?

    Best regards, Wojciech Rzepecki

Related