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.

LAUNCHXL-CC2640R2: CC2640 sends HCI Error invalid LMP Parameter Error 30

Part Number: LAUNCHXL-CC2640R2
Other Parts Discussed in Thread: CC2640, , BLE-STACK

Hello,

I have a problem with the TI CC2640 IC and at least one specific smartphone. When connected the phone changes connection parameters and the CC2640 responds with HCI Error Invalid LMP Parameter. Normally there should be no error. I tested it with NRF Connect App and used the unmodified project zero example with ble5stack.

How can I solve this Error?

Here is a screenshot from the App:

Hardware:

- LaunchXL-CC2640R2 Development Board

- Galaxy Note 8, Modell Number: SM-N950F, Android 9

Firmware:

- ble5_project_zero_cc2640r2lp

- SDK 5.30.00.03

- Compiler TI 20.2.6 LTS

The Log file from the NRF Connect App:

ProjectZero_nRF_log.txt
nRF Connect, 2022-09-08
ProjectZero (54:6C:0E:9F:0A:6C)
V 14:39:31.779 Connecting to 54:6C:0E:9F:0A:6C...
D 14:39:31.779 gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferred PHY = LE 1M)
D 14:39:32.055 [Callback] Connection state changed with status: 0 and new state: CONNECTED (2)
I 14:39:32.055 Connected to 54:6C:0E:9F:0A:6C
V 14:39:32.082 Discovering services...
D 14:39:32.082 gatt.discoverServices()
D 14:39:32.089 [Broadcast] Action received: android.bluetooth.device.action.ACL_CONNECTED
I 14:39:32.668 Connection parameters updated (interval: 7.5ms, latency: 0, timeout: 5000ms)
D 14:39:33.078 [Callback] Services discovered with status: 0
I 14:39:33.078 Services discovered
V 14:39:33.139 Generic Access (0x1800)
- Device Name [R W] (0x2A00)
- Appearance [R W] (0x2A01)
- Peripheral Preferred Connection Parameters [R] (0x2A04)
- Resolvable Private Address Only [R] (0x2AC9)
Generic Attribute (0x1801)
Device Information (0x180A)
- System ID [R] (0x2A23)
- Model Number String [R] (0x2A24)
- Serial Number String [R] (0x2A25)
- Firmware Revision String [R] (0x2A26)
- Hardware Revision String [R] (0x2A27)
- Software Revision String [R] (0x2A28)
- Manufacturer Name String [R] (0x2A29)
- IEEE 11073-20601 Regulatory Certification Data List [R] (0x2A2A)
- PnP ID [R] (0x2A50)
Unknown Service (f0001110-0451-4000-b000-000000000000)
- Unknown Characteristic [R W WNR] (f0001111-0451-4000-b000-000000000000)
- Unknown Characteristic [R W WNR] (f0001112-0451-4000-b000-000000000000)
Unknown Service (f0001120-0451-4000-b000-000000000000)
- Unknown Characteristic [N R] (f0001121-0451-4000-b000-000000000000)
   Client Characteristic Configuration (0x2902)
- Unknown Characteristic [N R] (f0001122-0451-4000-b000-000000000000)
   Client Characteristic Configuration (0x2902)
Unknown Service (f0001130-0451-4000-b000-000000000000)
- Unknown Characteristic [R W] (f0001131-0451-4000-b000-000000000000)
- Unknown Characteristic [N WNR] (f0001132-0451-4000-b000-000000000000)
   Client Characteristic Configuration (0x2902)
