This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hi,
After the IOS active disconnection, a Write Transaction will be sent, and then connecting with an Android phone will result in a failed service discovery issue
In addition to the Android connection will find that the service fails, do the host to connect to the slave, call GATT_WriteNoRsp returns 0x16, call GATT_ExchangeMTU interface returns 0x16, it will affect the arbitrary ATT commands sent
SDK:simplelink_cc13xx_cc26xx_sdk_7_10_01_24
examples:multi_role
Problematic cell phones:iPhone 13(IOS15.2.1)、iPhone 14 Pro(IOS16.5)
Android phones don't have this problem with active disconnects
Hi,
Thank you for reaching out! We will take a look at your provided logs and get back to you as soon as possible. In the meantime, can you clarify if you have tested with other iOS devices and only found the issue in the ones you have outlined or if those are all the ones you tested.
Best Regards,
Jan
Hi,
Also tested the following phones which did not reproduce the issue, only iphone 13 and 14 found this issue
Hello,
Thanks for the details.
Is this happening after one disconnection or is it a behaviour that occurs after several disconnection events?
I am working on reproducing the issue and reporting it to the respective team. Please bear with me.
I will be back to you next week with updates on this.
BR,
David.
Hi,
There is a probability of 80% will occur, the test method is as follows
1, with IOS cell phone connection, subscribe to NOTIFY after the initiative to disconnect, look at the air data if the disconnect command appears after the Write Transaction will be a problem!
2, and then use the Android phone connection will appear to discover the service failure
Hello,
Thanks for the information.
For reference, are you using the SimpleLink Connect Application from TI?
BR,
David.
Hi,
Does SimpleLink refer to the board or the SDK, I'm using a custom board!
Hello,
Okay thanks for confirming that.
I am trying to reproduce the issue, however after a disconnection I cannot see that Write Transaction.
I am working on validating this with other iPhone versions. Are you using multi_role example out of the box or have you modified something? Is this also happening with Simple Peripheral example?
BR,
David.
Hi,
I was able to reproduce the problem with simple_peripheral's project as well, see attachment I only changed the UUID.
1, iphone 13 with nrf connect connect bluetooth, subscribe to subscribe notify, after that click Disconnect disconnect
2, and then use the Android phone to connect, it will appear to discover the service failure
It may take several measurements before it appears and use iphone13 or iphone14
Hello,
After how many attempts do you see this issue? I still cannot see the same sequence of events (with either application).
On the meantime I will be sharing this with the R&D team, but I am still working on the steps to reproduce it and to do so more frequently.
BR,
David.
Hi,
I use an iphone 13 or 14, and I can reproduce it within 20 tests.
Step 1。
Step 2
Hello,
Thank you for the details.
I will be back with an answer about this next week. Please bear with me.
BR,
David.
Hello,
To keep you updated on this.
I am still working on replicating the issue with no success. Probably this is related to the IOS version you have.
Could you please specify the IOS version?
I am also working on other ways to figure out how to reproduce this if this keeps being had to do it using the iPhone.
Is this blocking you from going into production at the moment?
BR,
David.
Hi,
I tried iPhone 13 (IOS 15.2.1) and iPhone 14 Pro ( IOS 16.5) will have the problem and upgraded iPhone 14 Pro to IOS 17.2 also have the problem.
This problem has a wide range of impacts, for example, when the CC2642 is used as a host to connect to a slave, the host has been unsuccessful in negotiating the MTU, and needs to be reset to restore the
Hello,
I have tested with an iPhone 13 and 15 (IOS 17.0.3) and do not get any Write Transaction for Disabling notification after a Disconnection event to reproduce the issue you have. The image below is pretty much the same for 20 attempts I did. How did you reproduce it using the SimpleLink Connect app? I am connecting, enabling notifications for characteristic 4 inside services and then turning of the Bluetooth for the entire phone. Is this the same process.
This being said, I know you can reproduce it so I am talking to the R&D team to see if we can find different ways to see this issue with a better probability of seeing it every time.
BR,
David.
Hi,
I've only changed the UUID for this project, and I've found it harder to reproduce the problem with FFF0's UUID, so maybe try my UUID for this project
Hello,
Interesting. Could I kindly ask for you to also share the ".hex" file so that I can make sure we have the same code flashed and speed up the testing process now?
BR,
David.
Hello,
Appreciate the patience.
I have been able to replicate the issue.
However I wanted to ask you if a second attempt to connect to the Android device (after notification disabling) is successful in your case? Because I can see a connection issue for the first attempt, but the second one works fine.
BR,
David.
Hi,
The second connection can be successful,And found the service, sending and receiving data are normal.
Because my project is multi_role, when the CC2642 does the central go to connect to the peripheral, the call to the GATT_ExchangeMTU interface keeps returning 0x16, so it doesn't really get back to normal and has to be reset.
Hello,
Understood.
I have raised this issue to our internal team and they are reviewing it to find a solution.
I will be back with updates the first week of January.
BR,
David.
Hello,
Apologies for the delay on the update.
I am discussing with the internal SW team to see if a workaround is the way to go here, considering a fix could be available on a new SDK release. I would suggest also to open a request to the iOS Apple support to fix this as the behaviour (sending a disable notification request after a disconnection event) is not consistent to what is expected by the Bluetooth core specifications.
BR,
David.