Internet of Things Bill Siever New Applications Wearables Embedded Smarts Needs Simple to Setup Networking w/ Long Battery Life (Low Power)
Solution: BLE A.K.A. Bluetooth Smart or Bluetooth Low Energy Part of Bluetooth 4.0- (2011) Significantly different from Classic Bluetooth Different use-cases Different PHY/packets/etc. Why is BLE successful? Deployment of Dual Mode devices in mobile (Dual Mode supports Bluetooth Classic and LE) Suitable rapid prototyping tools (Certified RF solutions, Complete software stacks) Flexibility (new use-cases: low power/throughput) BLE Examples
Challenges Many Devices in Same Area How do we Discover the one(s) we want? Different Data Needs Data Types Vary Sending vs. Receiving Polling vs. Pushed Notifications Discovery: Solution Advertising: Sending Info Scanning: Listening for Advertising Advertising Send a small message that can contain Name Description of Features (Services) Data
Scanning Listening Set period of time or regular intervals May filter for: Interesting services Perviously used devices Communication Roles Broadcaster & Observer Central & Peripheral Broadcaster & Observer Connectionless / one-way communication Advertisement contains data for location
Broadcaster & Observers One-to-Many Central & Peripheral Peripheral Advertises Advertisement Describes Features Central & Peripheral Central can Respond to Form a Connection
Central & Peripherals Central to Many Peripherals (Star Topology) Central Challenges Many Devices in Same Area How do we Discover the one(s) we want? Different Data Needs Data Types Vary Sending vs. Receiving Polling vs. Pushed Notifications Solution: Data Needs Client/Server Architecture A Table Of Data
Clients & Servers Clients have services (data/control) of interest Connected roles - Either/both Central/Peripheral can be Client/Server Serves Notifications Serves Heart Rate Data: Attributes Data: Attributes Heart Rate & Energy 60bpm & 6J Readable
Data: Attributes Heart Rate & Energy 60bpm & 6J Notifiable Data: Attributes Heart Rate & Energy 60bpm & 6J Notifiable Watch Time? Writeable Data: Attributes Heart Rate & Energy 60bpm & 6J Notifiable Watch Time? Writeable Heart Rate Energy Reset (Control)? Writeable
Data: Attributes Heart Rate & Energy Heart Rate Energy Reset (Control) 60bpm & 6J Notifiable? Writeable Watch Time? Writeable Data: Attributes Group Heart Rate Service Heart Rate & Energy Heart Rate Energy Reset (Control) 60bpm & 6J Notifiable? Writeable Watch Service Watch Time? Writeable Services Services Provide a Focused Feature A group of Characteristics Characteristics => Data (& Type & Permissions) Characteristics may have additional descriptive data (called Descriptors)
Services Standardized services for many common needs Ex: Device Information: Model, Manufacturer, etc. Ex: Heart Rate Rate, Sensor Location, etc. Standardized by the Bluetooth SIG Std. Services allow interoperability Ex: Any Heart Rate App w/ Any Std Heart Rate Monitor Services Custom Service can be Created for new needs Design and data format up to creator May publish (make open) so it can be used by others without it being an official standard Characteristic The data for the service Include a Data Type Permissions/behavior/style: readable, writeable, indicatable, Limits on data size
Data Type How can we Identify Types? Options? String Number Needs to be unique to type Numbers UUID: Universally Unique Identifier Represent Data Type (and Service Type) Used in Advertisements (for services) and Characteristics Numbers 16-bit numbers are used for standard things Maintained by the Bluetooth SIG Custom things can use a (mostly random) 128-bit number
Service Exploration Studio Time! Questions?