24
Appcessories Bridging the Digital to the Physical

Bw13 session2 app_dev_presenter_final

Embed Size (px)

Citation preview

Page 1: Bw13 session2 app_dev_presenter_final

Bluetooth SIG Proprietary and Confidential 1Bluetooth SIG Proprietary and Confidential 1

Click to edit Master title styleClick to edit Master subtitle styleAppcessoriesBridging the Digital to the Physical

Page 2: Bw13 session2 app_dev_presenter_final

Bluetooth SIG Proprietary and Confidential 2Bluetooth SIG Proprietary and Confidential 2

What’s In It For Me?

• Understand the opportunity– Great potential for growth and monetization with

appcessories

– Bluetooth technology’s role

• What a sample Bluetooth implementation looks like– From ‘profiles’ and use cases to code

• Where to find more resources– Hint: developer.bluetooth.org

Page 3: Bw13 session2 app_dev_presenter_final

Bluetooth SIG Proprietary and Confidential 3Bluetooth SIG Proprietary and Confidential 3

Digital and Physical Worlds Collide!

Page 4: Bw13 session2 app_dev_presenter_final

Bluetooth SIG Proprietary and Confidential 4Bluetooth SIG Proprietary and Confidential 4

Appcessories = Application + Accessory

They are complementary devices that enable people to interact with technology like never before by creating

physical experiences to strengthen the digital experience

What Is An Appcessory?

MobiPlex - SwingTIP

What makes Bluetooth a good fit for Appcessories?

Performance THE Standard for device

connectivity

Page 5: Bw13 session2 app_dev_presenter_final

Bluetooth SIG Proprietary and Confidential 5Bluetooth SIG Proprietary and Confidential 5

1,000,000,000 Devices*

Why Should I Care?

1,000,000,000x Applications

* 2012 ANALYSIS OF THE BLUETOOTH MARKET AND INDUSTRY, ABI Research

Page 6: Bw13 session2 app_dev_presenter_final

Bluetooth SIG Proprietary and Confidential 6Bluetooth SIG Proprietary and Confidential 6

Let Me Share a Story…

Page 7: Bw13 session2 app_dev_presenter_final

Bluetooth SIG Proprietary and Confidential 7Bluetooth SIG Proprietary and Confidential 7

Bluetooth – Bridging the Gap

App for the Phone

Sensor-based device for the

Lock

For the Connection

• Well defined specs and protocols• Standard way to implement

solutions

Page 8: Bw13 session2 app_dev_presenter_final

Bluetooth SIG Proprietary and Confidential 8Bluetooth SIG Proprietary and Confidential 8

Smart Device Profiles – Defining the Use Cases

A Generic Attribute Profile (GATT) is a description of how a

device functions for a given scenario/use case

Generic Attribute Profile

Service

Value

Characteristic

Value

Value

Value

Characteristic

Value

Value

First thing we need to do is to define the use cases…

Page 9: Bw13 session2 app_dev_presenter_final

Bluetooth SIG Proprietary and Confidential 9Bluetooth SIG Proprietary and Confidential 9

Profile for the Lock Mechanism

What is your use case? Let’s focus on the Password-enabled scenario

Admin User Lock

Turn ‘on’ PWD

PWD ‘on’ AK

Change PWD

Send Admin PWD

Admin PWD

Send Good/Bad

New User PWDSend User PWD

Change AK

In this flow, we will assume that the Admin PWD given is correct

Encrypted

Encrypted

• We want an admin to be able to turn passwords on/off

• We want an admin to be able to send an ‘admin’ password, which can then be used to set the ‘user’ password

Page 10: Bw13 session2 app_dev_presenter_final

Bluetooth SIG Proprietary and Confidential 10Bluetooth SIG Proprietary and Confidential 10

Service Definition for the Lock Mechanism

High-level sample profileLock Mechanism Profile

Lock Service

Yes

Locked

Code Service

ON

Status

12345

User Code

54321

Admin Code

• Use case scenarios are important to define

– Design decisions are important to your scenario(s)

– Lock Service – is it simply a toggle?

– Code Service – are we covering all of the right use cases?

• Quick word on Adopted Profiles…

– Proximity is an example

– Contains a ‘link loss’, an ‘immediate alert level’, and a ‘transmit power’ service

