.. _get-started-introduction: Getting Started *************** This section serves as a roadmap for users developing applications and products using the TI SimpleLink Bluetooth low energy |DEVICE| wireless MCU platform. Whether a seasoned developer or just getting started, TI has created a variety of resources to simplify development on the |DEVICE| platform. These resources will enhance your experience with the TI SimpleLink BLE-Stack™ |version| Software Development Kit (SDK) from the out-of-the-box demo to production. :numref:`fig_suggested_workflow` shows the suggested workflow for getting started with TI's SimpleLink Bluetooth low energy (BLE) development environment. .. _fig_suggested_workflow: .. figure:: resources/suggestedworkflow.png :align: center Suggested Workflow .. For future releases with CCS Cloud Support Demo: Project Zero ================== The |DEVICE| LaunchPad™ is the main development kit for Project Zero and developing applications with the |BLESTACK|. To quickly get started on a simple project with the |LP|, 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 |DEVICE| 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 |BLESTACK|. 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 .. _fig_ccs_cloud: .. figure:: resources/image2.jpeg :align: center Project Zero on CCS Cloud .. _get-started-demo: Demo: Project Zero ================== The |DEVICE| LaunchPad™ is the main development kit for developing applications with the |BLESTACK|. To quickly get started with the |LP|, see Project Zero on the TI SimpleLink GitHub : `https://github.com/ti-simplelink/ble_examples `_ In order to run the Project Zero demo, you will need the |SDK| and CCS v7.0. If you have not done so already, follow the directions in Step 1. of the :ref:`get-started-develop` section. Next, you will need to follow the `Installation instructions `_ on the TI SimpleLink GitHub page. For an in-depth guide on how to use Project Zero, see the Project Zero README.md on the the TI SimpleLink GitHub page. 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. With Project Zero running on the |LP|, you can connect with your smart phone to remotely toggle on-board LEDs, send text strings to the LaunchPad’s serial port, and receive button press notifications, without making any code modifications. To summarize, Project Zero allows you to quickly: - Flash a demo project onto the |LP| - Connect the |LP| to a smart phone or another central device - Control LEDs and send messages over UART The following sections in this document focus on developing a custom application with |BLESTACK|. When developing a new application for the |LP|, we recommend starting from simple\_peripheral instead of Project Zero due to flash optimizations. After you have become familiar with Project Zero, if you want additional training continue on to the :ref:`get-started-learn` track. If you are an advanced developer and are ready to get started with developing your own appplication, continue on to the :ref:`get-started-develop` track. .. _get-started-learn: Learn ===== Resources contained in the Learn track of :numref:`fig_suggested_workflow` are intended for users who are new to BLE or TI-RTOS. These modules demonstrate how to create custom applications with |BLESTACK| and TI's Real Time Operation System (TI-RTOS). - **SimpleLink Academy** `www.ti.com/simplelinkacademy `_ Using introductory material and labs, learn the fundamentals of BLE and how to develop a custom BLE profile. Contains TI-RTOS modules written to demonstrate the rich debug environment and peripheral driver capability provided by the RTOS. .. warning:: Although the concepts taught in SimpleLink Academy carry over when developing on the |LP|, the projects may require older versions of the TI BLE-Stack and CC26xx hardware. Each lab will list which hardware and SDK version is supported. - **TI-RTOS Kernel Workshop** `www.training.ti.com/ti-rtos-kernel-workshop `_ 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 :ref:`sec-tirtos-overview` chapter. Learn how the TI-RTOS provides the most optimal power management and design flexibly. .. _get-started-develop: Develop ======= The develop track of :numref:`fig_suggested_workflow` is intended for programmers who are ready to start developing an end product using the |DEVICE|. To begin: 1. **Download the Simplelink CC2640R2 SDK** `www.ti.com/tool/ble-stack `_ |BLESTACK| contains the code neccessary to create a complete BLE end application. The stack library code implements the BLE protocol stack on the |DEVICE|, 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\_1\_00\_00\_xx.exe installer. - The default SDK install path is C:\\ti\\simplelink\_cc2640r2\_sdk\_1\_00\_00\_xx\. Throughout the rest of this document, this path will be referred to as . See :ref:`sec-ble-stack-install` for help installing the |SDK|. 2. **Get Familiar with the Software Developer’s Guide** This Software Developer's Guide is meant to be used alongside the |BLESTACK| 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: :ref:`sdg-overview` 3. **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\_. .. _sec-get-started-example-list: - The **simple\_peripheral** project demonstrates a simple Bluetooth low energy slave application that implements connectable advertisements and a simple profile. - The **simple\_central** project implements a basic BLE central device with GATT client functionality. - The **simple\_broadcaster** project supports only non-connectable advertising. - The **simple\_observer** project supports only scanning functionality. - The **multi\_role** project supports multiple connection roles and is capable of functioning as any of the GAP roles. See :ref:`sec-gaprole-gaproletask` for more information. For more details on these and all other included projects, see :ref:`sec-examples-applications`. 4. **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 |DEVICE| is developed using either TI's Code Composer Studio or IAR's Embedded Workbench for ARM (from IAR Systems) on a Windows 7\ :sup:`®` or later PC. To begin development in CCS, jump to: :ref:`sec-developing-with-ccs` To begin development in IAR, jump to: :ref:`sec-developing-with-iar` 5. **Troubleshooting Help** While developing your custom application, you may run into issues that require the use of a debugger. The :ref:`sec-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 :ref:`get-started-support` track for more options. .. _get-started-enhance: Enhance ======= The enhance track of :numref:`fig_suggested_workflow` 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. - **TI SimpleLink GitHub** `https://github.com/ti-simplelink/ble_examples `_ Additional sample applications created to implement specific use cases and examples. These are made to work in conjunction with the SDK. - **Bluetooth Developer’s Studio Plugin** `https://www.bluetooth.com `_ TI offers a plugin for the Bluetooth Developer Studio tool. Developers can use this tool, developed by the Bluetooth Special Interest Group (SIG), with TI’s SimpleLink plugin to reduce development time by automatically generating compilable code for proprietary and adopted profiles running on the |DEVICE|. See SimpleLink Academy for instructions on integrating a BDS profile with a sample project. - **TI Designs™** `http://www.ti.com/tidesigns `_ Examples of system designs containing complete hardware and software examples, using the |DEVICE|. .. _get-started-support: Support ======= The support track of :numref:`fig_suggested_workflow` is intended to provide you additional help and resources that aren't contained in the previous tracks. - **BLE-Wiki** `www.ti.com/ble-wiki `_ A collection of webpages that contain step-by-step guides and code snippets that enable certain features and enhancements to the |DEVICE|, such as production test mode and certification. - **E2E Forums** `www.e2e.ti.com `_ A support community providing answers to questions relating to the |BLESTACK| and the |DEVICE|. You can browse questions from other developers or ask your own questions if you run into issues developing with the |BLESTACK|.