Getting Started

This section serves as a road map for users developing applications and products using the TI SimpleLink Bluetooth Low Energy CC2640R2F wireless MCU platform. Whether a seasoned developer or just getting started, TI has created a variety of resources to simplify development on the CC2640R2F platform. These resources will enhance your experience with the TI SimpleLink BLE-Stack ™ 3.02.03.00 Software Development Kit (SDK) from the out-of-the-box demo to production.

To download the CC2640R2F SDK, please visit the download page: http://www.ti.com/tool/SIMPLELINK-CC2640R2-SDK.

Figure 1. shows the suggested work flow for getting started with TI’s SimpleLink Bluetooth Low Energy (BLE) development environment.

../_images/suggestedworkflow.png

Figure 1. Suggested Workflow

Demo: Project Zero

The CC2640R2F LaunchPad™ is the main development kit for Project Zero and developing applications with the BLE-Stack. To quickly get started on a simple project with the CC2640R2F LaunchPad, see the Project Zero overview page: www.ti.com/ble-project-zero.

Project Zero uses a modified version of the simple_peripheral sample application from this SDK to demonstrate and evaluate some of the most commonly used BLE features. Using CCS Cloud™, TI’s web based IDE, Project Zero can be built, downloaded, and debugged directly from a supported browser without the need to install a full desktop IDE. With Project Zero running on the CC2640R2F LaunchPad, you can connect with your smart phone to remotely blink on-board LEDs, send text strings to the LaunchPad’s serial port, and receive button press notifications, all right out of the box.

The following sections in this document focus on developing a custom application with BLE-Stack.

To summarize, Project Zero allows you to quickly:

  • Run software without installing any tools
  • Flash the device with a single-button click from the browser
  • Import a project to the cloud editor and develop, build, and debug
  • Download all required project files in one archive file for CCS Desktop development
../_images/image2.jpeg

Figure 2. Project Zero on CCS Cloud

Learn

Resources contained in the Learn track of Figure 1. are intended for users who are new to BLE or TI-RTOS. These modules demonstrate how to create custom applications with BLE-Stack and TI’s Real Time Operation System (TI-RTOS).

SimpleLink Academy provides a comprehensive set of training tools that allow users from beginners to experienced developers to learn about the SimpleLink MCU Platform.

Using introductory material and labs, learn the fundamentals of BLE and how to develop a custom BLE profile.

SimpleLink Academy also contains modules written to demonstrate the rich debug environment and peripheral driver capability provided by TI-RTOS.

This material teaches users who are new to TI-RTOS or any RTOS programming in general about TI’s RTOS kernel implementation.

Modules within the kernel training greatly expand the information presented in the TI-RTOS (RTOS Kernel) Overview chapter.

Learn how the TI-RTOS provides the most optimal power management and design flexibly.

Develop

The develop track of Figure 1. is intended for programmers who are ready to start developing an end product using the CC2640R2F. To begin:

  1. Download the SimpleLink CC2640R2 SDK http://www.ti.com/tool/SIMPLELINK-CC2640R2-SDK

BLE-Stack contains the code necessary to create a complete Bluetooth Low Energy end application. The stack library implements the BLE protocol stack on the CC2640R2F, and the various example projects use the stack library to implement end devices. These examples should be considered as starting points for end product designs.

To install the BLE-Stack, run the simplelink_cc2640r2_sdk_M_mm_pp_bb.exe installer.

  • The default SDK install path is C:\ti\simplelink_cc2640r2_sdk_M_mm_pp_bb. Throughout the rest of this document, this path will be referred to as <SDK_INSTALL_DIR>.

    See Installing the SDK for help installing the SimpleLink CC2640R2 SDK.

  1. Get Familiar with the BLE-Stack User’s Guide for Bluetooth 4.2

This User’s Guide is meant to be used alongside the BLE-Stack when developing an end product. It contains documentation on the stack architecture, APIs, and suggestions for developing applications. To jump to the Table of Contents, click here: BLE-Stack User’s Guide

Important

For the latest User’s Guide, see the Online BLE-Stack User’s Guide for Bluetooth 4.2.

  1. Select an Example Project

The BLE-Stack includes a basic set of projects to use as a starting point for development of your custom application. TI recommends that users start their development on a project starting with simple_. Click the links below to find out more information about each project

