This page lists the different operations needed to scan, connect and display BLE device information. BLE stands for Bluetooth Low Energy
1. Packages needed[edit source]
- bluez5
- bluez5-noinst-tools (if you need gatttool)
2. Configuration[edit source]
Init file modification for automatic Bluetooth start
/etc/udev/rules.d/10-local.rules:
# Set bluetooth power up ACTION=="add", KERNEL=="hci0", RUN+="/usr/bin/hciconfig hci0 up"
3. Existing tool selection[edit source]
Bluez provides some tools, by default, to analyze Bluetooth networks.
hciconfig to configure hci connections
hcitool to scan, find a device, connect to a device, manage a device list.. deviceS may be normal or low energy
gatttool for BLE device management
3.1. BLE device connection step-by-step[edit source]
Command to scan all low-energy Bluetooth hardware:
hciconfig hci0 up hcitool lescan
To scan available BLE devices:
hcitool lewladd <BLE_MAC_ADDRRESS>
To add BLE device in the white list (optional):
hcitool lecc <BLE_MAC_ADDRESS>
To connect a BLE device:
Once a BLE device is identified, its characteristics (attibutes) can be discovered, read and modified using GATTTOOL.
GATTTOOL offers two working modes: interractive and non-interractive
3.1.1. Gatttool Interractive mode[edit source]
gatttool -b <MAC Address> --interactive
In interractive mode, a new prompt is available to perform BLE commands.
connect: to connect to a specified device
primary: to disable all primary attributes
char-read-hnd <handle> to read specified handle/attribute values
char-write-cmd <handle> <value> to modify handle values
3.1.2. Gatttool Non-interractive mode:[edit source]
In non-interractive mode, commands are issued one by one. At each command, GATTTOOL performs device connection, action and disconnection.
Few a few examples are given below:
gatttool -b <Mac Address> --primary
gatttool -b <MAC Address> --characteristics
gatttool -b <MAC Address> --char-read
gatttool -b <MAC Address> --char-desc