This is documentation for the old, first-generation Kaa platform v0.x.
Next generation Kaa Enterprise IoT platform is now available! Try it free with a 30-days trial.
Kaa Enterprise documentation is here.
. . .

Texas Instruments CC3200

This guide explains how to build a Kaa C SDK for Texas Instruments CC3200 LaunchPad (hereinafter, CC3200) and install Kaa applications on it.

Prerequisites

Prior to building Kaa C SDK for the CC3200 platform, install the prerequisites for your operating system.

NOTE: This guide is verified against:

  1. Install the GNU ARM toolchain gcc-arm-none-eabi.

    wget https://launchpad.net/gcc-arm-embedded/4.9/4.9-2015-q2-update/+download/gcc-arm-none-eabi-4_9-2015q2-20150609-linux.tar.bz2
    tar -xjf gcc-arm-none-eabi-4_9-2015q2-20150609-linux.tar.bz2
    sudo mkdir /opt/kaa
    sudo chown <username>:<usergroup> /opt/kaa
    mv gcc-arm-none-eabi-4_9-2015q2 /opt/kaa/gcc-arm-none-eabi
    
  2. Install and configure OpenOCD required for running and debugging applications.

    sudo apt-get install openocd
    
  3. Add a rule file.

    cd /etc/udev/rules.d/
    sudo nano 98-usbftdi.rules
    

    Write the following code into the added rule file and then save the file.

    SUBSYSTEM=="usb", ATTRS{idVendor}=="0451", ATTRS{idProduct}=="c32a", MODE="0660", GROUP="dialout",
    RUN+="/sbin/modprobe ftdi-sio" RUN+="/bin/sh -c '/bin/echo 0451 c32a > /sys/bus/usb-serial/drivers/ftdi_sio/new_id'"
    
  4. Reload the rules.

    sudo udevadm control --reload-rules
    
  5. To use OpenOCD as a regular user, add yourself to the dialout group.

    sudo usermod -a -G dialout <username>
    

    Log out and log in to finish the process.

    NOTE: The board must be enumerated as /dev/ttyUSB{0,1}. Use ttyUSB1 for UART.

  6. Install Wine.

    sudo apt-get install wine
    
  7. Download and unpack CC3200 SDK. Change the configuration file for debug interface.

    In the /opt/kaa/cc3200-sdk/tools/gcc_scripts/cc3200.cfg file, replace the following lines:

    interface ft2232
    ft2232_layout luminary_icdi
    ft2232_device_desc "USB <-> JTAG/SWD"
    ft2232_vid_pid 0x0451 0xc32a
    

    with the ones below:

    interface ftdi
    ftdi_device_desc "USB <-> JTAG/SWD"
    ftdi_vid_pid 0x0451 0xc32a
    ftdi_layout_init 0x00a8 0x00eb
    ftdi_layout_signal nSRST -noe 0x0020
    
  8. Edit GDB configuration.

    sed -i 's#-f cc3200.cfg#-f /opt/kaa/cc3200-sdk/tools/gcc_scripts/cc3200.cfg#g' /opt/kaa/cc3200-sdk/tools/gcc_scripts/gdbinit
    
  1. Install Cygwin with the following additional packages:
    • Archive/unzip
    • Archive/zip
    • Devel/autoconf
    • Devel/automake
    • Devel/libtool
    • Devel/subversion (Note: if using TortoiseSVN/Windows7, skip this file)
    • Devel/make
    • Devel/gcc-core
    • Devel/gcc-g++
    • Devel/mingw-gcc-core
    • Devel/mingw-gcc-g++
    • Devel/mingw-runtime

    Refer to SO question page for details how to install packages on Cygwin.

  2. Install the GNU ARM toolchain gcc-arm-none-eabi to the opt\kaa directory under the Cygwin root folder (default is C:\cygwin).

  3. Install CC3200 SDK to the opt\kaa directory (if it doesn’t exist, create it) under the Cygwin root folder.

  4. Install CMake and add its bin directory to the system environment.

To enable debugging for your CC3200 applications, you will also need to build OpenOCD as described in the official CC3200-Getting_Started_Guide (item 3.3.3).

Build C SDK

Before creating applications based on Kaa C SDK, download the C SDK from the Administration UI and extract the archive.

Change directory to where SDK was unpacked and run:

mkdir -p build
cd build
cmake -DKAA_PLATFORM=cc32xx -DCMAKE_TOOLCHAIN_FILE=../toolchains/cc32xx.cmake -DBUILD_TESTING=OFF ..
make

Refer to C SDK Linux page for more details.

Open the Cygwin terminal and run:

mkdir -p build
cd build
cmake.exe -G "Unix Makefiles" -DKAA_PLATFORM=cc32xx -DCC32XX_TOOLCHAIN_PATH=c:/cygwin/opt/kaa -DCMAKE_TOOLCHAIN_FILE=../toolchains/cc32xx.cmake -DBUILD_TESTING=OFF ..
make

Build Kaa application

To build and run your Kaa application on the CC3200 board, you can download one of the Kaa demo applications from Kaa Sandbox. It is recommended that you start with the Configuration Demo application.

Connect CC3200 LaunchPad to your PC using a micro-USB connector and run the following commands:

tar -xzf configuration_demo.tar.gz
cd CConfigurationDemo
tar -zxf libs/kaa/kaa-* -C libs/kaa
mkdir -p build
cd build
cmake -DKAA_PLATFORM=cc32xx -DCMAKE_TOOLCHAIN_FILE=../libs/kaa/toolchains/cc32xx.cmake ..

To launch the application, run:

/opt/kaa/gcc-arm-none-eabi/bin/arm-none-eabi-gdb -x /opt/kaa/cc3200-sdk/tools/gcc_scripts/gdbinit build/demo_client.afx

NOTE: If you want to see the debug output in the terminal, make sure to connect to /dev/ttyUSB{0,1}.

Flashing

To flash the application to CC3200:

  1. Connect the jumpers on your CC3200 board as follows.

    Jumpers

  2. Install UniFlash for Linux or Windows.

    NOTE: UniFlash v3.4.1 or later is needed. Starting from v4.0.0 UniFlash doesn’t support CC32XX/CC31XX.

  3. If you are using Linux, allow execution of the installation file.

    chmod +x uniflash_setup_3.4.1.*.bin
    ./uniflash_setup_3.4.1.*.bin
    
  4. To run the application, remove SOP2 and J8 jumpers, then connect J2 and J3 jumpers.

For more information, see UniFlash Quick Start Guide.