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

Multiple nodes acknowledgement problem

Getting acknowledgement only from single node which is 1st connected

Parents
  • Hi Anaya, 

    Please be more specific when asking question. You will get the support faster. 

    Please provide us information how you setup the nodes, if they subscribe to anything, how you send the message. What kind of message it is. 

  • Good evening Sir,

    Ok Sir. I will explain the case :

    1. I have created a mesh network where  I have configured 2 nodes say A and B.

    2. on A node I have 2 on-off servers and set publication address 0x0001 and 0x0002. The lamp operates ok on hardware.

    3. on B node I have 2 on-off servers and set publication address 0x0003 and 0x0004. The lamp operates ok on hardware.

    4. I disconnect the network and again reconnect. Then Node A occurred 1st. I got connected to network.

    5.  I redirect to a new activity where I have given Lamp1, Lamp2, Lamp3, Lamp4 with on-off buttons.

    6. While click on on/off of Lamp1 and Lamp2 then lamp1 operates at hardware and also get onMeshMessageReceived acknowledgment on which I want to show on/off status.

       But when I operate Lamp3 or Lamp4, I didn't get onMeshMessageReceived acknowledgment.

    7. But if I connected to node B, then it works exact opposite of point 5.

       That is I got acknowledgment of Lamp4 and Lamp5 but not of Lamp1 and Lamp2 which are configured on node A.

    8. My requirement is need to receive every lamp acknowledgment when connected to any node in the network.

    Kindly give the solution.

  • Hi Hung,

    Greetings!

    I am colleague of Mrs. Anaya and I am working on it's nRF52832 development.

    Please note below points.

    1. We also have observed timeout

    2. There is no activity apart from 3 servers and 1 client

    3. However at every 3.3 seconds or 10 seconds client requests status from it's respective server and also while requesting it finds that client is busy with previous transmission then it cancels it and sends new request on next timeout.

    Please confirm whether it will affect other models (OnOff Server) behavior?

    4. Regarding 500uSec timer

          4a. It is used for handling background activities like LED, Buzzer and flash persistence storage (status of device)

          4b. Please note that in flash persistence storage activity, every time when there is change in device status, we tried to save it into flash.

          4c. If needed we can increase it's time to couple milliseconds.

    5. Can you please help us to understand how we can debug proxy functionalities? I mean how can we find out that proxy node has missed to forward data to other nodes?

    Also please mention if there is anything we can do additional to resolve this issue.

    Waiting for your positive reply.

    Thanks to you and Nordic team for your quick, timely and great support.

    Regards,

    Dinesh

  • I would suggest to print out log on the proxy handling (mesh_gatt.c and proxy.c) to check when you receive the command from the phone. 
    Also try to increase the latency of the timer to longer, just to check if it's was the cause. 
    You can remove some functionality until you can see that the issue disappear. I would suspect the flash activity could cause a problem if you use it too often. 

  • Hi Hung,

    Thanks for your suggestions.

    We will try our best on your suggestions and try to find our the cause.

    Thanks you.

    Regards,

    Dinesh

  • Hi Hung

    Greetings!

    As per your suggestion we tried to debug issue and we are having below observations.

    1. We have disabled flash activity and checked. In this case we are experiencing timeout issue

    2. Then we have increased 500uSec timer interval, here also we are experiencing timeout issue

    3. Then we disabled that 500 uSec timer then also bad luck

    Also as per your suggestion we enabled mesh_gatt.c and proxy.c logs and below are observation

    1. The node to which android app is connected (proxy_node) shows log for number of request made

    Sample logs

    a. Request successful

    proxy.c 640: RX

    proxy.c 571: RX GATT PDU type 0x0, len 20

    proxy.c 648: TX Complete

    b. Request NOT successful

    proxy.c 640: RX

    proxy.c 571: RX GATT PDU type 0x0, len 20

    Here "proxy.c 648: TX Complete" log is not appearing

    So we have decided go further and debug. So we have added log statement to node (end_node) of which status is requested. That node shows that status has been sent successfully.

    Request you to please guide further

    Note: attaching screenshot of log for your reference

    Regards,

    Dinesh

    proxy_nodeend_node

  • Hi Dinesh, 

    Thanks for the information. We actually reproduced the issue here even with the light switch server. So most likely it's not what you implemented caused the issue. 
    But how often do you see the issue when you get the time out ? Is it what similar to my video ? Like once out of 7-10 times ? 

Reply Children
Related