Skip to contentSkip to conversation

Bluez with Raspberry Pi for BLE

DISCUSSION Mike 2 participants 3 messages Sep 13, 2015 – Sep 19, 2015 Bluetooth drivers

lore
Share & tools
lore

Mike

author
#0 lore raw

Hi,

I am trying to get my RPi to work with BLE. I downloaded and compiled bluez-5.34.tar.xz.

uname -a says: Linux raspberry 4.1.6-v7+ #810 SMP PREEMPT Tue Aug 18 15:32:12 BST 2015 armv7l GNU/Linux

My BLE-stick is recognized and hci0 is up and running. I can scan for advertising peripherals with "sudo hcitool lescan". This works. But if I try to connect to a peripheral I always get Connection refused (111). So I looked at the output of hcidump and found that after the connection is completed, I get disconnected by remote.

< HCI Command: LE Create Connection (0x08|0x000d) plen 25
bdaddr 34:B1:F7:D4:FE:F3 type 0
interval 4 window 4 initiator_filter 0 own_bdaddr_type 0 min_interval 15 max_interval 15 latency 0 supervision_to 3200 min_ce 1 max_ce 1

Quoted 1 line

HCI Event: Command Status (0x0f) plen 4

    LE Create Connection (0x08|0x000d) status 0x00 ncmd 1
Quoted 1 line

HCI Event: LE Meta Event (0x3e) plen 19

    LE Connection Complete
      status 0x00 handle 72, role master
      bdaddr 34:B1:F7:D4:FE:F3 (Public)

< HCI Command: LE Read Remote Used Features (0x08|0x0016) plen 2
0000: 48 00 H.

Quoted 1 line

HCI Event: Command Status (0x0f) plen 4

    LE Read Remote Used Features (0x08|0x0016) status 0x00 ncmd 1
Quoted 1 line

HCI Event: LE Meta Event (0x3e) plen 12

    LE Read Remote Used Features Complete
      status 0x00 handle 72
      Features: 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00

< HCI Command: Disconnect (0x01|0x0006) plen 3
handle 72 reason 0x13
Reason: Remote User Terminated Connection

Quoted 1 line

HCI Event: Command Status (0x0f) plen 4

    Disconnect (0x01|0x0006) status 0x00 ncmd 1
Quoted 1 line

HCI Event: Disconn Complete (0x05) plen 4

status 0x00 handle 72 reason 0x16
Reason: Connection Terminated by Local Host

I tried three different peripherals and I always get "Connection refused (111)". Any ideas would be appreciated.

Best regards,
Mike

#1 lore raw

Hi Mike,

Quoted 5 lines · Mike

Hi,

I am trying to get my RPi to work with BLE. I downloaded and compiled bluez-5.34.tar.xz.

Quoted 8 lines

uname -a says: Linux raspberry 4.1.6-v7+ #810 SMP PREEMPT Tue Aug 18 15:32:12 BST 2015 armv7l GNU/Linux

My BLE-stick is recognized and hci0 is up and running. I can scan for advertising peripherals with "sudo hcitool lescan". This works. But if I try to connect to a peripheral I always get Connection refused (111). So I looked at the output of hcidump and found that after the connection is completed, I get disconnected by remote.

If you are running bluetoothd using hcitool is _not_ recommended, please use bluetoothctl instead.

Note: Requiring root access should already warn you about that.

Quoted 22 lines

< HCI Command: LE Create Connection (0x08|0x000d) plen 25
bdaddr 34:B1:F7:D4:FE:F3 type 0
interval 4 window 4 initiator_filter 0 own_bdaddr_type 0 min_interval 15 max_interval 15 latency 0 supervision_to 3200 min_ce 1 max_ce 1

Quoted 1 line

HCI Event: Command Status (0x0f) plen 4

    LE Create Connection (0x08|0x000d) status 0x00 ncmd 1
Quoted 1 line

HCI Event: LE Meta Event (0x3e) plen 19

    LE Connection Complete
      status 0x00 handle 72, role master
      bdaddr 34:B1:F7:D4:FE:F3 (Public)

< HCI Command: LE Read Remote Used Features (0x08|0x0016) plen 2
0000: 48 00 H.

Quoted 1 line

HCI Event: Command Status (0x0f) plen 4

    LE Read Remote Used Features (0x08|0x0016) status 0x00 ncmd 1
Quoted 1 line

