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.

LAUNCHXL-CC1352R1: Turbo OAD

Part Number: LAUNCHXL-CC1352R1
Other Parts Discussed in Thread: CC1352R, UNIFLASH

Hello,

I saw this Turbo OAD feature in the latest SDK and found it interesting and hence decided to give it a try. But for some reason, I wasn't able to make it work.

Setup -

CCS 9.30

SDK 3.40 -  Sensor_oad_offchip and Coprocessor.

Linux SDK - ti154stack_linux_x64_3_30_00_12

FH enabled.

I went through the readme provided with the project and tried Turbo OAD in different ways and encountered different results, and neither were successful. My ambiguity lies around what steps to perform with the initial image. According to the readme - 

"When creating the initial device image, no path to the old image needs to be specified." 

I tried that way and observed the "OAD aborted" message (on Sensor's terminal), just after a couple of blocks.

I tried a few other combinations and in one of them OAD was successful but I observed the "CRC failed" message on the Sensor's terminal.

I feel that I am missing out on something, can you help me with the right way to do the Turbo OAD? Or point out the documentation for reference.

Thanks and Regards,

Yash.

  • Hi,

    The initial device image still acts as any other device image: we still need to know its location in order to flash it onto a device.

    The section is trying to differentiate between the "initial image" and the "delta image".
    For the initial image, you only need to ensure that this image includes Turbo OAD funcitonality.
    For the delta image, you need two images, the old one and the new one, in order to calculate the "delta" between those images. In this case, the location of the old image is required (the new image would simply be the image built in the new/updated project).

    If you are updating an old project to create the new image, you should make sure that the old image is stored elsewhere (or renamed), as CCS would replace the old image with the updated image.

    The Turbo OAD process could look something like this:

    1. Build a Turbo OAD enabled project (the resulting image will be project.hex)
    2. Flash project.hex onto a CC1352R
    3. Rename project.hex to project_old.hex
    4. Make edits to the project
    5. Specify the location of the previous image (project_old.hex)
    6. Build the project (the resulting image will be project.hex, but you still have the currently flashed image project_old.hex)
    7. The difference image .dim file could now be used to perform an OAD upgrade via Turbo OAD

    Regards,
    Toby

  • Hello Toby,

    I appreciate your detailed response.

    I followed the steps you suggested but I wasn't able to make it work.

    Steps I followed -

    1. Built a Turbo OAD enabled project.

    2. Flashed the project.hex onto a CC1352R

    3. Renamed project.bin to project_old.bin

    4. Made edits to the project. (Changes just in CUI display and the version number in oad_image_header_app.c)

    5. Specified the location of the previous image project_old.bin (project_old.hex? Browse menu only displays the .bin file)

    6. Built the project (while the flashed image is project_old.hex)

    7. The difference image .dim is used to perform an OAD upgrade via Turbo OAD.


    The .dim file is sent over the air successfully, also the Collector_app on Linux displays the message "OAD completed successfully" on it's terminal.

    Here are a couple of screenshots for the aforementioned observation - 

    Are the above-mentioned steps correct or did I miss out on anything?

    Thanks and Regards,

    Yash.

  • I realize that I made a mistake on my initial reply.

    Instead of the .hex file, we should instead be using the .bin file.
    Excerpt from the README:

    "The generated .out and .hex will not have the correct CRC, hence the BIM will not boot into the image. During development, the BIM can be built with the debug configuration to allow the BIM to ignore the incorrect CRC.

    During normal operation when flashed for the first time, the application .bin and the bim .hex file need to be loaded separately. Ensure that BIM binary is flashed/downloaded before downloading the application using the debugger for debug purposes"

    Here are the revised steps:

    1. Build a Turbo OAD enabled project (the resulting binary will be project.bin)
    2. Flash the BIM and project.bin onto a CC1352R (BIM can be found in <SDK>\examples\rtos\CC1352R1_LAUNCHXL\easylink\hexfiles\offChipOad\cc13x2r1lp_bim_offchip.hex)
      1. Note, both of these can be flashed at the same time using Uniflash
    3. Rename project.bin to project_old.bin
    4. Make edits to the project (eg SOFTWARE_VER)
    5. In the .syscfg file, specify the location of the previous binary (project_old.bin)
    6. Build the project (the resulting binary will be project.bin, but you still have the currently flashed binary project_old.bin)
    7. The difference image .dim file could now be used to perform an OAD upgrade via Turbo OAD

    Please let us know if this works on your end.

  • Hello Toby,

    I followed the revised steps, but I am still getting the same error "CRC failed"( as shown in the screenshots in my previous reply).

    I tried using the BIM in 2 configurations - Debug_unsecure mode (default configuration) and Debug mode. Both of which resulted in the same error.

    I also used the BIM from the path that you provided and still the results were the same.

    Is it possible for you to share the BIM file and the resultant .dim file that you used to perform Turbo_OAD? Using those files I can check if I am making an error in following the steps?

    Thanks and Regards,

    Yash.

  • Hello Toby,

    I reached to the conclusion that Linux SDK 3.40 is a must for Turbo OAD.

    I even tried the files you sent with the 3.30 Linux SDK and received the same error (CRC failed). It worked as expected when I shifted to 3.40 Linux SDK.

    Can you please confirm this?

    Also, if this is the case, can you point out the reason why CRC failed was being observed on 3.30 Linux SDK?

    Thanks and Regards,

    Yash

  • Apologies, just realized you were using the 3.30 linux SDK.

    Turbo OAD requires additional information which is introduced in both the 3.40 CC13x2/CC26x2 SDK and the 3.40 linux SDK; the set of metadata in .dim files and .bin files differ.