Cover image for Getting Started with Bluetooth Low Energy

Book description

With Bluetooth Low Energy (BLE), smart devices are about to become even smarter. This practical guide demonstrates how this exciting wireless technology helps developers build mobile apps that share data with external hardware, and how hardware engineers can gain easy and reliable access to mobile operating systems.

Table of Contents

  1. Preface
    1. Who This Book Is For
    2. How to Use This Book
      1. Overview of BLE
      2. Tools for Development and Testing
      3. Development Platforms
    3. Conventions Used in This Book
    4. Using Code Examples
    5. Safari® Books Online
    6. How to Contact Us
    7. Acknowledgments
  2. 1. Introduction
    1. What Makes BLE Different
    2. The Specification
    3. Configurations
      1. Based on Specification Support
      2. Based on Chip Count
    4. Key Limitations
      1. Data Throughput
      2. Operating Range
    5. Network Topology
      1. Broadcasting and Observing
      2. Connections
    6. Protocols versus Profiles
      1. Generic Profiles
      2. Use-Case-Specific Profiles
        1. SIG-defined GATT-based profiles
        2. Vendor-Specific Profiles
  3. 2. Protocol Basics
    1. Physical Layer
    2. Link Layer
      1. Bluetooth Device Address
      2. Advertising and Scanning
      3. Connections
    3. Host Controller Interface (HCI)
    4. Logical Link Control and Adaptation Protocol (L2CAP)
    5. Attribute Protocol (ATT)
      1. ATT operations
    6. Security Manager (SM)
      1. Security Procedures
      2. Pairing Algorithms
      3. Security Keys
    7. Generic Attribute Profile (GATT)
    8. Generic Access Profile (GAP)
  4. 3. GAP (Advertising and Connections)
    1. Roles
    2. Modes and Procedures
      1. Broadcast and Observation
      2. Discovery
        1. Discoverability modes
        2. Discovery procedures
      3. Connection Establishment
        1. Connection establishment modes
        2. Connection establishment procedures
      4. Additional GAP Procedures
    3. Security
      1. Address Types
      2. Authentication
      3. Security Modes
      4. Security Modes and Procedures
    4. Additional GAP Definitions
      1. Advertising Data Format
      2. GAP Service
  5. 4. GATT (Services and Characteristics)
    1. Roles
    2. UUIDs
    3. Attributes
      1. Handle
      2. Type
      3. Permissions
      4. Value
    4. Attribute and Data Hierarchy
      1. Services
      2. Characteristics
        1. Characteristic declaration attribute
        2. Characteristic value attribute
      3. Characteristic Descriptors
        1. Extended Properties Descriptor
        2. Characteristic User Description Descriptor
        3. Client Characteristic Configuration Descriptor
        4. Characteristic presentation format descriptor
      4. Example Service
    5. Advanced Attribute Concepts
      1. Attribute Caching
      2. GATT Attribute Data in Advertising Packets
    6. Features
      1. Exchange MTU
      2. Service and Characteristic Discovery
      3. Reading Characteristics and Descriptors
      4. Writing Characteristics and Descriptors
      5. Server-Initiated Updates
    7. Security
    8. GATT Service
  6. 5. Hardware Platforms
    1. nRF51822-EK (Nordic Semiconductors)
      1. Technical Specifications
      2. SoftDevice Architecture
      3. Working with the nRF51822-EK
      4. Examples and Toolchains
    2. CC2541DK-MINI (Texas Instruments)
    3. Other Hardware Platforms and Modules
      1. Laird’s BL600 Module
      2. Bluegiga’s BLE112/BLE113 Modules
      3. RFDuino
  7. 6. Debugging Tools
    1. PCA10000 USB Dongle and the Master Control Panel
    2. PCA10000 USB Dongle and Wireshark
    3. CC2540 USB Dongle and SmartRF Sniffer
    4. SmartRF-to-Wireshark Converter
    5. Bluez hcitool and gatttool
  8. 7. Application Design Tools
    1. Bluetooth Application Accelerator
    2. SensorTag
    3. LightBlue for iOS
    4. nRF Master Control Panel for Android
  9. 8. Android Programming
    1. Getting Started
      1. Get the Hardware
      2. Get the Software
      3. Configure the Hardware
      4. Start a New Project
    2. Initializing the BLE Library
    3. Connecting to a Remote Device
    4. Communicating with a Remote Device
  10. 9. iOS Programming
    1. Simple Battery-Level Peripheral
      1. Scanning for Remote Peripherals
      2. Connecting to Remote Peripherals
      3. Looking Up Services Associated with a Remote Peripheral
      4. Looking Up Characteristics Associated with Services
      5. Methods for Reading and Decoding Characteristics
    2. iBeacon
      1. Advertising
      2. Ranging
      3. Implementing an iBeacon App
    3. Apple Notification Center Service with an External Display
  11. 10. Embedded Application Development
    1. mbed BLE API
    2. Embedded Toolchains
      1. Installing GNU Tools on OS X and Linux
      2. Installing GNU Tools on Windows
    3. nRF51822 GNU Codebase and Sample Project
      1. Getting the nRF51822 GNU Codebase
      2. nR51822 GNU Codebase Structure
      3. Compiling Projects
      4. Writing to the nRF51822
    4. Going Further
  12. Index
  13. Colophon
  14. Copyright