I'm trying to connect to a BLE device (Heart rate sensor, Polar H7), on a Raspberry Pi 2. I use the last version of bluez (5.35) found here: http://www.bluez.org/download/
But when I'm trying to connect using gatttool
, I always have "connection refused" error.
Here is what I do :
pi@raspberrypi ~ $ sudo su
root@raspberrypi:/home/pi# hciconfig dev
hci0: Type: BR/EDR Bus: USB
BD Address: 5C:F3:70:69:54:3D ACL MTU: 1021:8 SCO MTU: 64:1
DOWN
RX bytes:616 acl:0 sco:0 events:34 errors:0
TX bytes:380 acl:0 sco:0 commands:34 errors:0
root@raspberrypi:/home/pi# hciconfig dev up
root@raspberrypi:/home/pi# hcitool lescan
LE Scan ...
00:22:D0:6D:E0:E6 (unknown)
00:22:D0:6D:E0:E6 Polar H7 6DE0E61C
^Croot@raspberrypi:/home/pi# hcitool lecc 00:22:D0:6D:E0:E6
Connection handle 64
root@raspberrypi:/home/pi# gatttool -b 00:22:D0:6D:E0:E6 -I
[00:22:D0:6D:E0:E6][LE]> connect
Attempting to connect to 00:22:D0:6D:E0:E6
Error connect: Connection refused (111)
[00:22:D0:6D:E0:E6][LE]>
I tried to follow this topic: BLE gatttool cannot connect even though device is discoverable with hcitool lescan but it did not work for me.
I had to disable the plugin
pnat
in/etc/bluetooth/main.conf
->DisablePlugins=pnat
. I read that it's unstable, but I don't know much about this plugin.If you are still wondering why the random worked. I have gone through the code and this what I found.
(Source)
I was able to connect via
Bluetooth
fromRaspberry
to myAndroid
device by setting theLE address type
torandom
using the-t random
argument, i.e. :From
gatttool
manYou could try to use
gatttool -b 00:22:D0:6D:E0:E6 -I
and then connect, just after discovering the MAC without connecting before withhcitool lecc 00:22:D0:6D:E0:E6
By default GATT is not enable. Add the below lines to /etc/bluetooth/main.conf