43
BLUETOOTH® 4.0 HEART RATE SENSOR APPLICATION NOTE Thursday, 23 May 2013 Version 1.4

BLUETOOTH® 4.0 HEART RATE SENSOR - MT-System · 2014-06-02 · Bluegiga Technologies Oy Page 6 of 43 2 What is Bluetooth low energy technology? Bluetooth low energy (Bluetooth 4.0)

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: BLUETOOTH® 4.0 HEART RATE SENSOR - MT-System · 2014-06-02 · Bluegiga Technologies Oy Page 6 of 43 2 What is Bluetooth low energy technology? Bluetooth low energy (Bluetooth 4.0)

BLUETOOTH® 4.0 HEART RATE SENSOR

APPLICATION NOTE

Thursday, 23 May 2013

Version 1.4

Page 2: BLUETOOTH® 4.0 HEART RATE SENSOR - MT-System · 2014-06-02 · Bluegiga Technologies Oy Page 6 of 43 2 What is Bluetooth low energy technology? Bluetooth low energy (Bluetooth 4.0)

Bluegiga Technologies Oy

Copyright © 2000-2013 Bluegiga Technologies

All rights reserved.

Bluegiga Technologies assumes no responsibility for any errors which may appear in this manual. Furthermore, Bluegiga Technologies reserves the right to alter the hardware, software, and/or specifications detailed here at any time without notice and does not make any commitment to update the information contained here. Bluegiga’s products are not authorized for use as critical components in life support devices or systems.

The WRAP, Bluegiga Access Server, Access Point and iWRAP are registered trademarks of Bluegiga Technologies.

The Bluetooth trademark is owned by the Bluetooth SIG Inc., USA and is licensed to Bluegiga Technologies. All other trademarks listed herein are owned by their respective owners.

Page 3: BLUETOOTH® 4.0 HEART RATE SENSOR - MT-System · 2014-06-02 · Bluegiga Technologies Oy Page 6 of 43 2 What is Bluetooth low energy technology? Bluetooth low energy (Bluetooth 4.0)

Bluegiga Technologies Oy

VERSION HISTORY

Version Comment

1.0 First version

1.1 Services added

1.2 Updated BGscript code examples

1.3 Changed broadcast=”true” to advertise=”true”

1.4 Updated compile and installation instructions

Page 4: BLUETOOTH® 4.0 HEART RATE SENSOR - MT-System · 2014-06-02 · Bluegiga Technologies Oy Page 6 of 43 2 What is Bluetooth low energy technology? Bluetooth low energy (Bluetooth 4.0)

Bluegiga Technologies Oy

TABLE OF CONTENTS

1 Introduction ....................................................................................................................................................5

2 What is Bluetooth low energy technology? ...................................................................................................6

3 Heart Rate Profile v1.0 ..................................................................................................................................7

3.1 Description ............................................................................................................................................7

3.2 Service requirements ............................................................................................................................7

3.3 Heart Rate Service requirements .........................................................................................................8

3.4 Device Information Service requirements .............................................................................................8

3.5 Other requirements ...............................................................................................................................8

3.6 Connection establishment requirement ................................................................................................9

3.7 Security requirements ........................................................................................................................ 10

4 Implementing a Heart Rate Sensor ............................................................................................................ 11

4.1 Creating a project .............................................................................................................................. 12

4.2 Hardware configuration ...................................................................................................................... 13

4.3 Heart Rate Profile GATT database .................................................................................................... 14

4.4 Writing BGScript application .............................................................................................................. 19

4.5 Compiling and installing the firmware ................................................................................................ 23

5 Testing the Heart Rate Sensor ................................................................................................................... 27

5.1 Testing with BLEGUI ......................................................................................................................... 27

6 Debugging Heart Rate sensor code ........................................................................................................... 34

7 Appendixes ................................................................................................................................................. 37

7.1 Bluegiga’s Bluetooth 4.0 single mode stack suite ............................................................................. 37

7.2 Bluetooth 4.0 single mode stack ........................................................................................................ 37

7.3 BGAPI protocol .................................................................................................................................. 38

7.4 BGLib library ...................................................................................................................................... 39

7.5 BGScriptTM

scripting language ........................................................................................................... 40

7.6 Profile toolkit ...................................................................................................................................... 41

7.7 External resources ............................................................................................................................. 42

8 Contact information .................................................................................................................................... 43

Page 5: BLUETOOTH® 4.0 HEART RATE SENSOR - MT-System · 2014-06-02 · Bluegiga Technologies Oy Page 6 of 43 2 What is Bluetooth low energy technology? Bluetooth low energy (Bluetooth 4.0)

Bluegiga Technologies Oy

Page 5 of 43

1 Introduction

This application note discusses how to build Bluetooth 4.0 Heart Rate Profile (HRP) sensor using Bluegiga’s Bluetooth 4.0 software and DKBLE112 hardware development kits. The application note contains a practical example of how to build GATT based Heart Rate Profile and how to make a standalone sensor device using BGScript scripting language.

Notice that this application note only focuses on the Heart Rate Profile sensor implementation, not the Heart Rate Profile Collector implementation.

Page 6: BLUETOOTH® 4.0 HEART RATE SENSOR - MT-System · 2014-06-02 · Bluegiga Technologies Oy Page 6 of 43 2 What is Bluetooth low energy technology? Bluetooth low energy (Bluetooth 4.0)

Bluegiga Technologies Oy

Page 6 of 43

