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

Is this the softdevice issue?

Hi all,

The ble_app_keyboard demo could not connect to ipad smoothly like followed operation:

1.use two iPads(ios8.2), iPad A and iPad B; 2.use the ble_app_keyboard demo in SDK 8.0 and SD8.0; 3.first bond the iPad A and work well with button pressed; 4.turn OFF the BT in iPad A, and the KB back to ADV, at this time, iPad B could find the KB and click the device to connect, but fail, with CONNECTED displayed at a very short time then DISCONNECT, no dialog pop up to ask for PAIR; 5.use the sniffer to listen and find it has come to the CONNECT_REQ step which mean connect successfully, but, the MASTER ask for the LL_VERSION_IND and no response from the SLAVE for 4~5 times then the SLAVE restart ADV again; 6.finanlly, the MASTER connect the SLAVE and disconnect immediately, again and again, and till the SLAVE answer it correctly at some time, when the KB could work well then. In this situation, why does the SLAVE not return the LL_VERSION_IND resonse ? At the most time, it does not give any response. If it answer, the next step is for the ENCODE and the function goes well. In my opinion, the device should connect to iPad B when iPad A is not working, even they has connceted before. I guess the response for LL_VERSION_IND is done by the SD itself, right? If so, is this the issue? Anything wrong, please correct. Thanks.

Parents
  • The KB is bond with iPad A and then want to bond with iPad B without pressing the bond delete button with restart. The issue is why the KB could not bond successfully with iPad B. As my understand, if the KB gave the LL_VERSION_IND response, the bond process should be go on to complete, right? Why the KB ignore the 6 connection interval? The ble spec limit? or the softdevice decide it? Even the iPad B is not in the KB's whitelist, if the KB could reponse what the iPad B need, it could add it to the list. I am not clear why the KB did not do so. Additionally, it could bond to iPad B successfully after trying some more times. I think the key difference is the bond delete button pressed or not. Anything else to handle by the SD exclude the flash clear? Thanks.

Reply
  • The KB is bond with iPad A and then want to bond with iPad B without pressing the bond delete button with restart. The issue is why the KB could not bond successfully with iPad B. As my understand, if the KB gave the LL_VERSION_IND response, the bond process should be go on to complete, right? Why the KB ignore the 6 connection interval? The ble spec limit? or the softdevice decide it? Even the iPad B is not in the KB's whitelist, if the KB could reponse what the iPad B need, it could add it to the list. I am not clear why the KB did not do so. Additionally, it could bond to iPad B successfully after trying some more times. I think the key difference is the bond delete button pressed or not. Anything else to handle by the SD exclude the flash clear? Thanks.

Children
No Data
Related