- Last edited one year ago ago
How to scan BLE devices
This page lists the different operations needed to scan, connect and display BLE device information. BLE stands for Bluetooth Low Energy
Contents
1 Packages needed[edit]
- bluez5
2 Configuration[edit]
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]
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]
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]
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]
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