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

RSSI monitor implementation help

I am using nRF52840 Dev kit (PCA10056), with nRF Mesh SDK 4.0 and nRF SDK 16.0.

I have such FOUR kits. I have been able to modify vendor model for a sensor to transfer Temperature and Humidity using the "simple on off" example provided.

Now I want to use the "RSSI Monitor" example. I have searched online for such examples, if any one is using it, to see how the functions are used. Found none.

I am not sure how many times should I call this function in server to collect data:

uint32_t rssi_server_add_rssi_data(uint16_t test_address, int8_t rssi);

How to collect the RSSI data from this server using client?  I am using nRF Mesh app in Android (using as provisioner here) to send (in RSSI_client) vendor model request 0xC6, which returns me 0xC55900.

I want to get RSSI values from other 2 nodes to RSSI_server and then receive it to RSSI_client and print on debug side.

Can anybody help?

Parents
  • Hi Manoj, 

    I assume that you had a look at the documentation of the RSSI models here.

    The way the rssi server works is that every time you call rssi_server_add_rssi_data(test_address, rssi) it will check the database m_rssi_entries[] if the test_address is one of the entries and will calculate the sum rssi value to the database (so that it can send the mean rssi value later on)

    You call rssi_server_add_rssi_data() when you receive a package from one of the nodes that you are interested in (it can be all the nodes around you, or some of the nodes that you are monitoring). Note that you can get RSSI in the meta field of any mesh packet. 

    When the client request the rssi value, or when it's published periodically (if the server is setup for publishing periodically) these values will be sent to the client. 

    I would suggest to test first with a client implemented on a nRF52 instead of testing on the nRF Mesh app on the phone. After you get familiar with both the client and the server , you can start implementing the client on the nrf Mesh app. 

  • Thanks for help. I was able to read the RSSI value from message packets received from either of them. One last thing I would like to clarify using this link. I want to know, If there are multiple relays between Node 0x0003 (sensor) and receiver node (0x0001) say RSSI client, RSSI value I read is:

    a) between node 0x0003 and the nearest relay OR

    b) between received node with its nearest relay which are passing on this messages.

    c) something else*

Reply
  • Thanks for help. I was able to read the RSSI value from message packets received from either of them. One last thing I would like to clarify using this link. I want to know, If there are multiple relays between Node 0x0003 (sensor) and receiver node (0x0001) say RSSI client, RSSI value I read is:

    a) between node 0x0003 and the nearest relay OR

    b) between received node with its nearest relay which are passing on this messages.

    c) something else*

Children
Related