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.

Linux/LAUNCHXL-CC1310: OAD using TI 15.4-Stack - Linux HELP

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

Tool/software: Linux

Hi all,

I'm starting to work with SimpleLink™ Sub-1 GHz CC13x0 Software Development Kit 1.40. My major focus is on 15.4 stack OAD. As I'm going through the documentation, It mentioned that " The collector application must run on a linux machine using TI 15.4-Stack Linux SDK". Up to now I was using window for development. I have following problems regarding this in need of asap answers. :-).

1. Do I have to use the same collector example in collector LP with sensor OAD example in sensor LP in the example folder?

2. Is there any pre-considerations or requirements needed other than installing CCS, SDK, SmartRF in linux to try out the example system?

  • Hey Dulip,

    You do not need to install CCS or SmartRF in linux, but only the TI 15.4-Stack Linux SDK (If you want to run the gateway on a BeagleBone Black then you can cross-compile using the am335x processor sdk here www.ti.com/.../PROCESSOR-SDK-AM335X). The sensor_oad_cc1310lp project is ready to be OAD'd. What this means is that it has made room for a bootloader on page 0, has the required application logic to handle an image transfer and validation, and also has the external flash configured to store images. To get a demo up and running refer to the user guide here:
    dev.ti.com/.../native-oad.html
  • Hi Brocklobsta,

    This is a bit complex due to I'm new to Linux. I want to run the OAD example to get to know it how to use in my requirement. Is the following steps are correct, If not can you give me a simple step vise explanation I should follow [I just wanted to up the example in running first],

    1. Program 1 LP with sensor_oad example project.
    2. Program 2 LP with Linux collector example project without IS_HEADLESS.
    3. Monitor the both using a terminal [Tera term].

    Dulip
  • I think you have to have a BBB or AM335x EVB to connect to your seconds LP to run Linux collector example for OAD.
  • Hi Chen,

    Can you please walk me through the process [Just a simple step vise explanation will do].

    Dulip
  • Hi Chen & Brock,

    Both of the references are 2.1 version Which does not include OAD example. The trouble I'm facing is that, I have used windows up-to this point to develop Collector-Sensor example in FH mode. Now I wanted to learn and use OAD in my application. Can you or any TI employee can give me answer for the following,

    1. Can I successfully implement OAD by only using windows? [As I read through the OAD section of the 2.2 guide it is metioned that I have to use the Linux SDK for collector. I have mentioned this in the main question above we cannot use ]. If not answer followings also,

    A. I have already installed ubuntu 16.04. In ubuntu Code Composer Studio V7.1 & 15.4 Linux SDK 1.40 are installed. Which softwares and requirements I have to install other than that.[I have seen(attached following screenshot) in document that I have to install python, intelhex, crcmod]. [As I'm a beginner the OAD image creation is not urgent. But this would be the requirement to develop customize upgrades]

    B. What configuration out of following two should I use and What are the differences between those two [images attached]?

    C. There are several examples in Linux. [Linux Gateway, Co-processor, Collector-Sensor/ These might be wrong interpretation]. Can you please explain different types of examples [by interpreting correctly] available in Linux SDK ?

    D. Give me a correct steps to follow to achieve OAD in Linux with a proper example. Because the documents are not well organized. I couldn't find a proper procedure to follow.

    This is very URGENT matter. I cannot move forward without a clear understanding. Please Give me an explanation for above questions.

    Dulip

  • Dulip,

    Please familiarize with the Linux SDK documentation here:

    One LP needs to be flashed with the sensor_oad_cc13x0lp_all.hex (This includes the sensor_oad_cc13x0lp project as well as the bim_extflash_cc13x0lp project) found in C:\ti\simplelink_cc13x0_sdk_1_40_00_10\examples\rtos\CC1310_LAUNCHXL\ti154stack\hexfiles\oad\

    The other needs to be flashed with coprocessor_cc13xx_lp.hex found in C:\ti\simplelink_cc13x0_sdk_1_40_00_10\examples\rtos\CC1310_LAUNCHXL\ti154stack\hexfiles

    The collector application is then run on a linux machine and talks to the coprocessor via UART to issue MAC commands. You can then select an OADable .bin file on your linux filesystem to be sent over the air to be upgraded.

    I recommend you familiarize yourself with the linux SDK and then dive into OAD.

  • Dulip try running through the simplelink academy training here:

    dev.ti.com/.../154-stack_03_linux_project_0.html
  • Hi Brocklobsta,

    I tried using two LPs as sensor and Co-processor and succefully conduct Linux gateaway example by following lab documents in resource explorer. I will try your suggestion and let you know how it goes.

    Dulip
  • Hi Brocklobsta,

    I followed the steps and updated the firmware by the "sensor_oad_cc13x0lp_app.bin" in the simplelink cc13x0 sdk 1.40 one time. But unfortunately When I flash the two LPs and tried it again it is not working properly. Actually what I used was the following steps,

    But in the folder there is no "host_collector" executable file. Which results errors when forming the host (make host). Also  without it cannot run the collector.cfg file. In the directory "cd ${SDK_ROOT}/prebuilt/bin" there are prebuilt executables. I tried copying the "host_collector" file from there to "cd ${SDK_ROOT}/examplet/collector" and run "./host_collector collector.cfg".

    1. Is this the correct way? . Sometime only works the toggling command (cmd : t). Others are not working. What could be the reason?

    2. Is there any method that we can broadcast the OAD without unicasting to each an every sensor?

    Thank you very much.

    Dulip

  • Hey Dulip,

    The prebuilt folder contains the example application already built for either a 64bit ubuntu platform (host_collector) or the beaglebone black (bbb_collector). Running make builds the application with any changes you have made to the  project. It is possible to broadcast an OAD, but our example does not cover that use case. There are many disadvantages to a broadcast (no ack, sleepy device will not receive the whole image, etc.). This is why we recommend a unicast OAD. If you are seeing errors when building the collector, try running the build_all script to build to required components.

  • Hi Brocklobsta,

    The problem I'm having is that, I have worked in two directories as follows [Screenshots attached],

    ~/ti/simplelink/ti-15.4stack-2.02.00.03/prebuilt/bin$

    ~/ti/simplelink/ti-15.4stack-2.02.00.03/example/collector$


    In the prebuilt/bin I can host the collector.cfg using host_collector. I can change the collector.cfg and host it again. The problem is that,

    1. I tried the same in the example/collector directory and it give following error. Seems like it's missing host_collector. I copied it from the prebuilt/bin to the example/collector and host_collector collector.cfg. It works. But I'm not sure is it the right way?

    make -f Makefile ARCH=host
    make[1]: Entering directory '/home/dulip/ti/simplelink/ti-15.4stack-2.02.00.03/example/collector'
    mkdir -p objs/host
    Compling: appsrv.pb-c.c
    Compling: api_mac.pb-c.c
    Compling: cllc.pb-c.c
    Compling: csf_linux.pb-c.c
    Compling: csf.pb-c.c
    Compling: llc.pb-c.c
    Compling: smsgs.pb-c.c
    Compling: appsrv_proto.c
    Compling: llc_proto.c
    Compling: api_mac_proto.c
    Compling: csf_proto.c
    Compling: smsgs_proto.c
    Compling: linux_main.c
    Compling: cllc.c
    Compling: collector.c
    Compling: csf_linux.c
    Compling: appsrv.c
    Compling: util.c
    Compling: oad_protocol.c
    Compling: protobuf-c.c
    Creating App: (host) host_collector
    /usr/bin/ld: cannot find -lnv
    /usr/bin/ld: cannot find -lapimac
    /usr/bin/ld: cannot find -lcommon
    collect2: error: ld returned 1 exit status
    ../../scripts/app.mak:124: recipe for target 'host_collector' failed
    make[1]: *** [host_collector] Error 1
    make[1]: Leaving directory '/home/dulip/ti/simplelink/ti-15.4stack-2.02.00.03/example/collector'
    ../../scripts/front_matter.mak:254: recipe for target 'host' failed
    make: *** [host] Error 2


    2. lets say if I want to change collector.c and use that changes in effective in the application.[From this point on If I'm wrong make me correct],

    I go to the example/collector directory (copy the project in a different folder for the safe) do the changes for .c and .h files and make clean--> make host---->host_collector collector.cfg [Should I compile .c & .h then How could I do that to the project/ SIMPLY HOW CAN I BUILD THIS PROJECT].

    Thank you very much for your help.

    Dulip

  • If you are seeing errors when building the collector, try running the build_all script to build to required components.
  • Hi Brocklobsta,

    Thank you very much I will look into that.

    Dulip
  • Hi Brocklobsta,

    Yeah it worked. It created all required file. Thank you very much.

    Dulip