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.

LP-CC2652R7: BLE on-chip OAD implementation

Part Number: LP-CC2652R7
Other Parts Discussed in Thread: CC2652R7

Tool/software:

Hi supporting team,

I am currently working on a firmware based on simple peripheral, and simplelink_cc13xx_cc26xx_sdk_7_40_00_77 SDK. I want to add the on-chip OAD feature to my firmware, I tried to follow the instruction and run the example (Bluetooth Low Energy Enhanced Over the Air Download (OAD) Fundamentals — CC13XX CC26XX SimpleLink Academy):

when I flashed the .bin files from the ccs after I built, then I tried to update the firmware to a desired one, it doesn't work and said 'service not found' or sometimes said 'OAD service reset failed':

(I set the address of persistent app as 0x86000 because this text, I tried to set 0x38000 as it is mentioned at simplelink academy, but failed to process as well:)

I also found that sometime after 'OAD service reset failed', the firmware is change to persistent app. Then I disconnect and reconnect the device again, I can continue to use OAD update to updated to the desired firmware, this behavior is wired, the whole process should not be split like this?

But it works well when I used the .hex and .bin files directly from this (simplelink-connect-fw-bins/CC2652R7/7_10_00_98_eng/simple_peripheral_oad_onchip_LP_CC2652R7_tirtos7_ticlang_oad-v1.0.0.bin at main · TexasInstruments/simplelink-connect-fw-bins · GitHub):

May I know is there any differences between the files on the website and from the example?

Or is there any mistake I made during the process? 

Thank you so much!

Best regards,

