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.

CC2640R2F: CC2640R2F Stack Issue

Part Number: CC2640R2F
Other Parts Discussed in Thread: SYSCONFIG, CC2640

Tool/software:

We are currently working on a project that involves communication between a thermostat and a lock over BLE. The thermostat architecture includes two controllers:

  • An STM microcontroller handling HVAC operations.
  • A TI CC2640F128 BLE chip dedicated to BLE communication with the lock. The STM and TI controllers communicate over UART.

We successfully achieved BLE pairing and bonding functionality using the CC2640F128 chip. However, we are now transitioning to the CC2640R2F BLE chip and want to achieve the same pairing and bonding functionality.

We understand that the CC2640F128 and CC2640R2F use different BLE stacks, and we have used the respective stack for the R2F chip. Despite this, pairing and bonding do not appear to be working as expected.

Could you please assist us in identifying the necessary configurations or changes required to enable successful pairing and bonding on the CC2640R2F chip?

  • Hi !

    In order to help you I would need more information. Could you tell me what SDK version you are using, and how are you trying to enable pairing ?
    To start working with the CC2640R2F, I would strongly advise you to take a look at the User Guide for this device, and more specifically at the GAP Bond Manager and LE Secure Connections, which should explain you how you could enable pairing on the CC2640R2F with the latest SDK version.

    Kind regards,
    Maxence

  • Hi Maxence,

    Thank you for your response.

    I’m currently working with SDK version 5.30.01.11. Despite reviewing the user guide for additional guidance, we’ve been unable to successfully establish a pairing between the thermostat and the smart lock.

    To discuss the issue in more detail and explore possible solutions, I’d appreciate it if we could schedule a call at your convenience.

    Looking forward to your availability.

  • Hi !

    I'd like to see if we could solve your issue here before having a call to escalate this. Could you show me the sysconfig settings you use for enabling bonding ? Do you call any function in particular to enable pairing ? Do you have any sniffer logs that you could share to show the issue ?

    Also, do you maybe have a FAE assigned to you that could help ?

    Kind regards,
    Maxence 

  • Hi,

    I have worked with CC2640 and CC2640R2F. I have also ported code from CC2640 to CC2640R2F.

    What I do is use a working example program for CC2640R2F as base, then modify it to my intended requirements. There is central and peripheral example programs at CC2640R2F SDK that you can use.

    -kel

  • Hi Markel,

    Thank you for your response.

    We have tried working with the example project for the CC2640R2F and also attempted to create an independent standalone version of the Simple Central project in IAR Workbench based on the SDK (v5.30.01.11). However, we are currently facing issues and errors while trying to convert it into a standalone application. Specifically, we are encountering predefined path issues and preprocessor directory issues. we would appreciate it if you could guide us through the correct steps or best practices to successfully make the Simple Central project standalone and buildable independently. If there is an alternative method, please suggest it to us.

    Thank you!

  • Hi,

    You should install the SDK at c:\ti. I put my CCS workspace folder inside C:\ti like this below.

    C:\ti\ccsv121workspace\CC2640R2F_Launchpadv530

    Also, make sure to use CCSv9 or greater.

    The simple peripheral and simple central works together. If I remember correctly there is an option to pair.

    -kel 

  • Thank you for your suggestion.

    Since we are using IAR Workbench, we tried creating the workspace structure as per your suggestion. However, we couldn't successfully port the CCS project to IAR, as both environments use different project file formats and configurations.

    Despite our efforts to adapt the project setup, we are still encountering linking errors during the build process.

    Any support or guidance on how we can make this transition smoother would be highly appreciated.

  • Hi !

    I'd like to see if we could solve your issue here before having a call to escalate this. Could you show me the sysconfig settings you use for enabling bonding ? Do you call any function in particular to enable pairing ? Do you have any sniffer logs that you could share to show the issue ?

    Also, do you maybe have a FAE assigned to you that could help ?

    Kind regards,
    Maxence 

  • Hi Maxence,

    FAE here! Got more info from the customer on this topic, quoting as is - 

    Any ideas to resolve this? 

    "Our requirement involves using IAR Workbench, we are working with the CC2640R2F, which is supported only in SDK version 5.30.01.11. However, since this SDK is considered legacy, SysConfig integration is not available for this chip version. As a result, we are unable to locate the .syscfg file in the Simple Central example for CC2640R2F in this SDK.

    We have confirmed that core functionalities such as device discovery and pairing work as expected in the Simple Central example project.

     

    Problem Summary & What We've Tried:

    • We successfully validated these functionalities on the CC2640F128 with SDK 2.02.08.12 and are now attempting to replicate the same behavior on CC2640R2F with SDK 5.30.01.11.
    • The discovery process initially was not happening, after doing some modification in the parameters of the startDiscovery()  function in the GAP_DEVICE_INIT_DONE case, which initiates correctly and matches with advertising packets by matching the UUID. We confirmed that GAP_DEVICE_INIT_DONE is triggered, and advertisement packets are received.
    • However, after this step, the expected transition to the GAP_DISCOVERY_EVENT case does not occur. This is preventing the flow from reaching the relevant event-handling logic and remains in unknown state.
    • We also attempted to forcefully stop discovery by calling the Util_stopClock() function immediately after the discovery call, but this did not succeed either.

    "

    Best Regards,

    Madhurya

  • Hi Madhurya,

    I'm trying to compare what you're describing with the content of what I see in the simple_central example and with the user guide but I cannot find the GAP_DISCOVERY_EVENT event you're talking about in the GAP API nor in the example for this SDK. Are you using the CC2640R2 SDK ?

    Kind regards,
    Maxence