Beware that this post is related to an SDK in maintenance mode
More Info: Consider nRF Connect SDK for new designs
This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Connecting to device based on RSSI value in mesh

Hey

I am working on mesh networking (light switch program). I would like to make a connection between client and server without involving provisioner based on the RSSI value. It means that client has to send the data to nearest server by knowing the RSSI of advertising data. Client itself have a ability to scan the servers and send scan request to nearest server. I also want to receive the RSSI of client from server and send the RSSI and MAC id of client to other device. Is it possible? What changes i need to do in client and server program ? 

Thanking You

sumanth

  • Hi Sumanth,

    Please clarify, are you planning to use our Bluetooth Mesh or you want to make your own mesh protocol ? 

    What do you mean by "a connection" ? Do you mean you don't want to involve the configuration, like assigning subscription and publication address ? 

    If that what you want, you may think of using HeartBeat. Basically, heartbeat is a message to a group address that other nodes also subscribe to. In that heartbeat message you can find how many hops the packet has passed through. It also contain the RSSI value of the last hop. Using that information you can determine if the peer device is close by or not.

  • Hey thanks for your reply, I would like to know can we combine provisioner and server/client in a single program. I want to send the data to nearest server among group of servers (instead of group). The way i want to send is by measuring RSSI of servers. is that possible? 

    regards

    sumanth

  • It's possible to combine provisioner and server/client in a single program. Actually we did this in our SDK v2.0.1 you can refer to. 

    As I mentioned, you can use Heartbeat to get the RSSI.

    Actually if you don't want to use heart beat, you can use any other message, the RSSI is available on access layer  inside access_message_rx_t -->meta_data --> p_core_metadata--> scanner --> rssi 

Related