1-1-1-1-3-1-6
From ICOP tech wiki
<a id="top"></a>
Contents
IMX BLE
From Variscite Wiki
Bluetooth Low Energy
Contents
- <a href="#Finding_BLE_devices">1 Finding BLE devices</a>
- <a href="#Connecting_to_BLE_devices">2 Connecting to BLE devices</a>
- <a href="#Accessing_BLE_devices">3 Accessing BLE devices</a>
- <a href="#Receiving_notifications_from_BLE_devices">4 Receiving notifications from BLE devices</a>
NOTES:
- Please make sure your Bluetooth device is powered on and ready for use. Follow the <a href="/index.php?title=IMX_Bluetooth#Device_identification" title="IMX Bluetooth">Bluetooth wiki</a> page if required.
1 Finding BLE devices
Use btmgmt tool to find BLE devices and detect their MAC address type (random vs public).
root@var-som-mx6:~# btmgmt find -l Discovery started hci0 type 7 discovering on hci0 dev_found: 74:B9:AB:CF:13:A9 type LE Random rssi -90 flags 0x0000 AD flags 0x1a name Galaxy S5 hci0 type 7 discovering off
In this example a single BLE device was detected, having MAC address 74:B9:AB:CF:13:A9 and random MAC address type
2 Connecting to BLE devices
Use gatttool to connect to BLE devices. Pass "-t random" parameter if scan has reported a random MAC address.
root@var-som-mx6:~# gatttool -t random -b 74:B9:AB:CF:13:A9 -I [74:B9:AB:CF:13:A9][LE]> connect Attempting to connect to 74:B9:AB:CF:13:A9 [74:B9:AB:CF:13:A9][LE]> Connection successful Indication handle = 0x0003 value: 01 00 ff ff [74:B9:AB:CF:13:A9][LE]>
3 Accessing BLE devices
After successful connection BLE device characteristics can be accessed via gatttool. Continuing the example above:
[74:B9:AB:CF:13:A9][LE]> characteristics handle: 0x0002, char properties: 0x20, char value handle: 0x0003, uuid: 00002a05-0000-1000-8000-00805f9b34fb handle: 0x0015, char properties: 0x02, char value handle: 0x0016, uuid: 00002a00-0000-1000-8000-00805f9b34fb handle: 0x0017, char properties: 0x02, char value handle: 0x0018, uuid: 00002a01-0000-1000-8000-00805f9b34fb handle: 0x0019, char properties: 0x02, char value handle: 0x001a, uuid: 00002aa6-0000-1000-8000-00805f9b34fb handle: 0x0029, char properties: 0x12, char value handle: 0x002a, uuid: 00002a19-0000-1000-8000-00805f9b34fb [74:B9:AB:CF:13:A9][LE]> char-read-hnd 0x0002 Characteristic value/descriptor: 20 03 00 05 2a [74:B9:AB:CF:13:A9][LE]> char-read-hnd 0x0015 Characteristic value/descriptor: 02 16 00 00 2a [74:B9:AB:CF:13:A9][LE]> char-read-hnd 0x0017 Characteristic value/descriptor: 02 18 00 01 2a [74:B9:AB:CF:13:A9][LE]> char-read-hnd 0x0019 Characteristic value/descriptor: 02 1a 00 a6 2a [74:B9:AB:CF:13:A9][LE]> char-read-hnd 0x0029 Characteristic value/descriptor: 12 2a 00 19 2a
4 Receiving notifications from BLE devices
Notifications sent from connected BLE devices can be seen in gatttool. The example below shows notification sent by Android "BLE Peripheral Simulator"
[74:B9:AB:CF:13:A9][LE]> Notification handle = 0x002a value: 08 3c 00 00 [74:B9:AB:CF:13:A9][LE]>