– Can easily add those services to your ‘custom’ profile’.

Page 11: Bw13 session2 app_dev_presenter_final

Bluetooth SIG Proprietary and Confidential 11Bluetooth SIG Proprietary and Confidential 11

Attribute Tables for Lock MechanismHandle Type Value Permissions

1 «Primary Service» «Code Service» --

2 «Status» {r/w, 3, «Value for Status»} Read/Write

3 «Value for Status» “ON” --

4 «User Code» {r/w, 5, «Value for Code»} Read/Write

5 «Value for Code» “12345” --

6 «Admin Code» {r/w, 7, «Value for Code»} Read/Write

7 «Value for Code» “54321” --

• Smart Device stores Service data in an Attribute Table

– Implemented on the actual Smart Device to store data

• Structure defined by GATT

– Every entry in the table is considered an attribute

– Service, Characteristic, Value, etc

Page 12: Bw13 session2 app_dev_presenter_final

Bluetooth SIG Proprietary and Confidential 12Bluetooth SIG Proprietary and Confidential 12

Smart Ready Platforms and ProfilesWhen creating apps for modern

smartphone platforms, many Bluetooth details are abstracted away

by the underlying SDK

• In many cases, still requires knowledge of the profile.

• Each platform has their own SDK and are a bit different

– Microsoft, Apple, Blackberry, Google

• Refer to the SDK docs of the platform you are targeting

Generic Attribute Profile

Service

Value

Characteristic

Value

Value

Value

Characteristic

Value

Value

Page 13: Bw13 session2 app_dev_presenter_final

Bluetooth SIG Proprietary and Confidential 13Bluetooth SIG Proprietary and Confidential 13

• Smart Device Discovery

Typical Bluetooth Application Flow

Smart Device Advertises Itself

Smart Ready Hub Scans for Advertisements

Smart Ready Hub requests a Connection

Smart Device accepts Connection request

• Smart Device Connection to Smart Ready Hub

Page 14: Bw13 session2 app_dev_presenter_final

Bluetooth SIG Proprietary and Confidential 14Bluetooth SIG Proprietary and Confidential 14

• Interacting with Services

Typical Bluetooth Application Flow

– Smart Ready Hub can look at services and the values they contain in Smart Devices

– Smart Ready Hub can send commands to the Smart Device services

– Smart Ready Hub can receive commands and updates from the Smart Device

• Requires the services to be configured properly on the Smart Device

Page 15: Bw13 session2 app_dev_presenter_final

Bluetooth SIG Proprietary and Confidential 15Bluetooth SIG Proprietary and Confidential 15

Lockitron – Not Just a Story

• Turn your mobile phone into a key.

• Send permanent or temporary virtual keys to family, friends and house guests.

• Your mobile phone can be better than a key – keep it in your pocket.

Keyless entry with your phone

– Bluetooth low energy – “…the only wireless technology we can keep on for extended periods and is integrated directly into mobile phones.”

– “With Bluetooth low energy, we can carry out commands without the user tapping the app.”

Cameron Robertson, Founder

Page 16: Bw13 session2 app_dev_presenter_final

Bluetooth SIG Proprietary and Confidential 16Bluetooth SIG Proprietary and Confidential 16

Bridging the Digital to the Physical

Internet

Connected

Native APIs for

applications

®

Page 17: Bw13 session2 app_dev_presenter_final

Bluetooth SIG Proprietary and Confidential 17Bluetooth SIG Proprietary and Confidential 17

Implementation – Getting Started

• Texas Instruments CC2541– Single-chip single-mode Bluetooth low energy System-

on-a-Chip

– Contains radio, MCU, stack, profiles, applications, and on-chip peripherals – everything needed for your product!

• CC2541 Sensor Tag Kit– Fully working Bluetooth low energy peripheral based on

CC2541

– Contains sensors for temperature, humidity, accelerometer, magnetometer

– Enables app developers to quickly develop prototype Bluetooth low energy software

• CC2541 Mini Development Kit– Includes CC2541 Keyfob, USB Dongle, and Debugger

– Enables CC2541 embedded software development

Page 18: Bw13 session2 app_dev_presenter_final