Table 1. BLE examples available for the CC2640R2F platform
Name Description
host_test A network processor project that is interfaced to via HCI and Vendor Specific HCI commands.
micro_eddystone_beacon A sample implementation of an eddystone beacon using the TI BLE Microstack
multi_role Project that supports multiple connection roles and is capable of functioning as any of the GAP roles. See GAPRole Task for more information.
project_zero A project implements a simple Bluetooth Low Energy peripheral device with LED, Button and Data service. This project is also used as a training tool in SimpleLink Academy.
secure_fw A project which provides a mechanism to verify the integrity of the firmware image before executing it on a CC2640R2 BLE device.
rtls_master A project implements a simple Bluetooth Low Energy central device with GATT client and angle of arrival(AoA) and Time of Flight (ToF) functionality
rtls_slave A project implements a simple Bluetooth Low Energy peripheral device with GATT server and sends out special angle of arrival packets or ToF packets to enable real time locationinig.
rtls_passive rtls_passive is a combination of Connection Monitor (CM) and RTLS examples. It uses the connection monitor to monitor a BLE connection and received AoA packets. ToF passive is interleaved with BLE connection monitoring.
simple_broadcaster Sample implementation of non-connectable advertising.
simple_central Simple central Implements a basic BLE central device with GATT client functionality.
simple_np A network processor project that implements the BLE controller, host, and part of the application layer on the CC2640R2F. The simple_np is intended for users attempting to quickly add BLE to an MCU only design.
simple_observer Sample implementation of a scanner application
simple_peripheral Simple peripheral demonstrates a simple Bluetooth Low Energy slave application that implements connectable advertisements and a simple profile.
simple_peripheral_oad_offchip Identical to the simple_peripheral project, except with off-chip OAD functionality with security added. See Introduction for more details.
simple_peripheral_oad_onchip Identical to the simple_peripheral project, except with on-chip OAD functionality with security added. See Introduction for more details.
simple_peripheral_secure_fw A modified simple_peripheral project which provides a mechanism to verify the integrity of the firmware image before executing it on a CC2640R2 BLE device.
  1. Begin Development with an IDE

An Integrated Development Environment can be set up to make it easier to browse through the relevant projects and view code. All embedded software for the CC2640R2F is developed using either TI’s Code Composer Studio or IAR’s Embedded Workbench for Arm (from IAR Systems) on a Windows 7® or later PC.

To begin development in CCS, jump to: Developing with CCS

To begin development in IAR, jump to: Developing with IAR

  1. Troubleshooting Help

While developing your custom application, you may run into issues that require the use of a debugger. The Debugging chapter provides help with configuring your debugger and understanding common problems. If you are still having problems after reading through the Debugging chapter, see the Support track for more options.

Enhance

The enhance track of Figure 1. is intended to take your product to the next level by leveraging TI’s web-based collateral. Additional resources found in these pages include application-specific source code examples, smart phone source code, and complete sub-system designs.

Additional sample applications created to implement specific use cases and examples. These are made to work in conjunction with the SDK.

Examples of system designs containing complete hardware and software examples, using the CC2640R2F.

Support

The support track of Figure 1. is intended to provide you additional help and resources that aren’t contained in the previous tracks.

A support community providing answers to questions relating to the BLE-Stack 3.02.03.00 and the CC2640R2F. You can browse questions from other developers or ask your own questions if you run into issues developing with BLE-Stack 3.02.03.00.

Installing the SDK

BLE-Stack 3.02.03.00 is a wireless component included as part of the SimpleLink CC2640R2 SDK. All path and file references in this document assume that the SimpleLink CC2640R2 SDK is installed to the default path (<SDK_INSTALL_DIR>).

TI recommends making a backup copy of the SimpleLink CC2640R2 SDK before to making any changes. BLE-Stack 3.02.03.00 uses paths relative to the SimpleLink CC2640R2 SDK and therefore is portable in respect to any valid installation path for the SimpleLink CC2640R2 SDK.

Attention

Code Composer Studio creates a dynamic installation variable for a discovered SimpleLink CC2640R2 SDK instances. For more information, see BLE-Stack CCS Project Build Configurations.

Note

If installing the SimpleLink CC2640R2 SDK to a non-default path, do not exceed the maximum length of the file system namepath. Actual paths may differ from the figures.

SimpleLink CC2640R2 SDK also installs XDCTools if not already present. See the release notes for required version numbers. Newer versions of tools may not be compatible with this SDK release. Check the SimpleLink CC2640R2 SDK release note for the latest supported tool versions.