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

Does nRF Connect app require a handshake from a device when scanning?

Hi,

The below results indicate the nRF Connect app requires a handshake even when scanning without connecting. Is this true?

I am using the android 'nRF Connnect' app on a phone to scan for an nRF52832 based device, let's call this device A. Device A is in fast advertising mode. I can see device A in the nRF connect app on my phone. Device A normally has a 10m+ range. Device A is 1m from the phone. Using a signal generator and high gain directional antenna, I transmit a noise signal at 2.3GHz in mm proximity to device A. I increase the noise until the nRF Connect app does not show the Device A on the list. During the increase of the noise the nRF Connect app there is no change in the average RSSI until device A is no longer seen by the app.

I have a BLE packet sniffer that is further from device A then the phone and it is picking up the advertising packets from device A loud and clear. However device A is no longer sending any packets besides advertising. The phone is still seeing other BLE devices in my lab.

Maybe this is the limitation of Android or the phone hardware.

  • Firstly hard to say what do you mean by "handshake" (there are only connection, bonding and pairing procedures defined by BT SIG specification) but both Android and iOS (you haven't specified which one you use!) don't need any of them to show you BLE Peripheral/Broadcaster device if it's available for passive/active scanning. However what you are doing are not standard conditions of operation so if you flood the spectrum with noise or colliding packets then only Gods know what all can happen to buggy BLE stacks in Android phones or other devices...

    (btw. I also don't see any link between your test result and conclusion that something called handshake is needed. You seems to be mixing connection - Link Layer PDUs exchanged between two devices in intervals called Connection interval - and broadcasting/scanning phase - where only one device is advertising/broadcasting to all or specific listeners).

  • Sorry I don't know the correct terminology. As far as the link between the result and conclusion we think the receiver in the nRF radio is getting desensitized by the 2.3GHz noise. Which means it can't receive the SCAN_REQ and won't send the SCAN_RSP. Also I did mention Android! :)

Related