Cannot connect to BLE device on Raspberry Pi
Solution 1
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.
Solution 2
I was able to connect via Bluetooth
from Raspberry
to my Android
device using gatttool
after setting the LE address type
to random
with the -t random
argument, i.e. :
sudo gatttool -t random -b DD:9D:0B:43:A1:77 -I
connect
From gatttool
man
--t, ---addr-type=[public | random]
# Set LE address type. Default: public
USAGE gatttool [OPTION...]
Help Options:
-h, --help Show help options
-h, --help Show help options
--help-all Show all help options
--help-gatt Show all GATT commands
--help-params Show all Primary Services/Characteristics
arguments
--help-char-read-write Show all Characteristics Value/Descriptor
Read/Write arguments
Application Options:
--i, ---adapter=hciX Specify local adapter interface
--b, ---device=MAC Specify remote Bluetooth address
--t, ---addr-type=[public | random] Set LE address type. Default: public
--m, ---mtu=MTU Specify the MTU size
--p, ---psm=PSM Specify the PSM for GATT/ATT over BR/EDR
--l, ---sec-level=[low | medium | high] Set security level. Default: low
--I, ---interactive Use interactive mode
Solution 3
By default GATT is not enable. Add the below lines to /etc/bluetooth/main.conf
EnableLE = true // Enable Low Energy support. Default is false.
AttributeServer = true // Enable the GATT attribute server. Default is false.
Solution 4
I got it running with:
btmgmt le on
Solution 5
Fixed the connection refused (111) issue in my raspberry pi 3B running raspbian buster by Updating/installing BlueZ via apt-get
> sudo apt-get install --no-install-recommends bluetooth
and re running
> sudo gatttool -t random -b E9:1C:89:B7:16:F9 -I
palador
Updated on July 25, 2022Comments
-
palador almost 2 years
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.
-
Pedro Lobito over 5 yearsA link as comment on my answer would be more appropriate than creating a new answer.
-
Panossa almost 2 yearsWhat if someone did all of the things in this post? Turning on BLE, using -t random and the connection is still refused? Asking for a friend.