Bluetooth SIG Proprietary and Confidential 18Bluetooth SIG Proprietary and Confidential 18

Implementation – TI iOS SensorTag App

• Targeting Smart Phone App Developers

• Limitless App Possibilities– Health and fitness, medical, educational tools,

toys, remote controls, mobile phone accessories, and proximity.

• The CC2541 SensorTag kit shortens the design time for Bluetooth low energy app development from months to hours

– No embedded software design knowledge required.

– The SensorTag includes all SW needed for App development

– TI has a SensorTag App on the App Store providing developers with easy access to the tools they need.

– iOS Example App Source Code available for download at http://ti.com/sensortag

Page 19: Bw13 session2 app_dev_presenter_final

Bluetooth SIG Proprietary and Confidential 19Bluetooth SIG Proprietary and Confidential 19

Implementation – Developing for iOS

• Development done using Xcode

• Xcode runs on OSX [Mountain] Lion

• Xcode and simulator is free– BLE requires physical iOS device

• Physical device download requires Apple Developer Account– Costs 99$ per year at developer.apple.com/programs/ios

Page 20: Bw13 session2 app_dev_presenter_final

Bluetooth SIG Proprietary and Confidential 20Bluetooth SIG Proprietary and Confidential 20

Implementation – iOS Source Code• The communication is asynchronous between

app and iOS’s CoreBluetooth API

• We issue commands to CBCentralManager and CBPeripheral

– [BLEUtility writeCharacteristic ...]

– [peripheral writeValue:data ... ];

• Then act as delegate for CBCentralManager

– centralManagerDidUpdateState

– didDiscoverPeripheral

– didConnectPeripheral

• And for CBPeripheral

– didDiscoverServices

– didUpdateValueForCharacteristic

– didWriteValueForCharacteristic

• Delegates implement callbacks according to a protocol. A design pattern used in iOS.

Page 21: Bw13 session2 app_dev_presenter_final

Bluetooth SIG Proprietary and Confidential 21Bluetooth SIG Proprietary and Confidential 21

Implementation – Developing for CC2541• TI provides license-free Bluetooth low energy qualified

protocol stack and profiles

• Application development using C using IAR Embedded Workbench

• Operating system abstraction layer (OSAL) with priorized event handler, memory management, task messaging, and NV drivers

• Sample applications included with SDK– Standard profile applications such as Proximity, Heart Rate Sensor, Glucose

Sensor, etc...

– Custom profile applications such as SensorTag, Generic Peripheral, Generic Central

• Additional Features– Over-the-Air Firmware Updates

– Boot Image Manager- run multiple firmware images on one chip

– Hardware Abstraction Layer (HAL) drivers for on-chip peripherals including SPI, UART, I2C, ADC, Timers

Page 22: Bw13 session2 app_dev_presenter_final

Bluetooth SIG Proprietary and Confidential 22Bluetooth SIG Proprietary and Confidential 22

Resources on the Portal

• Knowledge Center– White papers

– Training Videos

• Development Resources– Quick Start Kit

– Platform availability for Smart and Smart Ready

– Recorded webinars on development topics

– Links to SIG tools (PTS, etc.)

• Forums

• GATT specifications

http://developer.bluetooth.org

Page 23: Bw13 session2 app_dev_presenter_final

Bluetooth SIG Proprietary and Confidential 23Bluetooth SIG Proprietary and Confidential 23

Coming Soon – New Developer Resources

• Bluetooth Quick Start Kit v2– Fundamentals for device makers new to

Bluetooth Low Energy• GATT, GAP, ATT, adopted profiles, etc.

– Sample application• “Hello Bluetooth”

– iOS, Android, Windows 8

• Bluetooth Application Accelerators v1– Accelerator for application developers

– Educational content• Setting up your environment

• Tutorial/code walkthrough

– Fully commented sample code• iOS initially

http://developer.bluetooth.org

Page 24: Bw13 session2 app_dev_presenter_final

Bluetooth SIG Proprietary and Confidential 24Bluetooth SIG Proprietary and Confidential 24

Appcessories – Join the Movement

• Appcessory market is mainstream– Great potential for growth and monetization

• Bluetooth can help you bridge the digital to the physical– Bluetooth is the a defacto standard

• Grab a development kit and start today