CC2640R2F: Request for Clarification on BLE Error Code 0x19 / GATT Error Code 6

Part Number: CC2640R2F

Dear Support Team,

We are using the CC2640R2F module in our running project with SDK version 4.30.00.08.

During normal riding conditions, the customer has reported intermittent disconnection issues. From the mobile application logs, we observed GATT Error Code 6. To investigate further, we enabled BLE logs on the module and found HCI Error Code 0x19.

According to the TI SDK documentation, Error Code 0x19 corresponds to HCI_ERROR_CODE_UNKNOWN_LMP_PDU.

Could you please help us understand the following?

  • What does HCI_ERROR_CODE_UNKNOWN_LMP_PDU (0x19) indicate?
  • Under what conditions is this error generated?
  • What are the possible root causes of this error?
  • How can this issue be handled or mitigated in the CC2640R2F module using SDK version 4.30.00.08?

We would appreciate your support on an urgent basis, as this issue is impacting our customer's application.

Thank you, and we look forward to your prompt response.

  • Hi Jayaprakash,

    Thank you for reaching out! HCI_ERROR_CODE_UNKNOWN_LMP_PDU (0x19) means the CC2640R2F received an LL Control PDU (LLCP) from the connected phone with an opcode it does not recognize. When this happens, the controller responds with LL_UNKNOWN_RSP. Per the Bluetooth specification, the peer should handle that gracefully and stop using that procedure. However, some phones choose to terminate the connection rather than fall back, which is why you see disconnections. This error is typically triggered when the central device (the mobile phone) attempts an LL Control Procedure that the CC2640R2F's BLE 5.0 stack does not support. Modern phones running Android 12+ or iOS 15+ support BLE 5.2 features such as LE Power Control and Enhanced ATT (EATT). When a phone proactively initiates one of those procedures on a BLE 5.0 peripheral, the CC2640R2F sends LL_UNKNOWN_RSP because it has no knowledge of the corresponding opcode. The GATT Error Code 6 (Request Not Supported) you are seeing on the mobile side is likely ATT_ERR_REQUEST_NOT_SUPPORTED.

    There are a few things I would recommend investigating:

    1. See if the behavior is consistent across different phones (iOS vs Android; vary versions).

    2. If a specific configuration is found that reliably reproduces the behavior, try reproducing it in a controlled environment, to see if the riding conditions have an impact.

    To handle this issue, I would recommend taking a sniffer log after finding a reliable method of reproducing the issue and seeing if there is a feature being requested by the peer device that the CC2640R2 does not support. It is possible that migrating to the latest SDK may resolve the issue, but I suggest investigating the above points first.

    Best Regards,

    Jan