D 14:39:33.140 gatt.setCharacteristicNotification(f0001121-0451-4000-b000-000000000000, true)
D 14:39:33.144 gatt.setCharacteristicNotification(f0001122-0451-4000-b000-000000000000, true)
D 14:39:33.148 gatt.setCharacteristicNotification(f0001132-0451-4000-b000-000000000000, true)
I 14:39:33.208 Connection parameters updated (interval: 48.75ms, latency: 0, timeout: 5000ms)
V 14:39:38.015 Enabling services...
V 14:39:38.016 Enabling notifications for f0001121-0451-4000-b000-000000000000
D 14:39:38.016 gatt.setCharacteristicNotification(f0001121-0451-4000-b000-000000000000, true)
D 14:39:38.017 gatt.writeDescriptor(00002902-0000-1000-8000-00805f9b34fb, value=0x0100)
I 14:39:38.081 Data written to descr. 00002902-0000-1000-8000-00805f9b34fb, value: (0x) 01-00
A 14:39:38.081 "Notifications enabled" sent
V 14:39:38.089 Notifications enabled for f0001121-0451-4000-b000-000000000000
V 14:39:38.089 Enabling notifications for f0001122-0451-4000-b000-000000000000
D 14:39:38.089 gatt.setCharacteristicNotification(f0001122-0451-4000-b000-000000000000, true)
D 14:39:38.096 gatt.writeDescriptor(00002902-0000-1000-8000-00805f9b34fb, value=0x0100)
I 14:39:38.179 Data written to descr. 00002902-0000-1000-8000-00805f9b34fb, value: (0x) 01-00
A 14:39:38.179 "Notifications enabled" sent
V 14:39:38.187 Notifications enabled for f0001122-0451-4000-b000-000000000000
V 14:39:38.187 Enabling notifications for f0001132-0451-4000-b000-000000000000
D 14:39:38.187 gatt.setCharacteristicNotification(f0001132-0451-4000-b000-000000000000, true)
D 14:39:38.188 gatt.writeDescriptor(00002902-0000-1000-8000-00805f9b34fb, value=0x0100)
I 14:39:38.294 Data written to descr. 00002902-0000-1000-8000-00805f9b34fb, value: (0x) 01-00
A 14:39:38.294 "Notifications enabled" sent
V 14:39:38.300 Notifications enabled for f0001132-0451-4000-b000-000000000000
V 14:39:38.300 All services enabled
I 14:39:38.309 Connection parameters updated (interval: 45.0ms, latency: 0, timeout: 2000ms)
V 14:42:16.857 Disconnecting...
D 14:42:16.857 gatt.disconnect()
D 14:42:16.873 [Callback] Connection state changed with status: 0 and new state: DISCONNECTED (0)
I 14:42:16.873 Disconnected
D 14:42:17.960 [Broadcast] Action received: android.bluetooth.device.action.ACL_DISCONNECTED
D 14:42:18.791 gatt.close()
D 14:42:18.797 wait(200)
V 14:42:18.998 Connecting to 54:6C:0E:9F:0A:6C...
D 14:42:18.998 gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferred PHY = LE 1M)
D 14:42:19.258 [Callback] Connection state changed with status: 0 and new state: CONNECTED (2)
I 14:42:19.258 Connected to 54:6C:0E:9F:0A:6C
D 14:42:19.283 [Broadcast] Action received: android.bluetooth.device.action.ACL_CONNECTED
V 14:42:19.308 Discovering services...
D 14:42:19.308 gatt.discoverServices()
I 14:42:19.831 Connection parameters updated (interval: 7.5ms, latency: 0, timeout: 5000ms)
D 14:42:20.250 [Callback] Services discovered with status: 0
I 14:42:20.250 Services discovered
V 14:42:20.315 Generic Access (0x1800)
- Device Name [R W] (0x2A00)
- Appearance [R W] (0x2A01)
- Peripheral Preferred Connection Parameters [R] (0x2A04)
- Resolvable Private Address Only [R] (0x2AC9)
Generic Attribute (0x1801)
Device Information (0x180A)
- System ID [R] (0x2A23)
- Model Number String [R] (0x2A24)
- Serial Number String [R] (0x2A25)
- Firmware Revision String [R] (0x2A26)
- Hardware Revision String [R] (0x2A27)
- Software Revision String [R] (0x2A28)
- Manufacturer Name String [R] (0x2A29)
- IEEE 11073-20601 Regulatory Certification Data List [R] (0x2A2A)
- PnP ID [R] (0x2A50)
Unknown Service (f0001110-0451-4000-b000-000000000000)
- Unknown Characteristic [R W WNR] (f0001111-0451-4000-b000-000000000000)
- Unknown Characteristic [R W WNR] (f0001112-0451-4000-b000-000000000000)
Unknown Service (f0001120-0451-4000-b000-000000000000)
- Unknown Characteristic [N R] (f0001121-0451-4000-b000-000000000000)
   Client Characteristic Configuration (0x2902)
