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

Weird connection blocking behavior - NRF52

HW: MDBT50Q-P1MV2 (Raytac NRF52 module)

Android SDK: 2.2.4

NRF52840_SDK_VER = 16.0.0
NRF52840_SOFTDEVICE_NUM = SD140
NRF52840_SOFTDEVICE_VER = 7.0.1 

Currently, we are making NRF52 based devices that will be used in office settings where multiple people can access these devices one after another as per need via their smartphones. In our android app, where we are using the NRF SDK, we have taken all care to make sure that the app disconnects from the device upon closing the app. But just to avoid any BLE behavior problems in implementation by Android vendors, we also have implemented a logic that if a phone is connected for more than 15/20 seconds to our device without sending any data actively, then the device will forcefully disconnect the mobile phone too. This was working fine till now in all our deployments. Currently, we are starting to face the problem again in this regard and when we investigated in detail here is what we have found:

There is a specific phone model (Redmi Note 8 Pro) - Helio G90T chipset based - which is causing the problem. The phone tries to actively reconnect even after being forcefully disconnected by the device. We have tried the following already without any success

1) Setting auto-connect to false while establishing a connection in Android

2) Forcefully killing our app, clearing it from memory, uninstalling the app also doesn't help

3) Turning off Bluetooth in this issue causing mobile phone frees up our BLE device now for others to connect to, but the moment I turn on Bluetooth again in that mobile phone, it starts connecting again actively, blocks it for everyone else

4) Clearing Bluetooth cache, changing UUID of service so that it's not falling in the HOGP list which might trigger some android devices to actively reconnect

None of the above has helped us in resolving this issue. This might be happening in some other phone model also, but this is the model we are sure as of now. Also, this happens only in the device the phone has last connected to. As in if the phone has connected/access BLE device A and then B and then C, it tries connecting to and hence blocks C only. A and B are free to be used.

From the look and feel of it, this feels like an Android OS/MIUI issue, but I have tried this in some other ble devices on the same phone and they don't exhibit the same problem. So I feel we are missing something in the Android/Firmware (Some setting or something that might cause this)

Since these devices are already deployed, I kindly request any help from Nordic team to help us resolve this soon

Parents
  • Hi

    First off, I don't see that you have tried deleting the bonding information on the Android device at all, have you? The behavior you explain seems strange though, especially since only the one phone model shows this behavior. I agree that it seems Android related, as a peripheral device doesn't have any ways to affect the central's behavior I'm afraid.

    Can you explain the connection and pairing process in detail for me? I'll also check with our Android experts whether we have any explanations as to what this could mean.

    Best regards,

    Simon

Reply
  • Hi

    First off, I don't see that you have tried deleting the bonding information on the Android device at all, have you? The behavior you explain seems strange though, especially since only the one phone model shows this behavior. I agree that it seems Android related, as a peripheral device doesn't have any ways to affect the central's behavior I'm afraid.

    Can you explain the connection and pairing process in detail for me? I'll also check with our Android experts whether we have any explanations as to what this could mean.

    Best regards,

    Simon

Children
Related