2 What is Bluetooth low energy technology?

Bluetooth low energy (Bluetooth 4.0) is a new, open standard developed by the Bluetooth SIG. It’s targeted to address the needs of new modern wireless applications such as ultra-low power consumption, fast connection times, reliability and security. Bluetooth low energy consumes 10-20 times less power and is able to transmit data 50 times quicker than classical Bluetooth solutions.

Link: How Bluetooth low energy technology works?

Bluetooth low energy is designed for new emerging applications and markets, but it still embraces the very same benefits we already know from the classical, well established Bluetooth technology:

Robustness and reliability - The adaptive frequency hopping technology used by Bluetooth low energy allows the device to quickly hop within a wide frequency band, not just to reduce interference but also to identify crowded frequencies and avoid them. On addition to broadcasting Bluetooth low energy also provides a reliable, connection oriented way of transmitting data.

Security - Data privacy and integrity is always a concern is wireless, mission critical applications. Therefore Bluetooth low energy technology is designed to incorporate high level of security including authentication, authorization, encryption and man-in-the-middle protection.

Interoperability - Bluetooth low energy technology is an open standard maintained and developed by the Bluetooth SIG. Strong qualification and interoperability testing processes are included in the development of technology so that wireless device manufacturers can enjoy the benefit of many solution providers and consumers can feel confident that equipment will communicate with other devices regardless of manufacturer.

Global availability - Based on the open, license free 2.4GHz frequency band, Bluetooth low energy technology can be used in world wide applications.

There are two types of Bluetooth 4.0 devices:

Bluetooth 4.0 single-mode devices that only support Bluetooth low energy and are optimized for low-power, low-cost and small size solutions.

Bluetooth 4.0 dual-mode devices that support Bluetooth low energy and classical Bluetooth technologies and are interoperable with all the previously Bluetooth specification versions.

Key features of Bluetooth low energy wireless technology include:

Ultra-low peak, average and idle mode power consumption

Ability to run for years on standard, coin-cell batteries

Low cost

Multi-vendor interoperability

Enhanced range

Bluetooth low energy is also meant for markets and applications, such as:

Automotive

Consumer electronics

Smart energy

Entertainment

Home automation

Security & proximity

Sports & fitness

Page 7: BLUETOOTH® 4.0 HEART RATE SENSOR - MT-System · 2014-06-02 · Bluegiga Technologies Oy Page 6 of 43 2 What is Bluetooth low energy technology? Bluetooth low energy (Bluetooth 4.0)

Bluegiga Technologies Oy

Page 7 of 43

3 Heart Rate Profile v1.0

3.1 Description

Heart Rate Profile enables a Heart Rate Collector to connect and exchange data with a Heart Rate Sensor in sports and fitness applications.

Heart Rate Profile defines two roles:

The Heart Rate Sensor

The Heart Rate Sensor measures the heart rate and exposes it via the Heart Rate Service. The sensor also contains the Device Information Service, which contains information for example about the manufacturer of the device. The Heart Rate Sensor is the GATT server.

The Heart Rate Collector

The Heart Rate Collector accesses the information exposed by the Heart Rate Sensor and can for example display it to the end user or store it on non-volatile memory for later analysis. The Heart Rate Collector is the GATT client.

The figure below shows the relationship of these two roles.

Heart Rate Collector Heart Rate Sensor

Device Information Service

Heart Rate Service

Figure 1: Heart Rate profile roles

3.2 Service requirements

The table below describes the service requirements.

Service UUID Heart Rate Sensor

Heart Rate Service 180A Mandatory

Device Information Service 180D Mandatory

Table 1: Service requirements

The Heart Rate Sensor implements one and only one instance of Heart Rate Service.

The Heart Rate Sensor implements one instance of Device Information Service.

Page 8: BLUETOOTH® 4.0 HEART RATE SENSOR - MT-System · 2014-06-02 · Bluegiga Technologies Oy Page 6 of 43 2 What is Bluetooth low energy technology? Bluetooth low energy (Bluetooth 4.0)

Bluegiga Technologies Oy

Page 8 of 43

3.3 Heart Rate Service requirements

The table below describes the structure and requirements for the Heart Rate Service

Characteristic UUID Type Support Security Properties

Heart rate measurement 2A37 8bit Mandatory none Notify

Body sensor location 2A38 8bit Optional none Read

Heart rate control point 2A39 8bit Conditional none Write

Table 2: Heart Rate Service structure

3.4 Device Information Service requirements

The table below describes the structure and requirements for the Device Information Service when used in the context of Heart Rate Service.

Characteristic UUID Type Support Security Properties

Manufacturer name string 2A29 UTF-8 Mandatory none Read

Table 3: Device Information Service structure

3.5 Other requirements

The Heart Rate Sensor should include the Heart Rate Service UUID in the advertisement data.

The Heart Rate Sensor should include the device name in the advertisement or scan response data.

The Heart Rate Sensor may support write property for the local name for the device name characteristic so the Collector can write its value.

Page 9: BLUETOOTH® 4.0 HEART RATE SENSOR - MT-System · 2014-06-02 · Bluegiga Technologies Oy Page 6 of 43 2 What is Bluetooth low energy technology? Bluetooth low energy (Bluetooth 4.0)

Bluegiga Technologies Oy

Page 9 of 43

3.6 Connection establishment requirement

3.6.1 Un-bonded devices

Advertisement duration Parameter Value

First 30 seconds Advertising interval 20ms to 30ms