HCI Event: LE Meta Event (0x3e) plen 12

    LE Read Remote Used Features Complete
      status 0x00 handle 72
      Features: 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00

< HCI Command: Disconnect (0x01|0x0006) plen 3
handle 72 reason 0x13
Reason: Remote User Terminated Connection

Quoted 8 lines
Quoted 1 line

HCI Event: Command Status (0x0f) plen 4

    Disconnect (0x01|0x0006) status 0x00 ncmd 1
Quoted 1 line

HCI Event: Disconn Complete (0x05) plen 4

status 0x00 handle 72 reason 0x16
Reason: Connection Terminated by Local Host

I tried three different peripherals and I always get "Connection refused (111)". Any ideas would be appreciated.

Perhaps are not running bluetoothd or any other tool to keep the connection alive, try starting bluetoothd and use bluetoothctl, in addition you can use org.bluez.GattManager1.RegisterProfile to mark the device to auto connect (passive scanning):

https://git.kernel.org/cgit/bluetooth/bluez.git/tree/doc/gatt-api.txt

or using the python test script:

https://git.kernel.org/cgit/bluetooth/bluez.git/tree/test/test-gatt-profile

Signature · 1 line
Luiz Augusto von Dentz
author
#2 lore raw

Hi Luiz,

it works now. Thank you!

BR
Mike

Am 14.09.2015 um 14:39 schrieb Luiz Augusto von Dentz:

Quoted 66 lines

Hi Mike,

Quoted 5 lines · Mike

Hi,

I am trying to get my RPi to work with BLE. I downloaded and compiled bluez-5.34.tar.xz.

Quoted 8 lines

uname -a says: Linux raspberry 4.1.6-v7+ #810 SMP PREEMPT Tue Aug 18 15:32:12 BST 2015 armv7l GNU/Linux

My BLE-stick is recognized and hci0 is up and running. I can scan for advertising peripherals with "sudo hcitool lescan". This works. But if I try to connect to a peripheral I always get Connection refused (111). So I looked at the output of hcidump and found that after the connection is completed, I get disconnected by remote.

If you are running bluetoothd using hcitool is _not_ recommended, please use bluetoothctl instead.

Note: Requiring root access should already warn you about that.

Quoted 22 lines

< HCI Command: LE Create Connection (0x08|0x000d) plen 25
bdaddr 34:B1:F7:D4:FE:F3 type 0
interval 4 window 4 initiator_filter 0 own_bdaddr_type 0 min_interval 15 max_interval 15 latency 0 supervision_to 3200 min_ce 1 max_ce 1

Quoted 1 line

HCI Event: Command Status (0x0f) plen 4

    LE Create Connection (0x08|0x000d) status 0x00 ncmd 1
Quoted 1 line

HCI Event: LE Meta Event (0x3e) plen 19

    LE Connection Complete
      status 0x00 handle 72, role master
      bdaddr 34:B1:F7:D4:FE:F3 (Public)

< HCI Command: LE Read Remote Used Features (0x08|0x0016) plen 2
0000: 48 00 H.

Quoted 1 line

HCI Event: Command Status (0x0f) plen 4

    LE Read Remote Used Features (0x08|0x0016) status 0x00 ncmd 1
Quoted 1 line

HCI Event: LE Meta Event (0x3e) plen 12

    LE Read Remote Used Features Complete
      status 0x00 handle 72
      Features: 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00

< HCI Command: Disconnect (0x01|0x0006) plen 3
handle 72 reason 0x13
Reason: Remote User Terminated Connection

Quoted 8 lines
Quoted 1 line

HCI Event: Command Status (0x0f) plen 4

    Disconnect (0x01|0x0006) status 0x00 ncmd 1
Quoted 1 line

HCI Event: Disconn Complete (0x05) plen 4

status 0x00 handle 72 reason 0x16
Reason: Connection Terminated by Local Host

I tried three different peripherals and I always get "Connection refused (111)". Any ideas would be appreciated.

Perhaps are not running bluetoothd or any other tool to keep the connection alive, try starting bluetoothd and use bluetoothctl, in addition you can use org.bluez.GattManager1.RegisterProfile to mark the device to auto connect (passive scanning):

https://git.kernel.org/cgit/bluetooth/bluez.git/tree/doc/gatt-api.txt

or using the python test script:

https://git.kernel.org/cgit/bluetooth/bluez.git/tree/test/test-gatt-profile