This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Disconnected from iPhone error code 0x2a without LMP collision

The nRF51822 softdevice is generating the following disconnection event:

11:20:09.363365 : BLE_GAP_EVT_DISCONNECTED c=x05dd
11:20:09.365011 :   reason = x002a
11:20:09.366442 : DM_EVT_DISCONNECTION
11:20:09.368329 :    - SUCCESS

The above event is generated by the softdevice upon the reception of the below LL control message from the iPhone:

LE BB:
Header Length: 13
Header Version: 3
CP #: 1
Channel Index:  2 - 2408 MHz
Meets Predefined Filter Criteria for BT low energy devices: No
Receive Status: Received without errors
Decryption Initiated: Yes
Decryption Status: Decrypted successfully
Signal Strength: 8 (medium)
PDU Length: 8

LE PKT:
Preamble: 0x55
Access Address: 0xaf9aa21b
CRC: 0xbe82fe
LE DATA:
LLID: Control
NESN: 0
SN: 0
MD: 0
Payload Length: 6
MIC Present: Yes
Encrypted MIC: 0x3cfe9fdd

LE LL:
Control Pkt: LL_TERMINATE_IND
Error Code: Remote User Terminated Connection

Why does the Softdevice modify the error code received in the LL packet? 0x2a is very misleading for debugging and leads to other devzone threads.

The OTA capture can be found at ios-nordic-disconnect-2a.cfa

  • @Louis: Could you give me more information on the 0x2a error code you received ? On which side did you get the error on the phone or on the nRF51 ? And in which event ? I can see you received "Remote User Terminated Connection" disconnect reason. It would be easier to understand the issue if we have the sniffer trace when the disconnection occurs.

  • Hi Louis, Thanks for the sniffer trace.

    Could you let me know which softdevice, SDK and firmware you used on the nRF51 ? From your trace, I found it's pretty strange to see that the peripheral was advertising when in connection. Were you using timeslot ?

    A "Remote user terminated connection" happened at packet #1217. I'm not sure why you got the disconnect reason of 0x2a which mean BLE_HCI_DIFFERENT_TRANSACTION_COLLISION. I don't see any reason why the softdevice returned that code. Have you made sure you changed the optimization level to 0 ? How was the connection terminated ? By clicking disconnect button on the Phone? If you can take the sniffer trace using our sniffer, it's would be much appreciated. I'm more familar with out sniffer.

  • This problem disappeared after implementing the solution for the iPhone LMP collision issue here

Related