CC254x with Android 6.x Marshmallow & 7.x [Updated Oct 2016]

Is there any one tried to get CC254x (even CC26xx) working with the latest Android 6.x Marshmallow? We heard there are issues from multiple sources. We are still looking for any Android 6 device to confirm. Will get back here and let everyone know once we have a device to test it.

Ed (TI): ** Update Dec 9, 2015: See Dec 9 post confirming Android 6.0.1 (Nexus 5) update is now compatible with BLE 1.4.0 and earlier BLE-Stack releases. Peripherals that are Pairing with Android devices that do not yet incorporate this change will need BLE 1.4.1 to remain compatible with smart devices that implement LE Secure Connections (BT4.2) Pairing.

Ed (TI): ** Update October 2016: Reports of compatibility issues with Android N and BLE-Stack 1.4.2/1.4.2 are not related to Pairing. An update to improve the performance of the SNV read operations can be made by replacing the findItem() function in osal_snv.c with the version in the the attached findItem.txt.

findItem.txt

  • Guru 78500 points
    Hello,

    Please let us know if you see any issues, and provide a sniffer trace if possible. I do recommend that you are using the latest BLE 1.4.1 (for CC254x) and BLE 2.1 (for CC2640) when you test with Android 6.x.

    Best wishes

    Please see the TI BLE Wiki www.ti.com/ble-wiki and sticky forum threads for additional examples & answers to most common questions!

    Thank you for marking the thread as answered if your question was answered :)

  • In reply to JXS:

    Hello JXS,

    We did test it on a Nexus 7 (Android 6.0, Build MRA58K). SDK 1.4.0 does not work and SDK 1.4.1 works fine.

    Samson

  • Guru 78500 points

    In reply to Samson Chen1:

    Hi Samson,

    Thanks for confirming. Marking this thread as sticky so others know to use BLE 1.4.1 with Android 6 (Marshmallow). For CC26xx, BLE 2.0 and 2.1 should work as well.

    Best wishes

    Please see the TI BLE Wiki www.ti.com/ble-wiki and sticky forum threads for additional examples & answers to most common questions!

    Thank you for marking the thread as answered if your question was answered :)

  • In reply to JXS:

    Hi Engineers,

    I'm facing the same pairing issue with Android 6 Marshmallow.
    But this needed upgrade to 1.4.1 stack means only one thing : products already on the market and running 1.4.0 won't work with Android 6, and possibly with any device working under BT4.2...

    That's no good news.

    @TI, do you have any idea to support
  • Guru 78500 points

    In reply to Karim Houni:

    Update November 23, 2015:

    The Android development team has made a change and pushed it to the AOSP project. Please see the committed change made on Oct 27th: android-review.googlesource.com/

    Change Description:
    "
    Check remote LMP version before enabling secure connections Request remote version information for LE links when connecting and ensure LMP version is >= 8 (Bluetooth 4.2) before setting the LinkKey bits in the pairing request. This is to ensure older remote devices do not get confused by the additional bit(s) in the pairing request.
    "

    This change, when incorporated by the respective phone/tablet manufacturers, will ensure BLE 1.4.0 (and previous releases) are compatible with Android6 / BT4.2. All CC254x SW (e.g. BLE 1.4.0) will report an LMP version of 6 (BT4.0).

    Best wishes

    Please see the TI BLE Wiki www.ti.com/ble-wiki and sticky forum threads for additional examples & answers to most common questions!

    Thank you for marking the thread as answered if your question was answered :)

  • In reply to JXS:

    Hi, JXS,
    Our product is also designed on BLE 1.4.0 and almost ready for product launch. In recently we also found the pairing problem on Nexus5, Android 6.0.

    We found the problem is at SMP pairing failed and failed reason is "Confirm Value Failed".
    And it seems that "secure connection pairing: Yes" in AuthReq is different from previous Android version.
    Not sure the problem is the same as you mention.

    Do you have any idea about when will Android release fixed version?
    Or I should upgrade F/W to BLE 1.4.1 immediately.
    We are worring about don't know when newest Android version release and even if the version upgrade, still have some Android 6.0 version phones in market and will have pairing problem.

    I need your support and please give me suggestion.

    Thanks,
    Moby
  • Guru 78500 points

    In reply to Moby Chiu:

    Hello Moby,

    TI does not have visibility as to when a respective phone OEM (i.e., LG for Nexus 5) will issue an OTA or ROM update incorporating the patch listed above.

    If you have not shipped your product, I strongly recommend you upgrade your firmware to BLE 1.4.1 which does not have the Android6 LE Pairing compatibility issue.

    Best wishes

    Please see the TI BLE Wiki www.ti.com/ble-wiki and sticky forum threads for additional examples & answers to most common questions!

    Thank you for marking the thread as answered if your question was answered :)

  • In reply to JXS:

    Hi JXS,

    Thanks for your support. After discussion, we decide to upgrade to BLE 1.4.1.
    But we still have the question about why BLE 1.4.1 won't have pairing problem on Android 6.0.
    I read the release note (readme.txt in stack code), didn't find the answer.

    I know BLE 1.4.1 is full support for Bluetooth Core 4.1 specifications.
    But I read the statement said below.
    Ed (TI): Please see below stating that BLE 1.4.1 is required to support Pairing with smart devices running Android 6 that implement LE Secure Connections (BT4.2) Pairing.

    What's the difference? Pleas help.

    Thank you.

    Best regards,
    Moby
  • Guru 78500 points

    In reply to Moby Chiu:

    Hello Moby,

    CC2541/CC2540 with BLE 1.4.x support the BT4.0 core specification. Support of BT4.1 is offered by CC2640.

    Unfortunately, the actual issue was not included in the original release notes, but involves handling of the LinkKey key distribution field that was added in BT4.2 and thus ignored in BT4.1 and earlier devices. The Android link in the Nov 23rd update makes sure this field is not set for legacy devices.

    Best wishes

    Please see the TI BLE Wiki www.ti.com/ble-wiki and sticky forum threads for additional examples & answers to most common questions!

    Thank you for marking the thread as answered if your question was answered :)

  • In reply to JXS:

    Hi JXS,

    Thanks for your answer.

    Moby