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

UNSTABLE NERWORK

In past I try to solve this problem:

https://devzone.nordicsemi.com/f/nordic-q-a/51249/state-chaneged-flags

Now I have new informations about this problem.

Using hardware:

Testing on hardware moduls ebyte e73-2g4m08s1c and fanstel bt-840 which contains NRF-52840.

this moduls have onboard or external antenna 

Tested using SDK:[1]

-nRF5_SDK_for_Thread_and_Zigbee_v3.2.0

-nRF5_SDK_for_Thread_and_Zigbee_v3.1.0

Project examples:[2]

-simple coap client

-simple coap server

-dfu client + iot coap

Size of network:[3]

2 - 8 nodes

verifyed through thread topology monitor

nodes are in one room, two furthest distance is 1-6 meters

Count of nodes which is unstable[4]

                    count of unstable  /  size of network

sometimes                          [2 / 2]

sometimes                          [1 / 2]

sometimes                          [1 / 3]

sometimes                          [4 / 5]

sometimes                          [2-3 / 8]

OT DEVICE ROLES:[5]

role                                                   number of role

OT_DEVICE_ROLE_DISABLED     0

OT_DEVICE_ROLE_DETACHED   1

OT_DEVICE_ROLE_CHILD            2

OT_DEVICE_ROLE_ROUTER       3

OT_DEVICE_ROLE_LEADER       4

Time to go UNSTABE[6]

sometimes 1min, sometimes 5min, sometimes more...

1-30 min

Desctiption of behaviour:

-I create THREAD network using some example[1] from SDK [2]

-nodes create THREAD mesh network [3]

-after time[6] some nodes[4] go from ROLE 2 or 3 or 4  to ROLE 1 [5]

-sometimes one of nodes in ROLE 1 go to ROLE 4 and pbobably create separate THREAD mesh network and others join 

-normally nodes which is unstable stay in ROLE 1 unless is device restarted

Other informations:

-is used DRV TIMER 2

-is used UART 2

-set Transmit Power to +8dBm

-thread CLI init is not call becouse need use these pins for my UART

- I use COAP protocol to comunicate with NCP

-NCP never have this problem

Parents Reply
  • OK that's good news,I think I know the reason for this. There are no LF crystal requirement for Thread, but the OpenThread stack use in the SDK is compiled to use the LFCLK. If you don't want to use an external LF crystal, you need to change the LF clock source in sdk_config.h to run with the internal RC oscillator instead.

    BR,

    Marjeris

    Edit: you don't need to actually build the OpenThread stack again to use the RC oscillator, you only need to change the LFCLK source in sdk_config.

Children
Related