Relay functionality Mesh SDK v2.0.1


I'm working with simple_message_model using light switch example from  Mesh SDK v2.0.1, I have 4 boards nRF5832, 1 client, 1 provisioner, 1 relay node and 1 server which have the ble_nus project combined with my message model. The communication between client and server works fine but when I add relay node which is a server that have a relay functionality enabled, it doesn't relay my messages, I tried lowering the TX power of all the devices but it appears that the range is smaller and communication won't happen between the nodes, I ve looked into the network.c file and found that should_relay() function is responsible of whether relaying or not the packet, there is a condition that It should relay to a non unicast address, which is not my case, I want to relay it to my server which have a unicast address so I changed that condition, and still won't relaying, I don't know why ? is it because I'm sending string messages? Or something related with addresses and how they are assigned by provisioner (in order) because in my case they are not, I have relay node having 0x0107 address and server node with 2 elements assigned with these addresses 0x105 and 0x106.

Any help please, it would be greatly appreciated.

Thank you,

  • Hi Arij, 


    All examples in our Mesh SDK has relay role by default. How did you disable the role ? 

    Could you try to test and verify the issue with the light switch example in the SDK ? You can have 1 light switch client, 2 servers. And one of the server should act as a relay to forward the command from the client to the other server. 

    What you send in your payload shouldn't affect the package relaying. Packet to an unicast address should get relayed as well. 

Reply Children