After 30 seconds Advertising interval 1000ms to 2500ms

Table 4: Advertising parameters for un-bonded Heart Rate Sensor

1. The Heart Rate Sensor shall accept any valid values for connection interval and slave latency set by the Collector until service discovery, bonding and/or encryption have are complete. After this the sensor may request the change of connection parameters.

2. If the connection is not established within a time limit, the sensor may exit GAP Connectable mode.

3. If bonded the Heart Rate Sensor should write the address of the Collector to the white list and should set the filtering policy so that scan and connection requests are only accepted from devices on the white list.

4. When the Heart Rate Sensor no longer senses the heart rate it should terminate the connection for example within 10 or 20 seconds.

5. When Heart Rate Sensor is disconnected by the Collector and ready to receive a connection (i.e. senses the heart rate) it should initiate the connection procedure.

3.6.2 Bonded devices

The following produce is uses for bonded devices:

1. The Heart Rate Sensor should use GAP General discoverable mode with connectable undirected advertisement events.

2. For the first 10 seconds the white list should be used to allow only connections from bonded devices. After 10 seconds the white list should not be used to allow connections from other devices.

3. The advertisement parameters should be as in Table 4.

4. The Heart Rate Sensor shall accept any valid values for connection interval and slave latency set by the Collector until service discovery, bonding and/or encryption have are complete. After this the sensor may request the change of connection parameters.

5. If the connection is not established within a time limit, the sensor may exit GAP Connectable mode.

6. When the Heart Rate Sensor no longer senses the heart rate it should terminate the connection for example within 10 or 20 seconds.

7. When Heart Rate Sensor is disconnected by the Collector and ready to receive a connection (i.e. senses the heart rate) it should initiate the connection procedure.

3.6.3 Link loss procedure

When connection is terminated due to link loss the sensor should attempt reconnection with the Collector by entering the GAP connectable mode using the recommended parameters from Table 4.

Page 10: BLUETOOTH® 4.0 HEART RATE SENSOR - MT-System · 2014-06-02 · Bluegiga Technologies Oy Page 6 of 43 2 What is Bluetooth low energy technology? Bluetooth low energy (Bluetooth 4.0)

Bluegiga Technologies Oy

Page 10 of 43

3.7 Security requirements

1 The Heart Rate Sensor may bond with the Collector.

2 When bonding is not used:

2.1 The Heart Rate Sensor should use the Slave Security Request procedure to inform the Collector of its security requirements.

3 When bonding is used:

3.1 The Heart Rate Sensor shall use LE security Mode 1 and either Security Level 2 or 3.

3.2 The Heart Rate Sensor shall use the Slave Security Request procedure.

3.3 All supported characteristics specified by the Heart Rate Service shall be set to Security Mode 1 and either Security Level 2 or 3.

All supported characteristics specified by the Device Information Service should be set to the same security mode and level as the characteristics in the Heart Rate Service.

Page 11: BLUETOOTH® 4.0 HEART RATE SENSOR - MT-System · 2014-06-02 · Bluegiga Technologies Oy Page 6 of 43 2 What is Bluetooth low energy technology? Bluetooth low energy (Bluetooth 4.0)

Bluegiga Technologies Oy

Page 11 of 43

4 Implementing a Heart Rate Sensor

The chapter contains step by step instructions how to implement a stand-alone Heart Rate Sensor with Bluegiga’s Bluetooth 4.0 Software Development Kit. The chapter is split into following steps:

1. Creating a project

2. Defining hardware configuration

3. Building Heart Rate and Device Information Services with Profile Toolkit

4. Writing a BGScript code

5. Compiling the GATT database and BGScript into a binary firmware

6. Installing the firmware into BLE112 or DKBLE112 hardware

The actual project comes as an example with the Bluegiga’s Bluetooth low energy Software Development Kit.

Note: This application note is written for firmware version 0.2.0 build 30.

Page 12: BLUETOOTH® 4.0 HEART RATE SENSOR - MT-System · 2014-06-02 · Bluegiga Technologies Oy Page 6 of 43 2 What is Bluetooth low energy technology? Bluetooth low energy (Bluetooth 4.0)

Bluegiga Technologies Oy

Page 12 of 43

4.1 Creating a project

The Heart Rate Sensor implementation is started by first creating a project file (project.xml), which defines the resources use by the project and the firmware output file.

Figure 2: Project file

<gatt> Defines the XML-file containing the GATT database.

<hardware> Defines the XML-file containing the hardware configuration.

<script> Defines the BGScript-file which contains the BGScript code.

<image> Defines the output HEX file containing the firmware image.

WARNING:

This example MUST only be installed on BLE112 module or DKBLE112 development kit. The example does not use USB or UART interfaces, so the firmware can be installed only via the debug interface using CC debugger. Installing the example into BLED112 USB dongle will brock the device.

Page 13: BLUETOOTH® 4.0 HEART RATE SENSOR - MT-System · 2014-06-02 · Bluegiga Technologies Oy Page 6 of 43 2 What is Bluetooth low energy technology? Bluetooth low energy (Bluetooth 4.0)

Bluegiga Technologies Oy

Page 13 of 43

4.2 Hardware configuration

The hardware.xml file contains the hardware configuration for BLE112 device. It describes which interfaces and functions are in used and their properties.

Figure 3: Hardware configuration for Heart Rate Sensor

