TI Designs: Bluetooth® Low Energy (BLE) Beacons Reference Design
Brand: Texas Instruments
Description
This TI Design provides a comprehensive overview and implementation details for Bluetooth® Low Energy (BLE) beacons. It covers three distinct beacon standards, demonstrating their use in applications such as asset tracking and location services with minimal power consumption.
Resources
- TIDC-Bluetooth-Low-Energy-Beacon Design Folder
- CC2640 Product Folder
- CC2650 Product Folder
- BLE-Stack Tools Folder
- Submit Documentation Feedback
- BLE Examples GitHub Repository
- Ask Our E2E Experts
Features
- Runs on SimpleLink™ Technology Bluetooth low energy CC2640 Wireless Microcontroller (MCU).
- Uses TI Royalty-Free BLE-Stack™ Software Development Kit (SDK).
- Easily runs on CC2650 LaunchPad™.
- Offers generic projects that can be modified for various applications.
- Provides very long battery life and excellent radio frequency (RF) range.
Applications
- Micro-Location Services
- Asset Tracking and Identification
- Broadcasting Ambient or Sensor Data
System Overview
1.1 System Description
This TI Design includes links to application notes describing beacons, their uses, and implementation using the Texas Instruments' Bluetooth low energy software stack (BLE-Stack) version 2.2. It details beacon implementations adhering to three different protocols and provides sample projects. These projects are designed for the CC2650 Bluetooth low energy LaunchPad Development Kit (LAUNCHXL-CC2650) and can be ported to CC2640 wireless MCU-based designs. Considerations for battery life, detectable range, and size are also discussed.
The Bluetooth low energy application report (SWRA475) covers beacons, Apple's iBeacon technology, and proprietary BLE implementations. It explains implementing beacons with TI's BLE stack, protocol stack features, iBeacon, and proprietary beacon implementations, along with design and testing processes.
The Eddystone™ Bluetooth smart beacons application report (SWRA491) provides a detailed explanation of the Eddystone beacon protocol and its BLE implementation, including Eddystone specifications and a potential implementation. Methods for testing and validation are also provided.
1.2 Key System Specifications
Bluetooth low energy beacons can operate on CC2640, CC2650, and CC1350 wireless MCU platforms supported by the BLE-Stack. The projects in this design are built on the CC2650 LaunchPad but can run on other supported reference designs like the CC2650 Microtag. The Microtag is a compact reference design with on-board sensors, ideal for small BLE devices. However, a Microtag used as a beacon will have a shorter battery life than the LaunchPad due to coin cell operation and frequent broadcasting. A LaunchPad running on two AA batteries can achieve up to two years of battery life, making it suitable for long-term beacon solutions.
1.3 Block Diagram
A diagram illustrates the interaction between a BLE Beacon, a Smartphone/other central device, and a Network/online platform. The beacon broadcasts data, which is received by the smartphone. The smartphone can then send this data to a network platform. For non-connectable beacons like iBeacon, the central device cannot initiate a connection. Eddystone beacons can support connectable advertisements for updates.
Getting Started Hardware and Software
2.1 Required Hardware and Software
- CC2650 LaunchPad
- TI BLE Stack V2.2
- Beacon sample project files from the ble_examples Git repository
- Integrated development environments (IDEs) are covered in applicable application notes (SWRA475, SWRA491).
2.2 Installing the Projects
Follow these steps to install the projects:
- Copy the following folders into the appropriate directories in the SDK, depending on the desired project:
- Eddystone Beacon:
ble_examples/examples/cc2650lp/simple_eddystone
,ble_examples/src/examples/simple_eddystone/cc26xx
,ble_examples/src/profiles/EddystoneURLCfg
- iBeacon:
ble_examples/examples/cc2650lp/simple_beacon
,ble_examples/src/examples/simple_beacon/cc26xx
- Proprietary Beacon:
ble_examples/examples/cc2650lp/simple_proprietary_beacon
,ble_examples/src/examples/simple_proprietary_beacon/cc26xx
- Eddystone Beacon:
- Use either IAR Embedded Workbench or Code Composer Studio™ (CCS) to build and download the projects to the CC2650 LaunchPad. Refer to the relevant application note and the Software Developer’s Guide (SWRU393) for details.
- Once programmed, the device should begin advertising. For the Eddystone Beacon project, buttons can toggle broadcasting modes as described in the Eddystone Beacon application note (SWRA491).
Testing and Results
All three beacon formats can be tested using Texas Instruments' Packet Sniffer to view advertising packet data. Results can be verified against figures showing packet structures.
Packet Data Examples
Figure 2: Eddystone UID, URL, and TLM Packets
Channel | Access Address | Adv PDU Type | Adv PDU Header (Type, TxAdd, RxAdd, PDU-Length) | AdvA | AdvData |
---|---|---|---|---|---|
0x25 | 0x8E89BED6 | ADV NONCONN IND | 2, 0, 0, 37 | 0xB0B448CF6A03 | 02 01 04 03 FF 03 AA FE 17 16 AA FE 00 F6 00 01 02 03 04 05 06 07 08 09 04 51 40 00 B0 00 00 00 00 |
0x25 | 0x8E89BED6 | ADV NONCONN IND | 2, 0, 0, 26 | 0xB0B448CF6A03 | 02 01 04 03 03 AA FE 0C 16 AA FE 10 F6 00 74 69 00 62 6C 65 |
0x25 | 0x8E89BED6 | ADV NONCONN IND | 2, 0, 0, 31 | 0xB0B448CF6A03 | 02 01 04 03 03 AA FE 11 16 AA FE 20 00 03 0B 13 80 00 00 35 98 00 02 1A 84 |
Figure 3: iBeacon Broadcasting Packets
Channel | Access Address | Adv PDU Type | Adv PDU Header (Type, TxAdd, RxAdd, PDU-Length) | AdvA | AdvData |
---|---|---|---|---|---|
0x25 | 0x8E89BED6 | ADV NONCONN IND | 2, 0, 0, 36 | 0xB0B448CF6A03 | 02 01 06 1A FF 4C 00 02 15 A3 22 37 E7 3E C0 C5 84 86 4B B9 99 F9 82 03 F7 00 00 00 00 00 |
Figure 4: Proprietary Broadcasting Packets
Channel | Access Address | Adv PDU Type | Adv PDU Header (Type, TxAdd, RxAdd, PDU-Length) | AdvA | AdvData |
---|---|---|---|---|---|
0x25 | 0x8E89BED6 | ADV NONCONN IND | 2, 0, 0, 37 | 0xB0B448CF6A03 | 02 01 04 1B FF 0D 00 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 10 11 12 13 14 15 16 17 18 |
Testing Procedures
- Obtain a CC2540 Bluetooth low energy USB dongle.
- Install the SmartRF Flash Programmer and flash the dongle with the packet sniffer image.
- Download the desired beacon project to the LaunchPad; it should start advertising immediately. For Eddystone, buttons can toggle broadcasting modes.
- Use the packet sniffer to confirm advertised data, broadcasting period, and other factors match the beacon protocol.
- Refer to the TI Packet Sniffer Guide on the TI BLE Wiki for more details.
Validation Tools
Additional tools can verify Eddystone beacon project features:
- Eddystone Validator
- Eddystone-URL Config Validator
These tools verify UID, URL, and TLM frames, and URL configuration. Figure 5 shows screenshots of these tools used for verification.
Smartphone Applications
Android and iOS applications can test Eddystone beacon functionalities. For example, the Estimote Android App can parse Eddystone-compatible advertising packets, as shown in Figure 6. These applications are not developed or supported by Texas Instruments.
Figure 5: Eddystone Validator and Eddystone-URL Config Validator
Screenshots display the Eddystone Validator and Eddystone-URL Config Validator interfaces, showing test results for various functions like connecting to Eddystone-URL, reading state, writing data, and checking battery voltage and temperature.
Figure 6: Estimote Android App
Screenshots show the Estimote Android App interface, displaying "Beacons in range" and "Beacon Details" for an Eddystone-URL beacon. It lists the URL (http://www.ti.com/ble), transmit power, advertising interval, battery voltage (3.0V), temperature (19.5°C), uptime (4h 40m 2s), and packets sent since reset (160k).
References
- Texas Instruments, BLE Stack V2.2, Tools Folder (BLE-STACK)
- Texas Instruments, CC2650 LaunchPad MCU, Tools Folder (LAUNCHXL-CC2650)
- Texas Instruments, Bluetooth® Low Energy Beacons, Application Report (SWRA475)
- Texas Instruments, Implementing Eddystone™ Bluetooth® Smart Beacons Using the TI BLE-Stack™ Beacons, Application Report (SWRA491)
- Texas Instruments, CC2650 Microtag, Tools Folder (TIDC-CC2650-UTAG)
- GitHub, ble_examples GitHub repository
- Texas Instruments, SimpleLink Bluetooth low energy CC2640 wireless MCU Software Developer's Guide (SWRU393)
- Texas Instruments, SmartRF Protocol Packet Sniffer, Tools Folder (PACKET-SNIFFER)
About the Author
Nathan Siegel is an applications engineer for the Smart Connectivity Solutions team at Texas Instruments, based in San Diego. He earned his Bachelor of Science in Electrical Engineering (BSEE) from the University of California, Los Angeles (UCLA).
Important Notice for TI Reference Designs
Texas Instruments (TI) reference designs are intended to assist designers developing systems with TI products. TI has not conducted testing beyond what is described in the documentation. TI's provision of these designs does not alter its warranties or disclaimers. Designers are responsible for their own analysis, evaluation, and ensuring product safety and compliance with regulations. TI products should not be used in life-critical medical equipment without a special contract. Designers are authorized to use and modify reference designs for end products incorporating TI products, but no other licenses for intellectual property are granted. TI reference designs are provided "AS IS" with all faults, and TI disclaims all warranties. TI is not liable for any claims, damages, or liabilities arising from the use of these designs.
TI's standard terms of sale for semiconductor products apply. For more information, visit ti.com/sc/docs/stdterms.htm.