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-CC1310: Over-the-Air Download using Dynamic Multi-protocol Manager (DMM)

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

As per the example shown here for setting up and testing the over-the-air provided by the TI-SDK, one needs a beagleboard acting as the gateway to push the firmware image to the device. 

Since I do not have the beageboard, is it possible to have the following configuration in order to get the OTA test up and running?

Simplelink App on the smartphone -> CC13x2 running DMM protocol example -> CC1310 running sensor node example in sub-GHz.

The idea is that the OTA image will be pushed via the smartphone app to the CC13x2 executing the DMM protocol (BLE + Sub-GHz) which will download the firmware and then send it over to the sub-GHz band to the CC1310 also running sub-GHz band. The target device that we want to OTA is the CC1310 acting as a sensor node device. An external flash on the CC1310 LP will be used to save and reboot the latest image.

Does TI SDK provide any examples as such? 

Any directions will be very helpful to get up and running with familiarizing the OTA framework.

Thanks

  • Hi Rajeev,

    You will be able to send data over the two connections that you are describing, so I think it would be possible to make it work. However it would require a good amount of work on the CC1312 application image. As you note, we don't have any OAD distributor example for embedded device, so you would have to port it from the linux example.

    To familiarize yourself with OAD I would recommend this SimpleLink Academy lab: 

     

  • Hi Marie,

    Thanks for the reply. Porting the example just for testing seems like a tedious task to do. On the other hand, I will now use the PC as a Linux gateway and then get the examples up and running as outlined in the SimpleLink Academy lab.

    Somehow at a first glance, I missed this but now testing it out.

    Thank you.

  • Hi there Marie,

    As suggested, I started following the tutorial but using the CC1310 LP instead of the CC13x2 LP.

    The good news is that I was able to get my Linux gateway up and the sensor node up and running. These devices were able to send and receive the data.

    However, when I started the OTA process, initially the CRC check on the sensor device failed. Then reading through the notes, I found out this:

    `For the purpose of this lab, we will only be using the .bin file. The .bin file is the file that is generated by the OAD post build step. This is the only file type that will work for OAD as the others will not contain header data. `

    Since the simplelink_cc13x0_sdk_4_10_02_04/examples/rtos/CC1310_LAUNCHXL/ti154stack/sensor_oad example only generates .out, & .hex files, I tried to generate .bin in CCSv10 using the following 

    ${CCS_INSTALL_ROOT}/utils/tiobj2bin/tiobj2bin ${BuildArtifactFileName} ${ProjName}.bin ${CG_TOOL_ROOT}/bin/armofd ${CG_TOOL_ROOT}/bin/armhex ${CCS_INSTALL_ROOT}/utils/tiobj2bin/mkhex4bin

    After this, I tried to load the .bin  using the UniFlash and now it is giving the following error and fails to flash the device.

    Which tells me that the .bin generated is not calculating the offset correctly. Can you help me with this and what is the correct what to generate the bin in CCSv10.

    After this I think I will be able to complete the task of testing OTA framework using CC1310 launchpads before porting thart into my own application.

    Thanks

  • Hi Rajeev,

    Can you check what version of the Linux gateway you are using? The supported version for CC1310 is 3.30 SDK.

  • Hello Marie,

    I am currently using the latest version which is 4.30.00.06

    Do you think the issue is with the Linux gateway end and not the use of .bin which is causing the CRC check for the OTA to fail?

    Btw how did  you guys at the TI have tested this OTA framework specifically for the CC1310 platform and how the .bin files were generated for the sensor node? I guess this will be important to know so that using the latest Simplelink SDK, users are able to generate the correct binary files. Also, I have noticed that now the OTA code is much organized in the newer SDKs rather than the old ones.

    After failing to get the CC1310 sensor device to pass OTA (Ext Flash) over linux GW, I went back to step one and started all over again from step one provided here:

    This tutorial use simplelink_cc13x0_sdk_2_30_00_20. So I downloaded this SDK which has prebuild binaries for testing the OTA especially for using the OAD example for native 15.4 OAD.

    First I flashed the the CC1310 co-processor  with simplelink_cc13x0_sdk_2_30_00_20/examples/rtos/CC1310_LAUNCHXL/ti154stack/hexfiles/coprocessor_cc1310lp.hex.

    Then the sensor with the simplelink_cc13x0_sdk_2_30_00_20/examples/rtos/CC1310_LAUNCHXL/ti154stack/hexfiles/oad/sensor_oad_cc1310lp_all.hex that has both the BIM and the OTA application combined as explained here.

    After which I started the Linux GW using SDK version 3.30 as shown below and connected the sensor node

    Then sending the cmd v to check the firmware version on the sensor node to verify devices have successfully joined the network.

    Then the firmware to be updated  sensor_oad_cc13x0lp_app.bin was selected provided by TIs SDK in simplelink_cc13x0_sdk_2_30_00_20/examples/rtos/CC1310_LAUNCHXL/ti154stack/hexfiles/oad/sensor_oad_cc13x0lp_app.bin

    Afterward the CMD u was invoked to start the OTA transfer process to the sensor via 15.4 stack. However, after starting the above process, the sensor device outputted the following error message that the OAD has even failed to start else I would have seen something similar to this:

    OAD Block: 1
    of 928
    OAD Block: 2
    of 928
    
    

    What is strange to me is that I am using all the images/binaries provided by TI and following the steps in their tutorial and still the OTA example did not work.

    Please can you or someone at the TI help me to solve this issue. I really need a direction or solid solution here. 

    Thank you.

  • Hi Rajeev, 

    Apologies for the delay. 

    Have you made any progress on your issue? 

    Since you are using the CC1310 device on the sensor side, you need to use version 3.30 for the Linux SDK, and you have to enable the TIRTOS_IN_ROM in the Makefile.

    Thanks, 
    Elin 

  • Hello Elin,

    I managed to get the OAD setup up and running but using Easylink examples  from the SDK and not the TI15.4.

    Now I have a complete understanding of how the OAD mechanisms work and currently, we are porting this for our custom-designed CC1310 board.

    Thank you!

    Rajeev