<sleeposc> Sleep oscillator is enabled to allow the device to enter low power modes like Power mode 3. If this configuration is not used, the BLE112 device will not go to power mode 3. 30 refers to the crystal accuracy used in BLE112. Do not modify the value.

<usb> USB interface is disabled to save power and allow the device to go to low power modes.

<txpower> TX power is set to +3dBm value. Every step represents 1 dBm change. Range is 15 to 0, corresponding TX power values from +3 dBm to -12 dBm.

This example uses a single ADC to read the heart rate value. DKBL112 development kit contains a potentiometer, which can be read with the ADC.

Typically in a real heart rate sensor a GPIO would be used to indicate the heartbeat and a GPIO pin would be used to detect it. This requires that one GPIO pin is configured as an input.

Page 14: BLUETOOTH® 4.0 HEART RATE SENSOR - MT-System · 2014-06-02 · Bluegiga Technologies Oy Page 6 of 43 2 What is Bluetooth low energy technology? Bluetooth low energy (Bluetooth 4.0)

Bluegiga Technologies Oy

Page 14 of 43

4.3 Heart Rate Profile GATT database

This section describes how to define the Heart Rate Profile services using Bluegiga’s Profile Toolkit.

The Heart Rate Profile contains three services:

Generic Access Profile (GAP) service

Device Information Service (DIS)

Heart Rate Service (HRS)

This example contains a minimum implementation of the above services, so only mandatory characteristics are used. You may also implement the optional characteristics.

4.3.1 Generic Access Profile service

Every Bluetooth low energy device needs to implement a GAP service. The GAP service is very simple and consists of only two characteristics. An example implementation of GAP service is show below.

The service has two characteristics, which are explained in Table 5. In this example the characteristics are read-only, so they are also marked as const. Constant values are stored on the flash of BLE112 and the value is defined in the GATT database. Constant values cannot be changed.

Figure 4: GAP service

Characteristic UUID Type Support Security Properties

Device name 2a00 UTF8 Mandatory none Read (optionally write)

Appearance 2A01 16bit Mandatory none Read

Table 5: GAP (UUID: 1800) service description

Page 15: BLUETOOTH® 4.0 HEART RATE SENSOR - MT-System · 2014-06-02 · Bluegiga Technologies Oy Page 6 of 43 2 What is Bluetooth low energy technology? Bluetooth low energy (Bluetooth 4.0)

Bluegiga Technologies Oy

Page 15 of 43

4.3.2 Heart Rate Service

The Heart Rate Sensor must also implement the Heart Rate Service. The example implementation uses a simplified Heart Rate Service with just the mandatory characteristics, but optionally you may implement the full Hear Rate Service with the optional characteristics also.

Heart Rate Service is described below:

Characteristic UUID Type Support Security Properties

Heart Rate Measurement 2a37 16 bits to 56 bits Mandatory none Notify

Body Sensor location 2a38 8 bit Optional none Read

Heart Rate Control Point 2a39 8 bit Conditional none Write

Table 6: Heart Rate Service (UUID: 180D) description

Hear rate service specification: Hear Rate Service specification: Hear rate service specification

Hear Rate service at Bluetooth developer web site: Heart Rate Service

The example implementation of the minimum Heart Rate Service is shown below:

Figure 5: Minimal Heart Rate Service

A few explanations are needed:

First of all the advertise=”true” option is needed for the Hear Rate Service UUID to be broadcasted in the advertisement packets. For example the Apple iPhone 4S is not able to discover devices, if the service UUIDs are not broadcasted.

The id=”xgatt_HRS_2a37” defines the attribute ID, which the BGScript application can use to update the Heart Rate measurement values.

The length of the Heart Rate measurement is 16-bits in this example. The first 8 bits define the flags for the Heart Rate measurement value and the next 8 bits contain the actual measurement value.

Body Sensor location and Heart Rate Control Point characteristics are not used in this example as they are not mandatory.

Page 16: BLUETOOTH® 4.0 HEART RATE SENSOR - MT-System · 2014-06-02 · Bluegiga Technologies Oy Page 6 of 43 2 What is Bluetooth low energy technology? Bluetooth low energy (Bluetooth 4.0)

Bluegiga Technologies Oy

Page 16 of 43

4.3.3 Device Information Service

The third mandatory service the Heart Rate Sensor must implement is the Device Information Service. This service exposes information about the manufacturer of the device and optionally other information about the device, which is for example device model number and software version. The example implementation uses a simplified Device Information Service with just the mandatory characteristics, but optionally you may implement the full Device Information Service with the optional characteristics also.

Device Information Service is described below:

Characteristic UUID Type Support Security Properties

Manufacturer name string 2a29 UTF-8s Conditional none Read

Model number string 2a24 UTF-8s Conditional none Read

Serial number string 2a25 UTF-8s Conditional none Read

Hardware revision string 2a27 UTF-8s Conditional none Read

Firmware revision string 2a26 UTF-8s Conditional none Read

Software revision string 2a28 UTF-8s Conditional none Read

System ID 2a35 uint40 or uint64

Conditional none Read

IEEE 11073-20601 Regulatory Certification Data List

2a36 reg-cert-data-list

Conditional none Read

Table 7: Device Information Service (UUID: 180A) description

Device Information Service specification: Hear Rate Service specification: Device Information Service specification

Device Information Service at Bluetooth developer web site: Device Information Service

Page 17: BLUETOOTH® 4.0 HEART RATE SENSOR - MT-System · 2014-06-02 · Bluegiga Technologies Oy Page 6 of 43 2 What is Bluetooth low energy technology? Bluetooth low energy (Bluetooth 4.0)

