OpenThread on CC2650 Example

This directory contains example platform drivers for the Texas Instruments CC2650.

The example platform drivers are intended to present the minimal code necessary to support OpenThread. As a result, the example platform drivers do not necessarily highlight the platform's full capabilities. The platform abstraction layer was build for the CC2650 LAUNCHXL, usage on other boards with a CC2650 will require changes to the peripheral drivers.

Due to flash size limitations, some features of OpenThread are not supported on the Texas Instruments CC2650. This platform is intended for exprimentation and exploration of OpenThread, not a production ready environment. Texas Instruments recommends future TI SoCs for production.

Building with gcc 5.4 is recommended due to generated code size concerns.

All three configurations were tested with arm-none-eabi-gcc 5.4.1 20160609 (release) on this commit. The automatic integration builds have since been limited to only the cli-mtd configuration to limit the impact on pull requests.

Build Environment

Building the examples for the cc2650 requires GNU AutoConf, GNU AutoMake, Python, and the ARM gcc toolchain.

With the exception of the arm toolchain, most of these tools are installed by default on modern Posix systems. Windows does not have these tools installed by default, and the bootstrap script requires a Posix or MSYS environment to run. It is possible to setup an MSYS environment inside of Windows using tools such as Cygwin or MinGW but it is recommended to setup a Linux VM for building on a Windows system. For help setting up VirtualBox with Ubuntu, consult this community help wiki article.

Building

In a Bash terminal, follow these instructions to build the cc2650 examples.

$ cd <path-to-openthread>
$ ./bootstrap
$ make -f examples/Makefile-cc2650

Flash Binaries

If the build completed successfully, the elf files may be found in <path-to-openthread>/output/cc2650/bin.

To flash the images with Flash Programmer 2, the files must have the *.elf extension.

$ cd <path-to-openthread>/output/cc2650/bin
$ cp ot-cli ot-cli.elf

To load the images with the serial bootloader, the images must be converted to bin. This is done using arm-none-eabi-objcopy

$ cd <path-to-openthread>/output/cc2650/bin
$ arm-none-eabi-objcopy -O binary ot-cli ot-cli.bin

The cc2538-bsl.py script provides a convenient method for flashing a CC2650 via the UART. To enter the bootloader backdoor for flashing, hold down BTN-1 on CC2650 LauchPad or SELECT for CC2650DK (corresponds to logic ‘0’) while you press the Reset button.

Interact

CLI example

  1. With a terminal client (putty, minicom, etc.) open the com port associated with the cc2650 UART. The serial port settings are:
    • 115200 baud
    • 8 data bits
    • no parity bit
    • 1 stop bit
  2. Type help for a list of commands
  3. follow the instructions in the CLI README for instructions on setting up a network
> help
help
channel
childtimeout
contextreusedelay
extaddr
extpanid
ipaddr
keysequence
leaderweight
masterkey
mode
netdataregister
networkidtimeout
networkname
panid
ping
prefix
releaserouterid
rloc16
route
routerupgradethreshold
scan
start
state
stop
whitelist

NCP example

Refer to the documentation in the wpantund project for build instructions and usage information.