Published on July 11, 2013
Real-time Sensing with Bluetooth Smart Tue Haste Andersen @tuehaste Better Embedded, Florence #bem2013 9 JULY 2013
FROG IS A GLOBAL PRODUCT STRATEGY & DESIGN FIRM
WHAT IS EMBEDDED?
Typically a system based on a microprocessor contained within another system. The other system can be anything from a bigger computer, appliances like a fridge or oven, or even the human body.
HARDWARE + SOFTWARE Thus embedded is hardward + a simple software system to manage the hardware
HARDWARE + SOFTWARE + DATA It is increasingly difﬁcult to imagine a self-contained system that does not interact with the outside world. An embedded system increasingly needs to interact with the external world though a user or network interface. Thus to the deﬁnition, we need to add “data”.
About a year ago... About a year ago I was doing a race in a club for radio controlled “Mini Z” cars in Milan. The “Mini Z” cars are cars at a scale 1/28 produced by Kyosho and are becoming increasingly popular.
80 meters 8 seconds ~ 36 km/h The cars travel at a very high speed and are difﬁcult to control. Unfortunately I’m not really got at controlling the cars and start thinking about ways to get better. I decided to start measuring the cars using sensors and thereby improve my driving.
Does the chassis ﬂex? Interesting parameters include temperature, force/ﬂexing of the chassis, energy, acceleration and speed.
How are my plants doing? Once having a sensor system, it could be used not only to pull telemetic information from cars, but e.g. to monitor plant growth by tracking sunlight and humidity.
Body sensing and User Research ... or sensors could be used in body tracking as we are doing at frog as part of the user research.
I NEEDED SOMETHING: - REALLY SMALL - ROBUST - CHEAP - TO COLLECT DATA To monitor radio controlled cars I needed something really small, since the cars a very sensitive to physical changes, it needs to be robust and able to operate in an environment where radio signals are heavily used, it needs to be cheap and able to collect data.
BLUETOOTH For this project I’ve chosen Bluetooth.
BLUETOOTH But why Bluetooth? Bluetooth is known to have serious problems with usability where it is both slow and cumbersome to pair two devices.
BLUETOOTH Even simple operations like attaching a phone or a mouse to a computer often result in errors.
BLUETOOTH The reason for choosing Bluetooth is because of the new protocol, Bluetooth Smart, that is included in Bluetooth 4.0. Bluetooth Smart is a protocol originally developed by Nokia, and later integrated in the Bluetooth spec. Bluetooth Smart was originally called Wibree and later Bluetooth Low Energy. The main goal of Bluetooth Smart is to create a protocol with very low energy consumption and low latency.
PC SUPPORT 1 1 0 0 4 4 PHONE SUPPORT 1 1 1 0 4 4 ATTENTION FREE PAIRING 4 4 4 4 1 4 MAX ACTUAL THROUGHP. 200 kbps 424 kbps 20 kbps 250 kbps 6 Mbps 305 kbps LATENCY 25 ms 1 s * 0 * 20-30 ms 1,5 ms * 2,5 ms RANGE 1 m 5 cm ~10 m 300 m 150 m 50 m PEAK CONSUMP. 10 mA 50 mA * 17 mA 40 mA 116 mA 16 mA NETWORK TOPOLOGY STAR STAR MESH, STAR MESH, STAR STAR STAR IrDA NFC WiFi BluetoothANT+ ZigBee COMPARING WIRELESS TECHNOLOGIES This is a comparison of different wireless technologies. The peak consumption is a key factor for making a system that can last long on a single battery. A rule of thumb is that the current draw should not be above the range of 15 mA to avoid damaging the battery (this is valid for the standard coin cell batteries, CR2032)
BLUETOOTH “Google’s support for the Bluetooth Smart Ready platform in Android is one step forward for Bluetooth’s dominance in the internet of things.” GIGAOM Google announced on Google I/O 2013 support for Bluetooth 4.0 as of Android API v18
BLUETOOTH “Bluetooth is not becoming the de facto standard for your personal area network… it already is the standard for your personal area network” Bluetooth SIG Bluetooth 4.0 is backed by more than 400 companies.
Bluetooth 4.0 20
Bluetooth Smart devices are marketed using two labels.
Peripheral Central A peripheral only needs to implement functionality to advertise itself and participate in a connection, but does not need the functionality to initiate a connection. A central on the other hand needs to implement all the functionality of a peripheral + ability to initiate a connect + support for all older standards of Bluetooth.
Peripheral Slave Central Master Data The naming Slave and Master is also used in the specs.
Peripheral Slave Peripheral Central Master Slave A Bluetooth Smart Ready device can act both as a Central and as a Peripheral.
Bluetooth 4.0 Stack Application Generic Access Proﬁle (GAP) Generic Attribute Proﬁle (GATT) Attribute Protocol (ATT) Security Manager (SM) Logical Link Control and Adaption Protocol Link and RF layer
Bluetooth 4.0 Stack Application Generic Access Proﬁle (GAP) Generic Attribute Proﬁle (GATT) Attribute Protocol (ATT) Security Manager (SM) Logical Link Control and Adaption Protocol Link and RF layer The parts of the stack that an application typically interfaces with are GAP and GATT.
Central Peripheral Ad Advertisement interval (20ms to 10s) Ad Advertisement interval (20ms to 10s) Ad Advertisement interval (20ms to 10s) Advertisement A Bluetooth connection begins with the peripheral sending out advertisements to announce it’s presence. The advertisement interval can be conﬁgured at the application level.
Central Peripheral Ad Advertisement interval (20ms to 10s) Ad Advertisement interval (20ms to 10s) Ad Advertisement interval (20ms to 10s) Scanning Scanning Advertisement Scanning A central is scanning for advertisements.
Central Peripheral Ad Ch 37 Advertisement interval (20ms to 10s) Ad Ch 37 Advertisement interval (20ms to 10s) Ad Ch 37 Advertisement interval (20ms to 10s) Ad Ch 38 Ad Ch 39 Ad Ch 38 Ad Ch 39 Ad Ch 38 Ad Ch 39 Scanning Scanning Advertisement Scanning Bluetooth 4 is using 40 different channels in the 2,4GHz spectrum. In reality 3 is used for advertisements and the remaining 37 is used when the connection is established. Frequency hopping is implemented to ensure a stable connection.
Central Peripheral Ad Ch 37 Advertisement interval (20ms to 10s) Ad Ch 37 Advertisement interval (20ms to 10s) Ad Ch 37 Advertisement interval (20ms to 10s) Ad Ch 38 Ad Ch 39 Ad Ch 38 Ad Ch 39 Ad Ch 38 Ad Ch 39 Scanning Channel 39 Scanning Channel 37 Advertisement Scanning Channel 38
Master Central Slave Peripheral Conn. Req 150us Data Data 150us Data Data Data Data 150us 150us Connection interval (7.5ms to 4s) Connection interval (7.5ms to 4s) Connection Interval Once the central has initiated the connection, packets are exchanged between the central and peripheral at a ﬁxed interval, called “connenction interval”. The connection interval is conﬁgurable at the application level. More data packets can be sent during the connection interval.
Req. Data Data Data Connection interval Connection interval Slave Latency = 2 Data Connection interval Data Data Slave Latency Master Central Slave Peripheral The peripheral is not required to respond to each packet. It is allowed to skip a number of packets deﬁned as the “slave latency”. In this ﬁgure the slave latency is set to 2. The slave latency is a value from 0 to 499, however, the maximum period that the peripheral remain silent should not exceed 16 seconds.
Mobile Phone Sensor Bluetooth Smart The architecture that I’m following is based on a simple setup where sensors are attached electronically to the Bluetooth Peripheral, and the peripheral communicates using Bluetooth Smart to a mobile phone.
Mobile Phone Sensor Bluetooth Smart ?
Temperature Force Accelerometer Any sensors can be used. Good sources for ﬁnding useful sensors include Arduino and websites like Adafruit.
Analog I²C SPI Sensors can be attached using either an ADC converter or through a serial protocol like Inter-Intergreated Circuit or Serial Peripheral Interface.
Mobile Phone Sensor Bluetooth Smart ?
Texas Instruments Nordic Semiconductor CSR EM Microelectronic A number of manufacturers are producing Bluetooth Smart chipsets.
Texas Instruments - CC2540/CC2541 Nordic Semiconductor CSR EM Microelectronic Texas Instruments is producing the CC2540 chip that is interesting because it include a 8501 MCU, thus eliminating the need for an external MCU. This reduces the total energy consumption and the complexity of the hardware design.
This is the architecture of the CC2540. The CC2541 is slightly different in that it includes a I2C hardware interface and no USB interface. The CC2541 also consumes less energy. To make the system run is also needed a crystal, antenna, signal cap, EEPROM etc. The total BOM (Bill of Materials) cost is around 3€.
Turnkey modules: Bluegiga BLE112 and BLE113 Blueradio BR-LE4.0-S2A Alpwise ALPW-BLEDVK002 Alpha Micro Building a module around a chipset also requires a certiﬁcation from Bluetooth. An alternative is to use a turnkey module. Some options include: Bluegiga: http://www.bluegiga.com/BLE113_Bluetooth_Smart_module Blueradio: http://www.blueradios.com/hardware_LE4.0-S2.htm Alpwise: http://www.alpwise.com/produit.php?ref=ALPW-BLEDK002&id_rubrique=6 Alpha Micro: http://news.cision.com/livewire-pr/r/alpha-micro-launches-low-energy-bluetooth-smart--modules-for-medical-and-other-devices- from-laird-te,c9405289
BlueGiga is a module with good documentation, it’s based on CC2540/CC2541 BgScripting language or BG API According to BlueGiga it will be possible to use the IAR Workbench (expensive) 8051 compiler in the near future. BLE112 costs around €11
Mobile Phone Sensor Bluetooth Smart ?
Phones and computers supporting BT4 iOS Android Linux iOS (from iPhone 4S) has good support for BT4. Google has announced support in Android and Linux has support.
http://www.inmojo.com/store/jeﬀ-rowberg/item/ble112- bluetooth-low-energy-breakout/ Building a hardware prototype requires the use of a development kit or the use of a breakout board. Breakout boards for BlueGiga are available under the Creative Commons license.
After some Surface Mount Soldering, this is how the working prototype module looks like...
Force Sensor Temperature Sensor Sensors can be attached to the ports similar to how sensors are attached to an Arduino.
YOU NEED 4 THINGS
BGScript compiler from http://techforum.bluegiga.com
Texas Instruments CC Debugger The CC Debugger costs around €50.
Flash programmer from http://www.ti.com/tool/ﬂash- programmer As an alternative the open source cc-tool can be used.
BGScript Basic-like language Event driven No functions (!) BGScript used to program the BLE112/3 modules is a basic like language, event driven, not allowing any functions to be deﬁned.
Generic Attribute Proﬁle (GATT) The ﬁrst step in programming the ﬁrmware is deﬁning a GATT proﬁle.
Generic Attribute Proﬁle (GATT) value Byte array, from 0 to 512 bytes Each type of value transferred can be a value between 0 and 512 bytes long.
Generic Attribute Proﬁle (GATT) Characteristics speciﬁcation at: http://developer.bluetooth.org/ valuetype 16 bit predeﬁned UUID or 128 bit generated UUID Each value is assigned to a type. The type can either be a type deﬁned in the Bluetooth spec (16 bit UUID) or be a randomly generated 128 but UUID. This means that the application developer can deﬁne custom application-speciﬁc types and does not need to rely on the availability of proﬁles in the chipsets and drivers. This is a really powerful feature of the new Bluetooth protocol.
Generic Attribute Proﬁle (GATT) Characteristics speciﬁcation at: http://developer.bluetooth.org/ valuetypehandle 16 bit handle In addition a handle, an ID is assigned.
Generic Attribute Proﬁle (GATT) Characteristics speciﬁcation at: http://developer.bluetooth.org/ valuetypehandle permission And various permissions.
Generic Attribute Proﬁle (GATT) Characteristics speciﬁcation at: http://developer.bluetooth.org/ Characteristic valuetypehandle permission All these attributes are collectively called a Characteristic.
Generic Attribute Proﬁle (GATT) Characteristics speciﬁcation at: http://developer.bluetooth.org/ Characteristic valuetypehandle permission Service A characteristic is assigned to a service.
Generic Attribute Proﬁle (GATT) Characteristics speciﬁcation at: http://developer.bluetooth.org/ Server Characteristic valuetypehandle permission Service A service to a server. The server is typically implemented by the peripheral.
Service Generic Attribute Proﬁle (GATT) Characteristics speciﬁcation at: http://developer.bluetooth.org/ Characteristic valuetypehandle permission Service Server A server can have more than one service.
Service Characteristic Generic Attribute Proﬁle (GATT) valuetypehandle permission Characteristics speciﬁcation at: http://developer.bluetooth.org/ Server Characteristic valuetypehandle permission Characteristic valuetypehandle permission Service A service can have more than one characteristic.
Deﬁning a GATT proﬁle The Gatt proﬁle is deﬁned in a simple XML ﬁle.
Deﬁning a GATT proﬁle A custom service and characteristic is deﬁned with a generated UUID.
Programming BLE113 BGScript is event driven. When the peripheral is powered on a system_boot event is raised. At this point the advertisement interval is conﬁgured and advertisement is started.
Programming BLE113 Once a connection has been established a sensor is montiored using a timer. An analog sensor is read using a call to hardware_adc_read, the result is not immediately available but given in another event.
Programming BLE113 The result is given as part of the hardware_adc_result_event. Here we write the value to the GATT database using the id “xgatt_force” that we deﬁned in the GATT XML ﬁle.
iOS App using CoreBluetooth and AFNetworking. Bluetooth connection is kept alive while the app is sleeping The Bluetooth peripheral is connecting to an iPhone app. I’ve used Apple’s CoreBluetooth API and AFNetworking to relay the data to a cloud service.
Issues Each line of BGScript takes 1-3ms to execute Problem with I2C (hardware support in BLE113) Changing GATT proﬁle requires switching Bluetooth oﬀ and on in iOS 1. The main issue with the BLE112/113 system is that BGScript is slow. It is not possible to measure sensor with high frequency with this system. Instead a C compiler should be used. 2. On the CC2540/BLE112, the I2C interface is implemented in software making it slow and buggy. If you need I2C you should use CC2541/ BLE113. 3. When updating the GATT proﬁle on the peripheral iOS does not see the changes. To account for this, switch off and on Bluetooth in iOS settings
Actual Performance Actual range around 25 meters Duration on a standard CR2032 battery, with constant non-optimized communication and reading of four ADC sensors: around 4 hours From a few experiments I’ve seen that the connection becomes somewhat unstable above 25 meters range. This obviously depends a lot on the environment. Below 25 the connection is very stable, even in environments with a lot of radios in the 2,4GHz band. The coin cell battery can last for a very long time, however, this requires setting the connection interval parameters rather conservative, implement low power modes etc. etc. Running the chip in a busy loop where it reads the ADC and sends the values to the central, the battery lasts for around 4 hours.
Sensor Bluetooth Peripheral Phone Sensors are connected with the phone using this diagram.
Bluetooth 4analog/serialSensor Bluetooth Peripheral Phone
Bluetooth 4analog/serialSensor Bluetooth Peripheral Phone Desktop Bluetooth 4 Desktop computers could be used.
Bluetooth 4analog/serialSensor Bluetooth Peripheral Phone Desktop Bluetooth 4 Raspberry Pi Bluetooth 4 Or a Raspberry Pi.
Bluetooth 4analog/serialSensor Bluetooth Peripheral Phone Desktop Bluetooth 4.0 Raspberry Pi Bluetooth 4.0 CloudTCP/IP In any case the data needs to move off the device, to the cloud, to be able to share, compare and analyze the data.
nodejs and log.io The ﬁrst step is to setup a tool that allows to verify that the whole chain, from Sensor to cloud is working. For this I use the node.js program log.io. This is a simple tool that allows to see logs realtime in a web browser.
Sensing in the Cloud Xively, Open Sen.se, SenseOS, Etherios, ElectricCimp, One of the most mature cloud based sensor platforms is Xively (previously Pachube)
Store Process Visualize HTTPEvent HTTP Open Sen.se Cloud Platform Open Sen.se offers a platform that is modular and easy to conﬁgure. The platform is still in private beta, but conceptually very interesting.
Here’s an example of the force sensor data from the MiniZ car shown on Open Sen.se.
Bluetooth Smart in a year: Open Source breakout boards Android Support Improved iOS support TI SmartTag developer kit Lower power chipsets Hundreds of devices launched
Bluetooth and Embedded is clearly becoming easier, less hardware hacking is needed grazie a tutto cio, e’ diventato piu facile ad utilizare e programmare embedded e bluetooth 4
Bluetooth 4 is the standard that will enable massive data collection. A great challenge lies in what to do with the data. Secondo me la prossima sﬁda e’ scoprire come sfruttare al meglio tutti questi dati
© 2013 frog. All rights reserved. Tweets on data, sensing and startups @tuehaste
Presentación que realice en el Evento Nacional de Gobierno Abierto, realizado los ...
In this presentation we will describe our experience developing with a highly dyna...
Presentation to the LITA Forum 7th November 2014 Albuquerque, NM
Un recorrido por los cambios que nos generará el wearabletech en el futuro
Um paralelo entre as novidades & mercado em Wearable Computing e Tecnologias Assis...
In this talk I will present the design of a real-time sensing platform for collecting telemetric information from radio-controlled devices. #bem2013 ...
In this talk I will present the design of a real-time sensing system for collecting sensor data from sources such as the human body, environment and radio ...
Libelium has released new Smart Logistics modules for ... transmits data to the Cloud in real time, ... Bluetooth, Bluetooth Smart Low Energy (BLE ...
More Environmental Sensing ... various environmental parameters in real-time and store for later ... mesh type fudge layered over Bluetooth Smart.
These Bluetooth 4.0 low energy LE modules and radios are wire replacement coin cell battery solutions ... Free iOS 7 smart phone application: https: ...
... Sensordrone is an open platform for all kinds of sensor and bluetooth ... The World's First Wearable, Programmable, Sensing ... real-time data, and ...
... into a real-time coaching ... adidas Bluetooth Smart Heart Rate Monitor with ... Compatible with adidas heart rate sensing apparel. Bluetooth vs ...
made mobile sensing platforms capable of real-time air quality data collection increasingly feasible. ... over Bluetooth to their smart phone.