Bluegiga Technologies Oy

Page 17 of 43

The example implementation of the minimum Device Information Service is shown below:

Figure 6: Minimal Device Information Service

A few explanations are needed:

The Heart Rate Profile service only mandates that Manufacturer Name String characteristic is implemented, but the example also implements the Model Number String characteristic.

Page 18: BLUETOOTH® 4.0 HEART RATE SENSOR - MT-System · 2014-06-02 · Bluegiga Technologies Oy Page 6 of 43 2 What is Bluetooth low energy technology? Bluetooth low energy (Bluetooth 4.0)

Bluegiga Technologies Oy

Page 18 of 43

4.3.4 Summary

The full GATT database implementation is shown below.

Figure 7: Heart Rate Profile GATT database

Page 19: BLUETOOTH® 4.0 HEART RATE SENSOR - MT-System · 2014-06-02 · Bluegiga Technologies Oy Page 6 of 43 2 What is Bluetooth low energy technology? Bluetooth low energy (Bluetooth 4.0)

Bluegiga Technologies Oy

Page 19 of 43

4.4 Writing BGScript application

The example implements a standalone Heart Rate Sensor device where no external host processor is needed. The Heart Rate Sensor application is created as a BGScript script application and the BGScript code explained in this chapter.

BGScript uses an event based programming approach. The script is executed when an event takes place, and the programmer may register listeners for various events.

The Heart Rate Sensor BGScript uses the following event listeners:

1. system_boot(…) event listener

When the system is started a boot event is generated and this event listener should be the entry point for all the BGScript applications. In the example above, when the system is started, the unit starts to advertise, enables bonding mode, and starts a timer.

Figure 8: system_boot(...) event listener

Page 20: BLUETOOTH® 4.0 HEART RATE SENSOR - MT-System · 2014-06-02 · Bluegiga Technologies Oy Page 6 of 43 2 What is Bluetooth low energy technology? Bluetooth low energy (Bluetooth 4.0)

Bluegiga Technologies Oy

Page 20 of 43

2. hardware_soft_timer(…)event listener

When the timer expires this event is generated. In the Heart Rate Sensor example the timers are used to alter the advertising intervals and read HR sensor.

Figure 9: hardware_soft_timer(…) event listener

Page 21: BLUETOOTH® 4.0 HEART RATE SENSOR - MT-System · 2014-06-02 · Bluegiga Technologies Oy Page 6 of 43 2 What is Bluetooth low energy technology? Bluetooth low energy (Bluetooth 4.0)

Bluegiga Technologies Oy

Page 21 of 43

3. hardware_adc_result(…)event listener

The ADC read function generates an ADC event, which this event listener captures. The ADC result event is used to read the HR value and write it to GATT database.

Figure 10: hardware_adc_result(…) event listener

4. connection_status(…)event listener

This event takes place when the device is connected. The code changes the connection status parameter and starts the HR measurement timer.

Figure 11: connection_status(…) event listener

Page 22: BLUETOOTH® 4.0 HEART RATE SENSOR - MT-System · 2014-06-02 · Bluegiga Technologies Oy Page 6 of 43 2 What is Bluetooth low energy technology? Bluetooth low energy (Bluetooth 4.0)

Bluegiga Technologies Oy

Page 22 of 43

5. connection_disconnected(…)event listener

The last event handler is executed when the Bluetooth is lost or closed by the remote device. The event listener restarts the advertisement procedure.

Figure 12: connection_disconnected(…) event listener

Page 23: BLUETOOTH® 4.0 HEART RATE SENSOR - MT-System · 2014-06-02 · Bluegiga Technologies Oy Page 6 of 43 2 What is Bluetooth low energy technology? Bluetooth low energy (Bluetooth 4.0)

Bluegiga Technologies Oy

Page 23 of 43

4.5 Compiling and installing the firmware

4.5.1 Using BLE Update tool

When you want to test your project, you need to compile the hardware settings, the GATT data base and BGScript code into a firmware binary file. The easiest way to do this is with the BLE Update tool that can be used to compile the project and install the firmware to a BLE112 module using a CC debugger.

In order to compile and install the project:

1. Connect CC debugger to the PC via USB

2. Connect the CC debugger to the debug interface on the BLE112

3. Press the button on CC debugger and make sure the led turns green

4. Start BLE Update tool

5. Make sure the CC debugger is shown in the Port drop down list

6. Use Browse to locate your project.xml file

7. Press Update

BLE Update tool will compile the project and install it into the target device.

Figure 13: Compile and install with BLE Update tool

Page 24: BLUETOOTH® 4.0 HEART RATE SENSOR - MT-System · 2014-06-02 · Bluegiga Technologies Oy Page 6 of 43 2 What is Bluetooth low energy technology? Bluetooth low energy (Bluetooth 4.0)

Bluegiga Technologies Oy

Page 24 of 43

The View Build Log opens up a dialog that shows the bgbuild compilere output and the RAM and Flash memory allocations.

Figure 14: BLE Update build log

Page 25: BLUETOOTH® 4.0 HEART RATE SENSOR - MT-System · 2014-06-02 · Bluegiga Technologies Oy Page 6 of 43 2 What is Bluetooth low energy technology? Bluetooth low energy (Bluetooth 4.0)

Bluegiga Technologies Oy

Page 25 of 43

