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


  • Hi Hung,

    Greetings!

    1. As per your suggestion we have tried sniffer trace and have taken few trials with 3 different devices.
    We have connected only 2 devices at a time and operated 2nd device by connecting app to first device.
    Out of these 3 devices 1 is nRF52DK and rest 2 are our devices.

    Also we have used nRF Mesh Android App for these trials.

    Please find attached Wireshark Capture Log files for your reference and guide us further.

    2. Also please note that we are not using any long interrupt handler in our device firmwares

    Regards,

    Anaya

    Wireshark_capture_files.zip

  • Hi Anaya, 

    The sniffer trace you provided didn't track any connection. 

    You need to select the advertiser before the connection. Inside the Interface menu, there is a dropdown list of all advertiser, you need to choose the one you want to sniff. After that you make the connection from the phone. Please follow the instruction in the sniffer manual. Most important thing is that you can see the connection established in the sniffer trace. In your current traces there are only advertising packet. 

    Do you see the same issue when you test with our stock light switch example (no modification) ? 

  • Hi Hung,

    Greetings!

    Thanks for your reply and suggestions.

    As per your suggestion we have taken trials with modified and stock applications (light switch server) and captured sniffer log for device to which android app is connected. (2 trials for each modified and stock application). Hope now we have given you the correct log files.

    Please note that we have experienced timeout log in both the situations.

    Request you to please suggest us further steps to resolve this issue.

    Regards,

    Anaya

    Wireshark_capture_files_20200518_165500.zip

  • Hi Anaya, 

    I just tried here with the stock example and found the same issue. Most likely it's the update on the app caused the issue. I will continue the test and let you know if we find the root cause.

  • Hi Anaya, 

    I have continued the test but the result was not consistent. So at a point I have 60% packet dropped but when I tested again now it worked like before about 5-10% drop. I suspecting the interference from many of our test devices in the building caused the issue. 
    I would suggest you to check that as well. Do you have any high traffic on the 2.4GHz domain ? like wifi and other network ? 

    In your test how many devices do you have ? Have you tried to test using NRF52 DK ? 

    We need to have a better way to debug this issue. I think it's the best to print out logging. 

    Please init logging like this in the light switch application:  

    __LOG_INIT(LOG_SRC_APP | LOG_SRC_FRIEND|LOG_SRC_BEARER|LOG_SRC_NETWORK, LOG_LEVEL_DBG1, LOG_CALLBACK_DEFAULT);
    
    

    We will stick with the light switch application for testing to make it easier to align the test on your side and our side. If you can test using a fresh copy of the SDK it would be nice. I assume you are testing on SDK v4.0 ? Please also consider testing on v4.1 as well. 

    In the RTT log you will be able to find logging from proxy.c and from network.c. 
    The proxy.c handle the connection to the phone. And network.c is the actual mesh ADV packet between nodes. 

    In my testing here, I can see that when there is a command from the phone (that got timeout) the proxy node has managed to forward it to the network layer and the network layer sent the packet. 

    But on the remote node (not the proxy node) I don't see it receives this TX packet, showing that the packet is dropped/corrupted, could be due to interference. 

    Please try to test with debug enabled and let me know what you find. Also please try to test on different environment, and with different phone, etc. 

Related