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