USB Bluetooth Low energy on i.Mx6 Android platform
A well known Japanese company which designs, develops and manufactures automobile system accessories like camera, Bluetooth, navigation system, rear seat monitor etc.
Bluetooth Low Energy (BLE) which is also termed as Bluetooth Smart is designed to provide significantly lower power consumption. BLE is a protocol that allows for long-term operation of Bluetooth devices that transmit short volumes of data. Bluetooth Smart technology is an integral part of the Bluetooth Core Specification from Bluetooth v4.0 onwards.
Android KitKat provides platform support for Bluetooth Low Energy and provides APIs that applications can use to discover devices, query for services, and read/write characteristics (data packets).This will allow Android applications to communicate with BLE devices that have low power requirements, such as proximity sensors, heart rate monitors, fitness devices, and so on.
iWave Systems has added support for Bluetooth over USB interface on i.Mx6Q Android KitKat platform. Here i.Mx6 board with USB BLE dongle connected will acts as central (Client, Master) device, Reads the Sensor value from remote BLE peripheral (Server, Slave) device using GATT protocol.
In this project we used IO-DATA’s USB BLE dongle and Toshiba’s TZ1000 heart sensor device for GATT profile verification.
To go with addition of USB support in Bluedroid or porting of BLUEZ 5.33 stack which already supports USB as HCI, was a critical decision factor. Identifying the dependent libraries and utilities, modifying APIs to make compatible, while building and integrating with Android KitKat was a great experience and fun.
Modifying the HAL layer In Android KitKat 4.4.3 to support BLE dongle and porting it to discover the device as Bluetooth was an accomplishment. Also Exploring and configuring the device for BLE and GATT profile was challenging and an important task.
Solution offered by iWave:
USB BLE support on Android KitKat:
iWave’s i.MX6Q G15D is used for development. The platform uses Android KitKat 4.4.3 as the host Operating system. As Android native Bluetooth stack (Bluedroid) does not have USB support, iWave ported Bluez HAL layer to Android and enabled the GATT (Generic Attribute) protocol functionality. The GATT profile is a general specification for sending and receiving short pieces of data known as "attributes" over a BLE link.
iWave verified the GATT profile functionality of USB BLE dongle connected to the i.Mx6 device using TZ1000 heart rate sensor device.
TZ1000 SDK test application used to verify the following functionality-
- Scan and connect with the TZ1000 device
- Read the Heart/pulse rate data from TZ1000 device and display on application screen.
- iWave G15D i.Mx6Q processor platform
- Operating System: Android KitKat 4.4.3
- USB 2.0 Host and USB device (OTG)
- Same UART as both debug and Data UART
- Ethernet Interface.
- Static IP retain on next boot
- USB BLE dongle support (I-ODATA)
- Bluetooth/BLE over USB interface
- Scan Bluetooth/BLE devices
- Pair with Bluetooth/BLE devices
- Read the heart rate value from BLE Peripheral device using GATT protocol.
- BLE dongle Plug and play support
- Command configured Quad core as Dual core by disabling two cores for power consumption reduction.
Area of Expertise:
- Android KitKat on iMX6 G15 platform
- HAL Layer in Android
- Porting of Bluez Stack
- BLE with GATT profile for various sensors
iWave is provided Android KitKat BSP support on iWave’s G15D i.MX6 platform for various health monitoring applications. Here I-ODATA BLE dongle was interfaced over USB along with-
- BLE Driver,
- BLEUZ HAL layer in Android for USB interface
Collector Sample of Toshiba’s TZ1000 SDK test application is used get the Heart Rate Data for monitoring the Heart (HRM). iWave’s i.MX6 Development Kit was seamlessly integrated with customer’s BLE device and applications. Given iWave’s design Quality and Technical Support, client can easily adapt iWave’s i.MX6 SOM into similar designs. iWave has expertise in providing Bluetooth/Bluetooth low energy support to similar ARM platforms.
iWave’s in-house software BSP support clients to validate the end application quickly and achieve short product development life cycle and quick time to market.