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: OAD/OTA in central mode

Part Number: CC2640R2F

Hello, the central mode of CC2640R2F is used in the project I am developing. Is there any way to upgrade the central mode through OTA? Is there any reference example? The SDK version I use is simplelink_cc2640r2_sdk_2_30_00_28. The upgrade Image include Application,Stack ,BIM

  • Hello Zhenhua,

    I am assuming that you are using BLE Stack (for Bluetooth version 4.2), not BLE5. Keep in mind that, for CC2640R2F, OAD is only available for Bluetooth 4 due to memory constraints.

    Please look at the User's Guide section on Over-the-Air Download (OAD) for your SDK version. Just to clarify, the OAD process is independent of the role that your device application performs. In this case, you are indicating that it is a central. Please see in particular this section where the TI OAD Profile is introduced.

    Also, I'm sure you will benefit from our SimpleLink Academy's lab on OAD.

    By the way, we encourage you to consider updating to our latest SDK, which at this point is v4.40, released in early 2021.

    Thank you,

    Luis

  • Hello Luis,

    Thank you for your reply!

    Follow the link you suggested SimpleLink Academy's lab on OAD.

    I Transplant to simple_central project according to the steps of  "Task 2 – Add OAD to Multi Role". The "ccr640r2lp_stack" project has been successfully transplanted and compiled. But encountered some problems when porting the "ccr640r2lp_app" project. The following is a hint of compilation error

    I have removed the macro definition of "STACK_LIBRARY" still prompted "IDX_L2CAP_RegisterFlowCtrlTask" is not defined.

    And, I did not see the definition of "connectionEventRegisterCause_u" in the "simple central" project, but see that there is a definition in the project of the  "multi_role" project or some other  peripheral project.

    I still have a question, whether the OAD of the central needs to be converted to the role of the peripheral to achieve.

    Thank you,

    Luis

  • Hi,

    Can you try pasting the image again, using the "Insert File" button on the menu? (the clip icon)

    Answering your question, no, the central doesn't need to be converted to peripheral. Please review the User's Guide that I linked before.

    Thank you,

    -Luis

  • Hi,

    I Transplant to simple_central project according to the steps of  "Task 2 – Add OAD to Multi Role". The "ccr640r2lp_stack" project has been successfully transplanted and compiled. But encountered some problems when porting the "ccr640r2lp_app" project.

    The following is the error message that I compiled on the host port.

    I have removed the macro definition of "STACK_LIBRARY" still prompted "IDX_L2CAP_RegisterFlowCtrlTask" is not defined.

    And, I did not see the definition of "connectionEventRegisterCause_u" in the "simple central" project, but see that there is a definition in the project of the  "multi_role" project or some other  peripheral project.

    Compilation found that many macros were not found, but they are already defined in the file "icall_ble_api.h", As shown below.

    As you said, the central doesn't need to be converted to peripheral, bug how is the central connected for OAD case the central role is not broadcasting!

    Thank you,

    Zhenhua

  • Let me investigate the matter with my team. You'll get a response from one of us in the next day.

    Thanks,

    Luis

  • Hi,

    I have added OAD to multi role, my way and not according to the guide. At the end encountered memory issues. Sometimes OAD works, and most of the time it does not.

    The only solution to this is use a TI BLE MCU with bigger flash and ram.

    -kel

  • Hi,

    I tried adding OAD to multi role.

    Eventually an error occurred while synthesizing the OAD bin file, the error message is as shown below.how to solve this problem?

    Error while running cmd /C "C:\ti\simplelink_cc2640r2_sdk_2_30_00_28\tools\blestack\oad\oad_image_tool.exe iar D:\HXJ\Code\Code\multi_role\tirtos\iar\app 1 -hex1 D:\HXJ\Code\Code\multi_role\tirtos\iar\app\FlashROM_StackLibrary\Exe\ble_multi_role_cc2640r2lp_app_FlashROM_StackLibrary.hex -bdf D:\HXJ\Code\Code\multi_role\tirtos\iar\app\..\config\iar_boundary.xcl -hex2 D:\HXJ\Code\Code\multi_role\tirtos\iar\app\..\stack\FlashROM_Library\Exe\ble_multi_role_cc2640r2lp_stack_FlashROM_Library.hex -k "C:\ti\simplelink_cc2640r2_sdk_2_30_00_28\tools\blestack\oad\private.pem" -o D:\HXJ\Code\Code\multi_role\tirtos\iar\app\FlashROM_StackLibrary\Exe\ble_multi_role_cc2640r2lp_app_FlashROM_StackLibrary_oad"

    The chip I use is CC2640R2F, if add OAD to multi role and add application code, will the Flash space be enough?

    Have you tried adding OAD function in simple_central? Are there any relevant examples or migration documents?

    Thank you,

    Zhenhua

  • Hi,

    For BLE, in connection you have central and peripheral, each role can be either server/client.

    The definition for server/client can be found here:

    https://dev.ti.com/tirex/explore/content/simplelink_cc2640r2_sdk_2_30_00_28/docs/blestack/ble_user_guide/html/ble-stack-3.x/gatt.html

     

    In the TI’s audio example, both central and peripheral contain GATT server and GATT client. That mean each role has service to be discovered and also has the ability to discover other device’s service/enable notification..etc.

     

    This means that it does not require a peripheral device to be the OAD target. All you need is to make sure that central role is also a GATT server and contain service/characteristic table in the application.

    To check how to make central device as a GATT server you can take a look at this project below:

    .