4.5.2 Compiling using the bgbuild.exe

The project can also be compiled with the bgbuild.exe command line compiler. The BGBuild compiler simply generates the firmware image file, which can be installed to the BLE112.

In order to compile the project using BGBuild:

1. Open Windows Command Prompt (cmd.exe)

2. Navigate to the directory where your project is

3. Execute BGbuild.exe compiler

Syntax: bgbuild.exe <project file>

Figure 15: Compiling with BGBuild.exe

If the compilation is successful a .HEX file is generated, which can be installed into a BLE112 module.

On the other hand if the compilation fails due to syntax errors in the BGScript or GATT files, and error message is printed.

Page 26: BLUETOOTH® 4.0 HEART RATE SENSOR - MT-System · 2014-06-02 · Bluegiga Technologies Oy Page 6 of 43 2 What is Bluetooth low energy technology? Bluetooth low energy (Bluetooth 4.0)

Bluegiga Technologies Oy

Page 26 of 43

4.5.3 Installing the firmware with TI’s flash tool

Texas Instruments flash tool can also be used to install the firmware into the target device using the CC debugger.

In order to install the firmware with TI flash tool:

1. Connect CC debugger to the PC via USB

2. Connect the CC debugger to the debug interface on the BLE112

3. Press the button on CC debugger and make sure the led turns green

4. Start TI flash tool tool

5. Select program CCxxxx SoC or MSP430

6. Make sure the target device is recognized and displayed in the System-on-Chip field

7. Make sure Retain IEEE address.. field is checked

8. Select the .HEX file you want to program to the target device

9. Select Erase, Program and Verify

10. Finally press Perform actions and make sure the installation is successful

Figure 16: TI’s flash programmer tool

Note:

TI Flash tool should NOT be used with the Bluegiga Bluetooth Smart SDK v.1.1 or newer, but BLE Update tool should be used instead. The BLE112 and BLED112 devices contain a security key, which is needed for the firmware to operate and if the device is programmed with TI flash tool, this security key will be erased.

Page 27: BLUETOOTH® 4.0 HEART RATE SENSOR - MT-System · 2014-06-02 · Bluegiga Technologies Oy Page 6 of 43 2 What is Bluetooth low energy technology? Bluetooth low energy (Bluetooth 4.0)

Bluegiga Technologies Oy

Page 27 of 43

5 Testing the Heart Rate Sensor

5.1 Testing with BLEGUI

This section describes how to test the Heart Rate Sensor application with BLEGUI software.

5.1.1 Discovering the Heart Rate Sensor

As soon as the Heart Rate Sensor is powered on it starts to advertise itself. A BLED112 USB dongle can for example be used to scan for the sensor together with BLEGUI software.

Start Generic Scan to discover the device.

Figure 17: Scanning with BLEGUI

Page 28: BLUETOOTH® 4.0 HEART RATE SENSOR - MT-System · 2014-06-02 · Bluegiga Technologies Oy Page 6 of 43 2 What is Bluetooth low energy technology? Bluetooth low energy (Bluetooth 4.0)

Bluegiga Technologies Oy

Page 28 of 43

5.1.2 Establishing a connection

Simply select the DKBLE112 heart rate device and press the Connect button in the BLEGUI user interface.

Figure 18: Establishing connection with BLEGUI

Page 29: BLUETOOTH® 4.0 HEART RATE SENSOR - MT-System · 2014-06-02 · Bluegiga Technologies Oy Page 6 of 43 2 What is Bluetooth low energy technology? Bluetooth low energy (Bluetooth 4.0)

Bluegiga Technologies Oy

Page 29 of 43

5.1.3 Making a service discovery

1. Press the GATT button to start GATT tool

2. Press Service Discover button to start a GATT primary service discovery procedure

Figure 19: GATT service discovery

The three services defined in the GATT database are visible in the device.

Page 30: BLUETOOTH® 4.0 HEART RATE SENSOR - MT-System · 2014-06-02 · Bluegiga Technologies Oy Page 6 of 43 2 What is Bluetooth low energy technology? Bluetooth low energy (Bluetooth 4.0)

Bluegiga Technologies Oy

Page 30 of 43

5.1.4 Making a descriptors discovery

1. In order to discover the characteristics of the Device Information Service, select the service and press Descriptors Discover button

2. A list of service descriptors are shown

Figure 20: GATT descriptors discovery

Page 31: BLUETOOTH® 4.0 HEART RATE SENSOR - MT-System · 2014-06-02 · Bluegiga Technologies Oy Page 6 of 43 2 What is Bluetooth low energy technology? Bluetooth low energy (Bluetooth 4.0)

Bluegiga Technologies Oy

Page 31 of 43

5.1.5 Reading a characteristics value

1. To read a characteristic value, select the characteristic you are interested in and press the Read button. For example the Manufacturer Name String has a read property, so the value can be read by a GATT client.

Figure 21: Reading Manufacturer Name String

Page 32: BLUETOOTH® 4.0 HEART RATE SENSOR - MT-System · 2014-06-02 · Bluegiga Technologies Oy Page 6 of 43 2 What is Bluetooth low energy technology? Bluetooth low energy (Bluetooth 4.0)

Bluegiga Technologies Oy

Page 32 of 43

5.1.6 Starting notifications for HR measurement

1. Heart Rate Measurement characteristic has a notify property

2. This means the Heart Rate Sensor notifies the characteristic value changes to the Heart Rate Collector, instead of the collector having to read it constantly.

