Bluetooth¶
Device identification¶
After the File system is up 'hciconfig' should show the connected bluetooth module.
hciconfig
hci0: Type: BR/EDR Bus: UART
BD Address: 64:A3:CB:5B:69:F0 ACL MTU: 1021:8 SCO MTU: 64:1
DOWN
RX bytes:1772 acl:0 sco:0 events:69 errors:0
TX bytes:1152 acl:0 sco:0 commands:65 errors:0
Device initialization¶
$ hciconfig hci0 up
$ hciconfig
hci0: Type: BR/EDR Bus: UART
BD Address: 64:A3:CB:5B:69:F0 ACL MTU: 1021:8 SCO MTU: 64:1
UP RUNNING
RX bytes:1772 acl:0 sco:0 events:69 errors:0
TX bytes:1152 acl:0 sco:0 commands:65 errors:0
Connecting to classic bluetooth devices¶
You can manage bluetooth with bluetoothctl, type 'bluetoothctl' and enter the interface. Type help to show commands.
For connecting a device do the following:
$ bluetoothctl
[bluetooth]# agent on
[bluetooth]# pairable on
Push the connect button in the device
[bluetooth]# scan on
Copy mac address
[bluetooth]# scan off
[bluetooth]# pair <mac address>
Approve pairing on Device if required
[bluetooth]# trust <mac address>
[bluetooth]# connect <mac address>
[bluetooth]# quit
For example when connecting a Microsoft bluetooth mouse the following is done:
root@varsomam33:~# bluetoothctl
[NEW] Controller 78:A5:04:2A:E0:C8 varsomam33 [default]
[bluetooth]# agent on
Agent registered
[bluetooth]# pairable on
Changing pairable on succeeded
[bluetooth]# scan on
Discovery started
[CHG] Controller 50:72:24:11:EF:B0 Discovering: yes
[NEW] Device 00:1D:D8:39:93:46 Microsoft Bluetooth Notebook Mouse 5000
[bluetooth]# scan off
[CHG] Device 00:1D:D8:39:93:46 RSSI is nil
Discovery stopped
[CHG] Controller 50:72:24:11:EF:B0 Discovering: no
[bluetooth]# pair 00:1D:D8:39:93:46
Attempting to pair with 00:1D:D8:39:93:46
[CHG] Device 00:1D:D8:39:93:46 Connected: yes
[CHG] Device 00:1D:D8:39:93:46 Modalias: usb:v045Ep0700d0100
[CHG] Device 00:1D:D8:39:93:46 UUIDs:
00001000-0000-1000-8000-00805f9b34fb
00001124-0000-1000-8000-00805f9b34fb
00001200-0000-1000-8000-00805f9b34fb
[CHG] Device 00:1D:D8:39:93:46 Paired: yes
Pairing successful
[CHG] Device 00:1D:D8:39:93:46 Connected: no
[bluetooth]# trust 00:1D:D8:39:93:46
[CHG] Device 00:1D:D8:39:93:46 Trusted: yes
Changing 00:1D:D8:39:93:46 trust succeeded
[bluetooth]# connect 00:1D:D8:39:93:46
Attempting to connect to 00:1D:D8:39:93:46
[CHG] Device 00:1D:D8:39:93:46 Connected: yes
[bluetooth]# hid-generic 0005:045E:0700.0001: unknown main item tag 0x0
input: Microsoft Bluetooth Notebook Mouse 5000 as /devices/soc0/soc.0/2100000.aips-bus/21e8000.serial/tty/ttymxc1/hci0/hci0:1/0005:045E:0700.0001/input/input1
Connection successful
[bhid-generic 0005:045E:0700.0001: input: BLUETOOTH HID v1.00 Mouse [Microsoft Bluetooth Notebook Mouse 5000] on 50:72:24:11:ef:b0
[bluetooth]# quit
[DEL] Controller 50:72:24:11:EF:B0 BlueZ 5.28 [default]
root@varsomam33:~#
Connecting to BLE devices¶
Connecting to BLE devices requires different command sequence. The btmgmt tool is used to scan for LE devices and report MAC address type (random vs public).
$ btmgmt find
Copy MAC address of LE device, use "-t random" gatttool parameter if scan reports random MAC address.
$ gatttool -b <MAC> [-t random] -I
For example when connecting to "BLE Peripheral Simulator" on Android phone the following is done:
root@varsomam33:~# btmgmt find
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 dev_found: 00:1A:7D:DA:71:0B type BR/EDR rssi -79 flags 0x0000
name SMTBT
hci0 dev_found: 00:1A:7D:DA:71:11 type BR/EDR rssi -96 flags 0x0001
eir_len 5
confirm_name succeeded for 00:1A:7D:DA:71:11
hci0 type 7 discovering off
root@varsomam33:~# 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]>