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.

Iphone fails to connect to CC2541.

Other Parts Discussed in Thread: CC2541

Hi,

I am experiencing the following issue:

When using iphone app to connect to CC2541 running Simple BLE Peripheral project, sometimes the app cannot connect to the device. The app can always discover CC2541 as expected, but just cannot make a connection successfully.

So far I have tried two iphone apps: (1) a free app called LightBlue, and (2) an app built by myself. Their behaviors are basically the same.

The issue does not show up every time. To reproduce it, I use the iphone app to connect to the device and disconnect repeatedly (maybe around 20 times). Once the issue shows up, it can consistently be reproduced, until I power off iphone, reboot it and try again.

Below is the sniffer trace. The issue always happens when master (iphone) and slave (CC2541) exchange their Link Layer Version. Iphone always nack the LL_Version_Ind packets sent from CC2541 (as you can see, the NESN bits in the packets sent from iphone are always the same), so CC2541 keeps re-sending the same packet.

I wonder if anyone is aware of the issue? If yes, is it possible to work around?

Thank you for the response.

Regards,

Jack

  • Hello,

    We have seen this reported also. After investigation, we determined the iOS device sometimes sends wrong NESN ,SN. The control sequence will eventually cause connection termination. Only workaround from TI side is to add your own application timer and try and detect when this is occurring, and terminate earlier.  hopefully iOS will fix this soon.

    BR,

    -Greg

  • Hi Greg,

    After trying to reproduce the issue for many many times, I found an interesting thing:

    Every time when CC2541 sends out the LL_Version_Ind relatively quickly, the issue will show up. 

    It is highly possible that iphone has a bug, that will be triggered when iphone receives LL_Version_Ind too quick.

    I wonder if it is possible to modify the BLE stack in CC2541, to wait for a delay before sending out LL_Version_Ind?

    I think 5~10 connection events should be enough.

    Thanks a lots for the response.

    Best Regards,

    Jack