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

mesh Configuration

The relay successful rate of my Mesh setup is not 100%. I think light server miss packet from light client. I have tried to change configuration following:

1  #define BEARER_SCAN_INT_DEFAULT_MS 700 (default 2000) ;

2 #define BEARER_SCAN_WINDOW_DEFAULT_MS 700 (default 2000) ;

But it seems performance no much difference. May consult how to optimize Radio configuration in order to scan 37, 38, 39 channels fast effectively?

Thanks

MK Chen

Parents
  • Hi Chen, 

    What is the success rate do you have ? 

    Do you have any retransmission for a packet you send ? In our example (light_switch) we have APP_UNACK_MSG_REPEAT_COUNT  = 2 

    Changing BEARER_SCAN_INT_DEFAULT_MS  and BEARER_SCAN_WINDOW_DEFAULT_MS  wouldn't help since we already scanning at 100% 

    Regarding RSSI filtering, you can filter after the message arrived in access layer, but not in the radio or in network layer.

  • directly without relay: successful rate is 100%

    one hop relay:  successful rate is 90%

    two hop relay: successful rate is 50%

  • Could you provide more detail instruction of filtering RSSI , which file and which function ?

    Thanks a lot.

  • repeat number what I saw using Sniffer is 3. Is it following #define?

    #define PROV_BEARER_ADV_UNACKED_REPEAT_COUNT                    (4)

  • You can find the rssi value inside nrf_mesh_rx_metadata_t ->scanner->rssi.

    But I don't see how rssi having rssi filter here can help. 

    PROV_BEARER_ADV_UNACKED_REPEAT_COUNT   is not related, as it's for provisioning bearer

    How far is it between your relays ? Do you have a lot of interference ? I don't see how success rate with one hop is 90% then with 2 hops it's only 50% Thought it should be around 81%. 

    Please make sure you have good enough TTL to cover all the hops. In your case TTL should be minimum 4. 

    What is the repeat number you find in the sniffer ? Could you show ? 

  • Hi Hung Bui, Thanks for you reply.

    my setup as following diagram:

      may

    I don't think there is many interference, because it is office and after office hours. Since Tx power is -16dBm, I may be too low. my idea is increase Tx to -10 dBm and add RSSI filter to prevent  Tx signal bypass reply note.

    I have used sniffer to capture Relay signal, normally it will be relay 3 packets at 37,38 and 39, but sometimes less then 3 packets, is it should be sniffer missed packets?

    Could I consult you following:

    what is default TTL value? where can check at source code  ?

    I can't find APP_UNACK_MSG_REPEAT_COUNT  = 2 , where can check repeat number at source code?

    Thanks

    MK Chen 

  • You can find APP_UNACK_MSG_REPEAT_COUNT = 2 in our lightswitch client code (SDK v3.x)

    It's very simple we call access_model_publish() APP_UNACK_MSG_REPEAT_COUNT times when we send one message. 

    The TTL value is set during provisioning&configuration , you can find it in the node_setup.c  at client_pub_state_set() or config_step_execute() at NODE_SETUP_CONFIG_PUBLICATION_ONOFF_SERVER event. 

    Node that it's only for the light switch example. If you write your own code and your own provisioner, you may set it differently. 

Reply
  • You can find APP_UNACK_MSG_REPEAT_COUNT = 2 in our lightswitch client code (SDK v3.x)

    It's very simple we call access_model_publish() APP_UNACK_MSG_REPEAT_COUNT times when we send one message. 

    The TTL value is set during provisioning&configuration , you can find it in the node_setup.c  at client_pub_state_set() or config_step_execute() at NODE_SETUP_CONFIG_PUBLICATION_ONOFF_SERVER event. 

    Node that it's only for the light switch example. If you write your own code and your own provisioner, you may set it differently. 

Children
No Data
Related