SWRA475A January   2015  – October 2016 CC2540 , CC2540T , CC2541 , CC2541-Q1

 

  1.   Bluetooth low energy Beacons
    1.     Trademarks
    2. 1 What is a Beacon?
    3. 2 Bluetooth low energy and Bluetooth Smart
      1. 2.1 Non-Connectable Beacons
      2. 2.2 Connectable Beacons
      3. 2.3 Data Packet
      4. 2.4 Device Address
        1. 2.4.1 Flags
        2. 2.4.2 Manufacturer Specific Data
      5. 2.5 Broadcast Interval
      6. 2.6 Power
      7. 2.7 Range
      8. 2.8 Coexistence
    4. 3 Designing a Bluetooth low energy Beacon
      1. 3.1 Development Kits
      2. 3.2 Creating a Beacon Application With TI Bluetooth low energy-Stack
    5. 4 iBeacon Implementation
      1. 4.1 Overview and Prerequisites
      2. 4.2 Design and Implementation
      3. 4.3 Testing
    6. 5 Proprietary Implementation
      1. 5.1 Overview and Prerequisites
      2. 5.2 Design and Implementation
      3. 5.3 Testing
    7. 6 References
  2.   Revision History

Design and Implementation

This project was created by modifying the SimplePeripheral project. It currently only supports non-connectable advertisements, but the SimplePeripheral project was used instead of the SimpleBroadcaster project to be consistent with the SimpleEddystoneBeacon project (described in a separate application note) and the beacon project.

As with the other beacon projects, the main modification to the SimplePeripheral project is to the advertisement data. The data is set up as follows:

static propBeaconAdvData_t propBeaconAdv = { // Flags; this sets the device to use general discoverable mode 0x02, // length of this data GAP_ADTYPE_FLAGS, GAP_ADTYPE_FLAGS_BREDR_NOT_SUPPORTED, 0x1B, // length of this data including the data type byte GAP_ADTYPE_MANUFACTURER_SPECIFIC, // manufacturer specific advertising data type 0x0D, // TI Company code 0x00, // TI Company code 0x00, // user specified data (this is the max length 0x01, // - can be shorter) 0x02, ... 0x16, 0x17, 0x18, };

The flags and company code are set the same as with the iBeacon technology (though the company code has changed to indicate that it is not a device using an Apple standard). The rest of the space is left to be configured by the user. Currently the maximum of 31 bytes is being used, but the advertising data can be shorter.

The advertising interval is set the same way as is described in Section 4 for the beacon project. Again, an interval of 100 ms is used. This can be changed, as long as the requirements discussed in Section 2.5 are followed.