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

BLE pairing issues with Lenovo X240

Hi,

We have a BLE peripheral device that is used as a mouse/keyboard (nRF52832 SDK 14.0)

The peripheral pairs with most central devices just fine (including Mac and PC), except it seems with some models of Lenovo laptops.

When attempting to pair with the X240 model (Windows 10) , we get "Driver error" on the Bluetooth menu. Pairing with an example Nordic keyboard seems to work fine. The problem is reproduced with different 53832 boards.

Sniffing yields the results in the attached file.

We tried updating the drivers and disabling/enabling the Bluetooth device (via Device Manager) but it only fixes the issue once every few dozen attempts. When it actually manages to pair, it works just fine, but getting there is a problem. The "fix" itself is also temporary and has to be done again if the device is unpaired.

We're not sure if it's an issue with our app or some issues with the drivers. Would appreciate help.

Thanks.

Pairing with x240.pcapng

Parents
  • Hi there,

    It is really hard to say what went wrong with the information provided. Have you tried taking a sniffer log and see of few phones are doing something differently in air which is not compatible with the BLE spec. If you attach a sniffer log when trying to pair with Lenovo (or devices that does not pair), then we will try to narrow it down.

  • htc_m9_pairing_1.pcapng

    lenovo_x240_pairing_2.pcapng

    The attached session in the opening question is of a failed connection with the Lenovo.

    I'm attaching two more sessions. Sorry for not trimming them.

    One, where the connection succeeds, is with an HTC M9 phone. Connection is from time index 1284.
    Second, where the connection fails, is with the same lenovo laptop. Connection is from time index 8766.

    I'm seeing these differences:

    • Bonding: Lenovo is's Initiator Key(s) list is only CSRK and HTC's is LTK, IRK, CSRK, Linkkey and slave is responding with none
    • MTU: Lenovo is not accepting MTU exchange request from the slave but initiating it's own (with MTU 525).
    • Termination: the Lenovo sent LL_TERMINATE_ID after service discovery, before reading encrypted characteristics.
Reply
  • htc_m9_pairing_1.pcapng

    lenovo_x240_pairing_2.pcapng

    The attached session in the opening question is of a failed connection with the Lenovo.

    I'm attaching two more sessions. Sorry for not trimming them.

    One, where the connection succeeds, is with an HTC M9 phone. Connection is from time index 1284.
    Second, where the connection fails, is with the same lenovo laptop. Connection is from time index 8766.

    I'm seeing these differences:

    • Bonding: Lenovo is's Initiator Key(s) list is only CSRK and HTC's is LTK, IRK, CSRK, Linkkey and slave is responding with none
    • MTU: Lenovo is not accepting MTU exchange request from the slave but initiating it's own (with MTU 525).
    • Termination: the Lenovo sent LL_TERMINATE_ID after service discovery, before reading encrypted characteristics.
Children
No Data
Related