3. To enable notifications:

o Perform descriptors discovery to the Heart Rate Service

o Write “0x01” to the Client Characteristic Configuration

The Heart Rate Sensor starts to notify the HR measurements at 1 second interval

Figure 22: Enabling HR measurement notifications

Page 33: BLUETOOTH® 4.0 HEART RATE SENSOR - MT-System · 2014-06-02 · Bluegiga Technologies Oy Page 6 of 43 2 What is Bluetooth low energy technology? Bluetooth low energy (Bluetooth 4.0)

Bluegiga Technologies Oy

Page 33 of 43

5.1.7 Terminating the connection

To terminate the connection:

1. Press the Disconnect button

The Heart Rate Sensor restarts the advertisement procedure for the next 60 seconds, until it stops advertisements and goes to Power Mode 3.

After 60 seconds you need to reset the device to restart the advertisements.

Figure 23: Terminating the connection

Page 34: BLUETOOTH® 4.0 HEART RATE SENSOR - MT-System · 2014-06-02 · Bluegiga Technologies Oy Page 6 of 43 2 What is Bluetooth low energy technology? Bluetooth low energy (Bluetooth 4.0)

Bluegiga Technologies Oy

Page 34 of 43

6 Debugging Heart Rate sensor code

Debugging BGScript is easiest achieved over the USB interface. You can add debug prints to the BGScript code and then monitor them via the USB interface for example with terminal software.

The enable debugging a few modifications are needed.

First you need to enable USB interface and give the access to it to BGScript. This can be done with the following modifications to the hardware.xml file.

Figure 24: Hardware configuration with USB enabled and access give to BGScript

Page 35: BLUETOOTH® 4.0 HEART RATE SENSOR - MT-System · 2014-06-02 · Bluegiga Technologies Oy Page 6 of 43 2 What is Bluetooth low energy technology? Bluetooth low energy (Bluetooth 4.0)

Bluegiga Technologies Oy

Page 35 of 43

To print the actual debug messages modifications to the BGScript code is needed. The debug messages are printed to USB with system_endpoint_tx(…) command and a few examples are shown below.

Figure 25: BGscript code with debug prints

call system_endpoint_tx(3,5,”BOOT\n”) prints the actual debug messages. 3 refers to endpoint USB, 5 means that 5 bytes are written. “BOOT\n” is the actual message.

NOTE:

The “BOOT\n” message is actually never received by a terminal software when USB interface is used, because the operating system enumerates the USB when the message is being printed. Other messages will however be visible. If UART interface is used, the also the “BOOT\n” message can also be received.

Page 36: BLUETOOTH® 4.0 HEART RATE SENSOR - MT-System · 2014-06-02 · Bluegiga Technologies Oy Page 6 of 43 2 What is Bluetooth low energy technology? Bluetooth low energy (Bluetooth 4.0)

Bluegiga Technologies Oy

Page 36 of 43

Monitoring debug messages can be done with a standard terminal software.

Figure 26: Monitoring debug messages

Page 37: BLUETOOTH® 4.0 HEART RATE SENSOR - MT-System · 2014-06-02 · Bluegiga Technologies Oy Page 6 of 43 2 What is Bluetooth low energy technology? Bluetooth low energy (Bluetooth 4.0)

Bluegiga Technologies Oy

Page 37 of 43

7 Appendixes

7.1 Bluegiga’s Bluetooth 4.0 single mode stack suite

Bluegiga’s Bluetooth 4.0 single mode stack suite provides a complete development framework for Bluetooth low energy application implementers.

The Bluetooth 4.0 single mode stack suite framework supports two architectural modes:

All software including: Bluetooth 4.0 single mode stack, profiles and end user application all run on the Bluegiga's Bluetooth 4.0 single mode hardware

The Bluetooth 4.0 single mode stack and profiles run on the Bluegiga 4.0 single mode hardware but the end user application runs on a separate host (a micro controller for example)

The benefits of the development suite in either of the use cases is that it provides a complete Bluetooth 4.0 single mode stack so that no Bluetooth development is required, a well-defined transport protocol exists between the host and the Bluetooth hardware and also simple development tools are available for embedding the end user applications on the Bluetooth 4.0 single mode hardware.

The Bluetooth 4.0 single mode development suite consists of several components:

A Bluetooth 4.0 single mode stack

Binary based communication protocol (called BGAPI) between the host and the Bluetooth stack

A C library (called BGLib) for the host that implements the BGAPI protocol

BGScriptTM

scripting language and interpreter for implementing applications on the Bluetooth 4.0 single mode hardware

A Profile Toolkit for quick and easy development of GATT based Bluetooth services

7.2 Bluetooth 4.0 single mode stack

The Bluetooth 4.0 single mode stack is a full, embedded implementation of Bluetooth v.4.0 compatible stack software and it’s dedicated for Bluegiga’s Bluetooth 4.0 single mode modules. The stack implements all mandatory functionality for a single mode device. The structure and layers of the stack are illustrated in the figure below.

Figure 27: Bluetooth 4.0 single mode stack

Page 38: BLUETOOTH® 4.0 HEART RATE SENSOR - MT-System · 2014-06-02 · Bluegiga Technologies Oy Page 6 of 43 2 What is Bluetooth low energy technology? Bluetooth low energy (Bluetooth 4.0)

Bluegiga Technologies Oy

Page 38 of 43

7.3 BGAPI protocol

