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

Whitelisting a device based on RSSI

Hello!

I would like to whitelist a peripheral when -60 dBm RSSI is achieved (this means that central will bond to peripheral by proximity) but later data exchange must occur independent of the RSSI.

-> Just and example: Peripheral is far from central. Central does not exchange data with this peripheral, as it does not belongs to central's whitelist. Peripheral is put near to central, achieving a RSSI higher than -60 dBm. Central whitelist this peripheral. Peripheral opperates normally, receaving and sending data. If user wants to remove that specific peripheral from whitelist, the peripheral should be put closer to central.

My doubt is on how to do that, where to look and which functions should I change... I kind lost in this issue, as I see different layers when bonding, whitelist and connecting...

Thanks!

  • There is no built in function to only whitelist above a certain RSSI level, either you are whitelisting or you are not.

    Maybe you can do this in the application layer, when you get an advertisment, first check the RSSI, if is below a certain level, connect to it. If not, check the device address against the whitelist you maintain in your application.

    Could you explain a bit more about what you want to achieve with this functionality?

Related