- Unknown Characteristic [N R] (f0001122-0451-4000-b000-000000000000)
   Client Characteristic Configuration (0x2902)
Unknown Service (f0001130-0451-4000-b000-000000000000)
- Unknown Characteristic [R W] (f0001131-0451-4000-b000-000000000000)
- Unknown Characteristic [N WNR] (f0001132-0451-4000-b000-000000000000)
   Client Characteristic Configuration (0x2902)
D 14:42:20.316 gatt.setCharacteristicNotification(f0001121-0451-4000-b000-000000000000, true)
D 14:42:20.321 gatt.setCharacteristicNotification(f0001122-0451-4000-b000-000000000000, true)
D 14:42:20.324 gatt.setCharacteristicNotification(f0001132-0451-4000-b000-000000000000, true)
W 14:42:20.340 Connection parameters update failed with status 30 (interval: 7.5ms, latency: 0, timeout: 5000ms)
E 14:42:20.341 Error 30 (0x1e): HCI ERROR INVALID LMP PARAM
I 14:42:25.156 Connection parameters updated (interval: 45.0ms, latency: 0, timeout: 2000ms)

And the bluetooth traffic recorded with Ellisys Bluetooth Tracker:

ProjectZero_Invalid_LL_Parameters.zip

If you need additional informations please let me know. Thank you for your help.

regards

Alexander

  • Hi Alexander,

    Thank you for reaching out to us. We will look into the provided  details and respond soon. In the meantime, can you specify which modifications have been made to project_zero which lead to the issue occurring? Is this occurring on other Android 9 smartphones or just the Note 8 device? Does the issue still occur after the bond has been deleted from both the Note 8 and the CC2640R2? I would also try restarting the note 8 after deleting the bond  as well.

    Best Regards,

    Jan

  • Hi Jan,

    1. no modifications have been made to project_zero

    2. Samsung J7 with Android 9 also has this issue

    3. Yes, the issue still occures after bonding data has been deleted from both devices

    4. The issue also occures after deleting the bonding data and restarting the smartphone

    I also tested with Realme 8 9530 with Android 12. There is no problem with this device.

    It seems to be related to Android 9.

    regards

    Alexander

  • Hey Alexander,

    Thanks for posting. I've reviewed the information you provided. At first glance, the sniffer log doesn't seem to show any obvious issue with the connection parameter request.

    That being said, I see a subsequent connection parameter request (initiated by the peripheral) appears to have succeeded. As a workaround, I would suggest having the TI device initiate a connection parameter request a few seconds after the connection establishment. I am unfortunately unable to reproduce this with my peer's Android (running v13).

    Does this issue occur if you use a different mobile app such as LightBlue?

  • Hi Ammar,

    LightBlue does not report the error, but when I am logging with Ellysis Tracker in parallel I get the same error as with NRF Connect:

    regards

    Alexander

  • Hey Alex,

    Thanks for testing this. Have you had any luck working around the issue by initiating the connection parameter update from the peripheral side?

  • Hi Ammar,

    unfortunately this is not a solution, because we have the requirement to not initiate unnecessary connection paramter update from the peripheral side. This is mostly due to compatibility issues we had in the past.

    Nethertheless I would expect from an example project on your development board to just work out of the box.

    regards

    Alexander

  • Hey Alexander,

    Unfortunately I've been unable to reproduce this issue with the phones available to me, including Android versions 8 and 10 across a few different phone vendors.

    Can you by chance provide more sniffer logs using the Samsung J7 as well? Perhaps there is a pattern in the logs I am missing.

    Does this issue also occur using the same phone but if you use the BLE-Stack project zero (not BLE5)?