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-CC1350: Issue in OAD device firmware upgrade

Part Number: LAUNCHXL-CC1350
Other Parts Discussed in Thread: CC1350

Hi,

I'm trying to upgrade firmware through OAD,  firstly I created the binary file and sending that through the collector & in the terminal I received OAD completed, booting new image. Now the Problem is after successfully receiving OAD Block the sensor board is not rebooting. What may be the issue?

Thanks,

Manovikas

  • looking into this
  • Hello Manovikas,

    Do you mind running the sensor in debug mode and putting a breakpoint at the end of the OAD process to see if it is actually finishing successfully?

    Regards,
    AB
  • Hi AB,

    Thanks for your response.
    Actually we tried debugging sensor and we are getting CRC error.
    My question is who fill the meta-data vector, CRC and every other fields.
    If it is filled by OAD image creation tool, than how to modify it and by which method it is generating CRC.


    Thanks,
    Pratik
  • Hi AB,

    One more question we have is
    As we are using off-chip OAD, so the script says that for Off-chip meta-data header is not embedded in bin.
    But document says that image header of 16 bytes will be there irrespective of on-chip or off-chip.
    Can you clarify our doubt. That will be really helpful.

    Thanks,
    Pratik
  • Hello Pratik,

    Sorry for the delayed reply.

    see below in RED

    Actually we tried debugging sensor and we are getting CRC error.

    Try creating a new image using the tool.

    My question is who fill the meta-data vector, CRC and every other fields.

    The image creation tool is in charge of this,

    If it is filled by OAD image creation tool, than how to modify it and by which method it is generating CRC.

    You can modify the script as needed(not recommended), it creates it by running the "compute CRC32" API in line 180. This calls another API from the zlib module. If you want specifics on this, I sugest you check out Zlib.

    As we are using off-chip OAD, so the script says that for Off-chip meta-data header is not embedded in bin.

    Where is this located I cannot find it...

    It is my understanding that you always need the header in order to accept the image, since this is where the CRC lives.

    But document says that image header of 16 bytes will be there irrespective of on-chip or off-chip.

    Can you clarify our doubt. That will be really helpful.

  • Hello AB,

    Thanks for your reply.

    We tried different bin files for OAD and we are getting same CRC error.

    Where could we go wrong.

    Furthermore, we checked the bin files before sending and after receiving on Node code and we found it to be same.

    Means we found it to be received correctly over the air.

    One more question, Why we cannot use normal project's .bin file for OAD.

    When we tried example projects hex file to convert into .bin file using that tool.

    But we are getting error :

    Fatal Error: -- Non Production/NP image cannot have data in reserved pages.

    Do we need to change flash addresses of our application.

    Thanks,

    Pratik

  • Hai,

    Now OAD is happening and I want to update the firmware multiple times. For the first time, the firmware is updating & the node is joining the collector. But when I restart the collector to update new firmware, the node is not joining the collector. If I press BTN-1(to disassociate from the PAN) & BTN-2(to initialize the sensor application) then only the node is joining to the collector as a new device. The node is not at all joining the collector even if I delete and restart the collector NV. Can you please suggest the reason for this?

    Thank you,

    Manovikas

  • Is permit join enabled/?

  • Hi AB,

    Yes Permit join is enabled.

    After enabling also node is not joining.

    My question is after successful OAD, what happens to Node's NV.

    If it is deleted than it should join the collector, if i start collector freshly by deleting collector's NV.

    Well in this case also node is not joining the collector.

    Note : Permit join is enabled

    Thanks,

    Pratik

  • What image are you flashing into the device?

    It should not overlap the NV, meaning that the sensor should be able to connect to the same collector.

  • Hi AB,

    we are using the same sensor_oad_CC1350_LAUNCHXL_tirtos_ccs project just by changing the version & creating the binaries. What I need to do in order to not overlap the NV?

    Regards,

    Manovikas

  • Then you should be good,

    One way to make sure is to look at the .map file and the .cmd file.
    This is where we allocate memory sections for specific source files.

    Regards,

    AB

  • Hi AB,

    Yes you are right we have look into that, and found that everything is in place.

    Further in our development we observed few things, which is weird :

    After successful OAD, My node joins the collector easily within secs, if i restart my node by pressing reset button, it will again join the collector easily.

    That's Pretty good.. that how we want it to be.

    But during this if i restart my collector application or if i power cycle my BBB, then my Node is not joining easily.

    To check how long it takes, we waited for a while and we observed that it tales around 45-50 mins for him to rejoin the network.

    We are surprised by seeing this, can you help us by looking into it...

    Even we are trying to solve this.

    Thanks,

    Pratik

  • Hello Pratik,

    Have you adjusted the orphan scan parameters in the config.h files on the sensor side?

    These should help you optimize the joining process.

  • Hello AB,

    I have adjusted scan parameters in config.h file on the sensor side, it is as follows :

    /* Interval for scan backoff */
    #define CONFIG_SCAN_BACKOFF_INTERVAL 5000
    /* Interval for delay between orphan notifications */
    #define CONFIG_ORPHAN_BACKOFF_INTERVAL 100

    Anything else which i am missing Because we are stuck here.

    Can you try their and recreate this scenario.

    Thanks,

    Pratik

  • Hi AB,

    Any update on this?

    As we are still facing same issue of rejoining Node after 45 mins.

    Thanks,

    Pratik

  • Hey Pratik,

    Can you send me sniffer screenshot of this scenario? I need to see the packets.

    REagrds,

    AB

  • Hi AB,

    Here I'm attaching the whole Wireshark captured file.OAD.zip

    Kindly look into this file after OAD, i.e once we restart the collector. In Wireshark, we observed that there is a communication between collector & node(MAC to MAC) but we are not seeing anything on the terminal, i.e collector application.

    Why Mac layer is not in Sync with application in this scenario ?

    Regards,

    Manovikas

  • Trying to recreate, give me some more time.
    Sorry

  • Sorry for the late reply.

    In order to be able to get all beacons at the application layer you need to run this after the sensor connects to a network:

    ApiMac_mlmeSetReqBool(ApiMac_attribute_autoRequest, FALSE);

    Regards,

    AB