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.

CC1312R: CC1312R Firmware Update Over the Air

Part Number: CC1312R
Other Parts Discussed in Thread: SYSCONFIG, , CC1310

Hi,

I want to update firmware over the air but I am confused a little bit. I have searched the forum and there are different things I have not used yet. That's why I don't know where to start. Do I need any stack, I don't use any of them. The other one is BIM. Do I need to investigate it ? I use TI-RTOS and I see BIM examples has no rtos. Is the main project I should reference rfWsnNodeIntFlashOadClientPApp or rfWsnNodeIntFlashOadClientUApp ? 

  • Hi D.B.Cooper,

    I know that it is a bit confusing, but most of the information you need can be found in the different user guides that we provide.

    For your first question. Yes, the general recommendation is that you use one of the stacks available for your device. This is because they take care of a lot of things so that you don't have to (making development time MUCH faster).

    For your second question. BIM is certainly something that you need to consider to perform an Over-the-Air update. The examples that you have found are useful and give you a general idea about how things work,  but I can point you to better examples.

    Now, for the CC1312, I believe that you have two options.

    You can either use the TI 15.4 stack that implements the standard IEEE 802.15.4e and 802.15.4g specification. Or you can use the TI proprietary RF which deals more with the RF driver (low-level API’s to run radio operation commands on the RF core and send and receive raw packets).

    There is a section in the TI 15.4-Stack User's Guide that has all the information you need to perform an OAD.

    https://dev.ti.com/tirex/explore/node?node=APeHcG.A0wniaym22zAYKw__pTTHBmu__LATEST

    Here you will find information about the IEEE standard, the different modes of operation and it also has a section that deals specifically with Over-the-Air downloads and BIM. You also have several examples that implement OAD, such as sensor_oad_offchip_secure and sensor_oad_onchip_secure.

    For the TI Proprietary RF you also have some examples. The ones that you mention differ slightly from each other in that the rfWsnNodeIntFlashOadClientUApp  example is a limited functionality version of the OAD Client, so in this case it would be better to go with the other example.

    You can find all the information you need for the TI Proprietary RF here:

    https://dev.ti.com/tirex/explore/node?node=AOFmdaK8impnxmEqGU3jkg__pTTHBmu__LATEST

    BR,
    AndresM

  • Hi AndresM,

    Thank you so much, informations are good enough to start. I want one more advice from you. I have a working system. There are CC1312R and some sensors. I collect datas from sensors and send them via RF. In this project I don't use sysConfig and any other stacks as mentioned above.

    The most important topic is energy usage, then sending datas correctly to possible farthest distance. What do you suggest me to add OAD functionality to this project asap ?

    I have to say that I will use CC1310 to send firmware to target devices(CC1312R). Because I have a different device includes CC1310 to send/receive datas from/to CC1312R device and I don't want to migrate from CC1310 to CC1312R in this ready to use device.

  • Hi again,

    In that case, it probably makes sense to use the rfWsnNodeIntFlashOadClientPApp example as a starting point. It's probably a good idea to first make the example work and then migrate what you need from there to your other project.

    Energy consumption and range will of course depend of your implementation. That's one of the reasons it is recommended to use the stacks, since they are optimized for that.

    BR,
    AndresM