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.

CC3220SF-LAUNCHXL: Energia Support

Part Number: CC3220SF-LAUNCHXL
Other Parts Discussed in Thread: CC3200, ENERGIA, CC3220SF, CC3220S,

Hi,

In the past I have used Energia to develop on the CC3200, and I was wondering if Energia will be providing support for the CC3220 in the (near) future?

  • Hi Thane,

    Energia is currently not supporting CC3220.
    You are welcome to contact Energia to check about future support.

    Br,
    Kobi
  • Plug this URL into the Energia preferences under “Additional Boards Manager URLs”. Then pull-up the board manager and you will see a CC3220 package.

    energia.nu/.../package_cc3220_beta_index.json

    Please note that this is still in beta. Currently it ONLY loads to RAM. Hence resetting or power cycling the board will erase the program. I am working on enabling flashing. Initially this will only be available for the CC3220SF device and CC3220S will follow shortly after.
  • Hey Robert,

    Thanks for the reply! This will help a lot, however when I use the link you provided (I also tried adding http:// and https://), I open the Boards Manager and got these errors:

    no protocol: energia.nu/packages/packages/package_cc3220_beta_index.json
    Error downloading energia.nu/.../package_cc3220_beta_index.json
    Error downloading energia.nu/.../package_cc3220_beta_index.json

    Any suggestions?
    Thanks again for the help!

    -Thane
  • Hello Thane,

    Please use this URL : (removal of additional /packages folder)

    http://energia.nu/packages/package_cc3220_beta_index.json

    ~roger

  • Roger,

    Thanks for the link, this one seemed to work and I got the board package into Energia.
    However, after trying to compile, I ran into a couple errors:

    core/core.a(WStringD.cpp.o): In function `String::String(float, unsigned char)':
    /Users/thanestorley/Library/Energia15/packages/energia/hardware/cc3220emt/4.9.0/cores/cc3220emt/ti/runtime/wiring/WStringD.cpp:39: undefined reference to `String::init()'
    /Users/thanestorley/Library/Energia15/packages/energia/hardware/cc3220emt/4.9.0/system/source/ti/drivers/net/wifi/gcc/rtos/simplelink.a(driver.obj): In function `_SlDrvallocateErrno':
    driver.c:(.text._SlDrvallocateErrno+0x22): undefined reference to `pthread_self'
    /Users/thanestorley/Library/Energia15/packages/energia/hardware/cc3220emt/4.9.0/system/source/ti/drivers/net/wifi/gcc/rtos/simplelink.a(driver.obj): In function `__errno':
    driver.c:(.text.__errno+0x22): undefined reference to `pthread_self'
    collect2: error: ld returned 1 exit status
    exit status 1
    Error compiling for board CC3220SF-LAUNCHXL (80MHz).

    I'm not quite sure why I'm getting this as I can't trace it back to any of my code I attempted to load. Suggestions?
    Thanks again for the help!

    -Thane
  • I am not able to reproduce this. Can you please attach the Sketch so that I can have a closer look at it?

  • Here is the repository I am working out of: https://github.com/exosite-garage/arduino_exosite_library/tree/CC3200_support 

    Under Examples/CC3200HVACDemo you will find the sketch I am using. 

    I've also attached the verbose log of my compile in case that helps.

    Thanks!

    CC3220SF verbose compile error.txt

  • After taking a second look at it, I was able to figure out what was going on.

    I took out the temperature sensor and all of the code that went with it, and I concatenated my string differently in line 154. After doing so the board compiled and my application ran perfectly.

    As far as the temperature sensor goes, If i am not mistaken, it is the same sensor that was equipped to the CC3200, and my code should still work with this board. Am I doing something wrong?
  • Sorry it took a while. I just took another look at this and it turns out it is a bug in the implementation of String for the EMT targets which include CC3220.

    We moved the double precision String operations to a separate implementation file called WStringD.cpp to work around issues for some compilers. Most of these functions including the one you are using (String::String(float, unsigned char)) call init(). Init() is an inlined function which causes it to not be there during link time of WStringD and hence the undefined reference.

    There is an easy work around for this. Edit the file WString.cpp and remove the inline on line 120. You can find WString.cpp in:

    • On GNU/Linuxes: ~/.energia15/packages/energia/hardware/ cc3220emt/4.9.0/cores/cc3220emt/ti/runtime/wiring/WString.cpp
    • On Windows: %LOCALAPPDATA%\Energia15\packages\hardware\cc3220emt\4.9.0\cores\cc3220emt\ti/runtime\wiring\WString.cpp
    • On MacOSXes: ~/Library/Energia15/packages/hardware/ cc3220emt/4.9.0/cores/cc3220emt/ti/runtime/wiring/WString.cpp

    Regarding the sensor, it is indeed still a TMP006 on the CC3220 LaunchPad.

    Robert

  • Thanks for the help Robert!

    As far as the sensor goes, It seems that everything works, except for when I try to compile while using readObjTempC().

    readDieTempC works perfectly; it compiles and runs, however when I try to use readObjTempC() it throws this error:

    /Users/thanestorley/Library/Energia15/packages/energia/hardware/cc3220emt/4.9.0/system/source/ti/drivers/net/wifi/gcc/rtos/simplelink.a(driver.obj): In function `_SlDrvallocateErrno':
    driver.c:(.text._SlDrvallocateErrno+0x22): undefined reference to `pthread_self'
    /Users/thanestorley/Library/Energia15/packages/energia/hardware/cc3220emt/4.9.0/system/source/ti/drivers/net/wifi/gcc/rtos/simplelink.a(driver.obj): In function `__errno':
    driver.c:(.text.__errno+0x22): undefined reference to `pthread_self'
    collect2: error: ld returned 1 exit status
    exit status 1
    Error compiling for board CC3220SF-LAUNCHXL (80MHz).

    Also, is there any word of an official release for the CC3220 board package?

    Thanks!

  • I traced it down to a math function but have no idea yet why it is trying to pull in the WiFi function that calls pthread_self().

    The below Sketch fails to link with the below error. If I remove #include <WiFi.h> it links. If I leave #include <WiFi.h> uncommented but then comment out double Tobj = sqrt(analogRead(A0)), it it also links. We are looking into it and hope to find the root cause soon.

    /Users/robertinant/Library/Energia15/packages/energia/hardware/cc3220emt/4.9.0/system/source/ti/drivers/net/wifi/gcc/rtos/simplelink.a(driver.obj): In function `_SlDrvallocateErrno':
    driver.c:(.text._SlDrvallocateErrno+0x22): undefined reference to `pthread_self'
    /Users/robertinant/Library/Energia15/packages/energia/hardware/cc3220emt/4.9.0/system/source/ti/drivers/net/wifi/gcc/rtos/simplelink.a(driver.obj): In function `__errno':
    driver.c:(.text.__errno+0x22): undefined reference to `pthread_self’
    #include <WiFi.h>
    void setup() {
      double Tobj = sqrt(analogRead(A0));
    }
    void loop() {}
  • Hi Thane - I'm planning to upgrade from cc3200 dev kit to cc3220 currently my project works fine with cc3200 I would like to add some more functionality to my code/energia and try in cc3220 - can I purchase? is this bug fixed? since I'm using WiFi I'm confused to buy or not... please advice

    Best Regards,
  • Hey Rangarajan,

    I was able to get the cc3220 up and running, however, I believe that the board is still in beta, meaning that code can still only be uploaded to the RAM. If you're interested in seeing how to set up a cc3220 board, feel free to take a look at this guide.

    http://docs.exosite.com/tutorials/hvac-tutorial/cc3220/#ti-cc3220-setup

  • Thank you! Thane Storley..
    I guess I should wait.