For applications where a separate host is used to implement the end user application, a transport protocol is needed between the host and the Bluetooth stack. The transport protocol is used to communicate with the Bluetooth stack as well to transmit and receive data packets. his protocol is called BGAPI and it's a binary based communication protocol designed specifically for ease of implementation within host devices with limited resources.

The BGAPI provides access to the following layers:

Generic Access Profile - GAP allows the management of discoverability and connetability modes and open connections

Security manager - Provides access the Bluetooth low energy security functions

Attribute database - An class to access the local attribute database

Attribute client - Provides an interface to discover, read and write remote attributes

Connection - Provides an interface to manage Bluetooth low energy connections

Hardware - An interface to access the various hardware layers such as timers, ADC and other hardware interfaces

Persistent Store - User to access the parameters of the radio hardware and read/write data to non-volatile memory

System - Various system functions, such as querying the hardware status or reset it

The BGAPI protocol is intended to be used with:

a serial UART link or

a USB connection

Page 39: BLUETOOTH® 4.0 HEART RATE SENSOR - MT-System · 2014-06-02 · Bluegiga Technologies Oy Page 6 of 43 2 What is Bluetooth low energy technology? Bluetooth low energy (Bluetooth 4.0)

Bluegiga Technologies Oy

Page 39 of 43

7.4 BGLib library

For easy implementation of BGAPI protocol an ANSI C host library is available. The library is easily portable ANSI C code delivered within the Bluetooth 4.0 single mode energy development suite. The purpose is to simplify the application development to various host environments.

Figure 28: BGLib host library

Page 40: BLUETOOTH® 4.0 HEART RATE SENSOR - MT-System · 2014-06-02 · Bluegiga Technologies Oy Page 6 of 43 2 What is Bluetooth low energy technology? Bluetooth low energy (Bluetooth 4.0)

Bluegiga Technologies Oy

Page 40 of 43

7.5 BGScriptTM scripting language

Bluegiga's Bluetooth 4.0 single mode energy products allow application developers to create standalone devices without the need of a separate host. The Bluetooth low energy modules can run simple applications along the Bluetooth 4.0 single mode stack and this provides a benefit when one needs to minimize the end product size, cost and current consumption. For developing standalone Bluetooth low energy applications the development suite provides a simple BGScript scripting language. With BGScript provides access to the same software and hardware interfaces as the BGAPI protocol. The BGScript code can be developed and compiled with free tools provided by Bluegiga.

Figure 29: BGScript application model

BGScript code example:

# System Started

event system_boot(major, minor, patch, build, ll_version, protocol_version,hw)

#Enable advertising mode

call gap_set_mode(gap_general_discoverable,gap_undirected_connectable)

#Enable bondable mode

call sm_set_bondable_mode(1)

#Start timer at 1 second interval (32768 = crystal frequency)

call hardware_set_soft_timer(32768)

end

Page 41: BLUETOOTH® 4.0 HEART RATE SENSOR - MT-System · 2014-06-02 · Bluegiga Technologies Oy Page 6 of 43 2 What is Bluetooth low energy technology? Bluetooth low energy (Bluetooth 4.0)

Bluegiga Technologies Oy

Page 41 of 43

7.6 Profile toolkit

The Bluetooth low energy profile toolkit a simple set of tools, which can used to create GATT based Bluetooth services. The profile toolkit consists of a simple XML based service description language template, which describes the devices local GATT database as a set of services. The profile toolkit also contains a compiler, which converts the XML to binary format and generates API to access the characteristic values.

Figure 30: A profile toolkit example of GAP service

Page 42: BLUETOOTH® 4.0 HEART RATE SENSOR - MT-System · 2014-06-02 · Bluegiga Technologies Oy Page 6 of 43 2 What is Bluetooth low energy technology? Bluetooth low energy (Bluetooth 4.0)

Bluegiga Technologies Oy

Page 42 of 43

7.7 External resources

Bluetooth 4.0 software development kit is available at : http://techforum.bluegiga.com

BLE112 and DKBLE112 hardware documentation is available at : http://techforum.bluegiga.com

Heart Rate Profile can be downloaded from: Heart Rate Profile

Bluetooth SIG’s developer portal: https://developer.Bluetooth.org/

Page 43: BLUETOOTH® 4.0 HEART RATE SENSOR - MT-System · 2014-06-02 · Bluegiga Technologies Oy Page 6 of 43 2 What is Bluetooth low energy technology? Bluetooth low energy (Bluetooth 4.0)

Bluegiga Technologies Oy

Page 43 of 43

8 Contact information

Sales: [email protected]

Technical support: [email protected]

http://techforum.bluegiga.com

Orders: [email protected]

WWW: www.bluegiga.com

www.bluegiga.hk

Head Office / Finland:

Phone: +358-9-4355 060

Fax: +358-9-4355 0660

Sinikalliontie 5A

02630 ESPOO

FINLAND

Postal address / Finland:

P.O. BOX 120

02631 ESPOO

FINLAND

Sales Office / USA:

Phone: +1 770 291 2181

Fax: +1 770 291 2183

Bluegiga Technologies, Inc.

3235 Satellite Boulevard, Building 400, Suite 300

Duluth, GA, 30096, USA

Sales Office / Hong-Kong:

Phone: +852 3972 2186

Bluegiga Technologies Ltd.

Unit 10-18

32/F, Tower 1, Millennium City 1

388 Kwun Tong Road

Kwun Tong, Kowloon

Hong Kong