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

Win 10 BLE stacks, acting as a central, problems accepting BLE connection parameter changes.

Background: In a previous posting I had asked if anyone knew of BLE connection parameter guidelines for Windows 10. The general response was, yeah ios has BLE connection parameter guidelines, but it doesn't appear that Windows 10 (or Android for that matter) has any such guidelines.

I have a Nordic nRF52 development board we are developing a peripheral BLE application on. When I use a Win 10 laptop (Dell Precision 7520) as a BLE central to the Nordic peripheral, connection is just fine. However, when the peripheral attempts to change the connection parameters >20ms, or change slave latency >1, it usually doesn't 'take'. Meaning not accepted by the central (win 10) BLE stack. I confirm the accept/reject of these via Teledyne'LeCroy Sodera LE sniffer.

Note: when using an Android phone as a BLE central, generally speaking its BLE stack accepts the connection parameters that the win 10 BLE stack rejects.

Question: Does anyone have any insight into win 10 BLE stacks? Are then from Microsoft? specific to device manufacture (in this case Dell), specific to chipset?

note, I have asked similar questions on MSDN forums and I've started working with Dell... though I DO have their most recent Bluetooth driver (for my laptop).

However, of anyone, my guess is that Nordic developers may have the best insight into this.

  • Typically Win10 is quite flexible in the connection parameter update process and does not have restrictions beyond those of BTLE. This means that you need to familiarize yourself with the BTLE connection update process which recommends that you do not send the connection parameter update request more frequently than 30 seconds.

    In addition Win10 typically tends to respect the PPCP (Preferred Peripheral Connection Parameter) Characteristic and is a good way to communicate the connection parameter preferences to the Win10.

    In addition you will need to watch the Sleep Clock accuracy of the BTLE chipset being used on the Win10 central. This will create restrictions on the slave latency settings that will work on the link.

    The Nordicsemi nRFready Desktop 2 keyboard reference firmware provides a better understanding of Win10. (Note: This is for a HID Keyboard so the rules are a bit more special, but the general guidelines remain the same). Unfortunately the code is under a product key and available only on purchase of the kit. www.nordicsemi.com/.../nRFready-Desktop-2-Reference-Design

    Please post the sniffer trace in addition so I can help you better.

  • Hi david,

    I have re-done my 'set connection parameters' via the PPCP (Preferred Peripheral Connection Parameter) Characteristics using the same software running on a Nordic nrf52 development board running as a BLE peripheral, but with 2 different BLE centrals, an Android phone, and an Win 10 Dell Laptop.

    short answer:

    o with the Android phone as a central, no problem setting connection parameter intervals see L2CAP 'Connection Parameter Update Request', and 'Connection Parameter Update Response (accepted)' pair, along with LE LL 'LL_CPNNECTION_UPDATE_IND' o with Win 10 device as central, initial connection is at 20 ms (using range of 7.5 ms to 500 ms), when attempt to set to 20 ms, 640 ms, yes I see the L2CAP pair 'Connection Parameter Update 'Connection Parameter Update Request', and 'Connection Parameter Update Response (accepted)' pair, along with LE LL 'LL_CPNNECTION_UPDATE_IND' and the connection interval stays at 20 ms o with WIn 20 device as central, when I attempt to set connection intervals 40 ms, 40ms, the L2CAP pair 'Connection Parameter Update 'Connection Parameter Update Request', and 'Connection Parameter Update Response (accepted)' pair appears 3 times in my Sodera LE logs, but a LE LL 'LL_CPNNECTION_UPDATE_IND' never follows... and the connection interval stays unchanged at 20 ms. I don't see a way to send any attachments here, I will see if I can do this with a private message.

    hi David, following your 'clip' instructions I will attach my Sodera LE files for my android and win 10 experiments.

    android experiments: see ConnectionParameters.Android.Exp.doc, and _153851. files win 10 experements: see Connection Parameters.Win10BLe4_2Exp.AfterDellUpdate.doc, and _165038. filesConnectionParameters.Android.Exp.doc(/attachment/10e80f2163ed8c98bf9c2a29fb993f2e)(/attachment/85a3a7bc13049eb50c7925e6be6cd650)(/attachmen/afe27087918e3df3c0b4ab41d8af7198)(/attachment/c288201f7a99e6ac8b23c6defc735da1)ConnectionParameters.Win10Ble4_2.Exp.AfterDellUpdate.doc(/attachment/de738b64ada022afd71e624da0c48bbb)

  • You can attach files to your question or answer. The should be "clip" like icon that can be used to add attachments.

  • I would definitely want to you to take a look at the Desktop 2 code for the connection parameters update.

  • hi David, I updated my post with attachments.

Related