Jermyn

  • Hello,

    Thanks for reaching out! We will look into your issue and get back to you ASAP.

    Best Regards,

    Tarek

  • Hi Tarek,

    Thank you,

    I am continue trying the implementation, here is the updated case:

    Even if I used the bim.hex and persistent_app.bin files directly from this (simplelink-connect-fw-bins/CC2652R7/7_10_00_98_eng/simple_peripheral_oad_onchip_LP_CC2652R7_tirtos7_ticlang_oad-v1.0.0.bin at main · TexasInstruments/simplelink-connect-fw-bins · GitHub), I tried to use my firmware v1, then update to my firmware v2. I have followed simplelink academy to add the on-chip OAD feature, but the OAD process did split into two steps. it still showed 'OAD service fail' or stuck in 'Device reset'.

    Then I tried to disconnect the device and reconnect it, the firmware switch to persistent app, this time when I continue to update to my desired firmware V2, it worked at the end.

    I also tried to update to the firmware V1 form V2, but similar situation occurred.

    Could you help me with it, thank you so much.

    Best regards,

    Jermyn

  • HI !

    Could you elaborate on what you mean when you say that the process split into two steps ?
    I'm going to try it on my end and see if it works.

    Kind regards,
    Maxence

  • Hi Maxence, 

    Thanks for your reply.

    Sure, let me elaborate the situation:

    I have few versions of my firmware, I try to test the OAD feature, first I flash the bim.hex persistent_app.bin and firmware_v4.bin, then I tried to start OAD update to my firmware_v2, the process is stuck at 'Device Reset':

    Then I exit this interface, the firmware_v4 turned into persistent app:

      

    I connect the device again and be able to continue to update to firmware_v2:

    Then I tried to use my firmware_v2 and update to firmware_v4, it showed OAD failed (or sometimes showed 'OAD Service Reset Failed')

      

    I exit the interface again and it turned into persistent app again:

    Then I can continue update to another firmware.

    1) Here is the situation I am facing now, for my understanding of the Simplelink Academy, when I use on-chip OAD update, the whole procedure should be done when I press 'update' at the 'OAD Reset' interface: the device should reset automatically and update to the new image. But in my case, the procedure is split:

    when I press 'update', the process is stuck, and I need to exit the interface, the image of the device turned into 'persistent app'.

    Then I connect the device again and can use OAD update to continue my procedure.

    2) And I also noticed that in the Simplelink Academy BLE OAD Advanced (Bluetooth Low Energy Enhanced Over the Air Download (OAD) Advanced — CC13XX CC26XX SimpleLink Academy) it suggested that change to the address mode to public address, but my firmware is using RPA with public ID, I also wonder what will be affected of this (different address mode)? 

    Could you help me with this situation, thank you so much!

    Best regards,

    Jermyn

  • Hi !

    I have tried to reproduce the SimpleLink Academy tutorial about OAD fundamentals, and it worked fine on my end. Could you please try the same procedures but with the files I'm sending you ? https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/538/simple_5F00_peripheral_5F00_oad_5F00_onchip_5F00_LP_5F00_CC2652R7_5F00_tirtos7_5F00_ticlang_5F00_oad.bin  https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/538/persistent_5F00_app_5F00_LP_5F00_CC2652R7_5F00_tirtos7_5F00_ticlang_5F00_oad.bin  https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/538/bim_5F00_onchip.hex

    Kind regards,
    Maxence

  • Hi Maxence,

    I used your files to update the firmware to my firmware_v4, it showed 'OAD failed' again:

    I have no idea how to fix this. Could you help me again, thank you so much!

    Best regards,

    Jermyn

  • Hi

    Are you able to update the firmware to the firmware called "ble5_simple_peripheral_oad_onchip_public_address_cc26x2r7_iar_FlashROM_Release_oad_v2.bin" ? You should be able to find it directly by selecting your board in the "Select Firmware Image" section of your screenshot

    Kind regards,
    Maxence

  • Hi Maxence,

    It works, I am able to update the ble5_simple_peripheral_oad_onchip_public_address_cc26x2r7_iar_FlashROM_Release_oad_v2. 

     

    Thank you,

    Jermyn

  • Hi !

    That's great, that means it's most likely that the problem comes from your firmware_v4 file then. If you need help to add OAD to your project, you can use the SimpleLink Academy guide on this subject.

    Kind regards,
    Maxence

  • Hi Maxence,

    I followed all steps from the SimpleLink Academy, but the address mode of my firmware is RPA with public ID, and checked the MITM protection and bonding:

    Willl these changes be a factor to the failure?  Thank you so much!

    Best regards,

    Jermyn 

  • Hi !

    These parameters should not affect the loading of your firmware, since they are used after the OAD is finished. If you have trouble while trying to reproduce the SimpleLink Academy, I advise you to restart in a new workspace, because you might have accidentally modified some example files.



    Kind regards,
    Maxence

  • Hi Maxence, 

    I will try it then. There is another changed that I am not sure about:

    For linker file, original line is:

      ${COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR}/examples/rtos/CC26X2R1_LAUNCHXL/ble5stack/simple_peripheral_oad_onchip/tirtos7/ticlang/cc13x2_cc26x2_app_tirtos7.cmd

    I changed it to:

    ${COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR}/examples/rtos/LP_CC2652R7/ble5stack/simple_peripheral_oad_onchip/tirtos7/ticlang/cc13x2x7_cc26x2x7_app_tirtos7.cmd

    because the linker file path for my CC2652R7 launch pad is:

    C:\ti\simplelink_cc13xx_cc26xx_sdk_7_40_00_77\examples\rtos\LP_CC2652R7\ble5stack\simple_peripheral_oad_onchip\tirtos7\ticlang

    Do I use the correct linker file? Thank you so much.

    And my firmware is built on simplelink_cc13xx_cc26xx_sdk_7_40_00_77, so do I need to use the bim_onchip and persistent_app from the same SDK version?

    Best regards,

    Jermyn

  • HI !

    Yes this should be the correct linker file.
    As for the verision of bim_onchip and persistent_app, you should aim to use the same version as your SDK, so yes.

    Kind regards,
    Maxence