2

I have a new buster image:

Linux stereo 5.10.17+ #1414 Fri Apr 30 13:16:27 BST 2021 armv6l GNU/Linux

I did update bluez to it to bluez 5.52. What is already interesting is the fact that I have the following entry in my /var/log/syslog:

Jun 30 23:15:09 stereopida bluetoothd[557]: Bluetooth daemon 5.50

That seems to indicate that the 5.50 version that was previously installed is still lingering around.

I did this same setup on other machines and there and then I could get it to work but this time there seems to be a problem.

Now using bluetoothctl I can see my device and pair it but the connection is instantly dropped:

[bluetooth]# trust 84:EB:18:0C:92:0F 
Changing 84:EB:18:0C:92:0F trust succeeded
[bluetooth]# pair 84:EB:18:0C:92:0F 
Attempting to pair with 84:EB:18:0C:92:0F
[CHG] Device 84:EB:18:0C:92:0F Connected: yes
Failed to pair: org.bluez.Error.AuthenticationFailed
[CHG] Device 84:EB:18:0C:92:0F Connected: no
[bluetooth]# connect 84:EB:18:0C:92:0F 
Attempting to connect to 84:EB:18:0C:92:0F
[CHG] Device 84:EB:18:0C:92:0F Connected: yes
Failed to connect: org.bluez.Error.Failed
[CHG] Device 84:EB:18:0C:92:0F Connected: no

When I check in the logs I do see the following:

Jun 30 23:15:53 stereopida bluetoothd[567]: src/device.c:bonding_request_new() Requesting bonding for 84:EB:18:0C:92:0F
Jun 30 23:15:53 stereopida bluetoothd[567]: src/agent.c:agent_ref() 0x7b62b0: ref=3
Jun 30 23:15:53 stereopida bluetoothd[567]: src/agent.c:agent_unref() 0x7b62b0: ref=2
Jun 30 23:15:53 stereopida bluetoothd[567]: src/adapter.c:suspend_discovery() 
Jun 30 23:15:53 stereopida bluetoothd[567]: src/adapter.c:adapter_bonding_attempt() hci0 bdaddr 84:EB:18:0C:92:0F type 1 io_cap 0x04
Jun 30 23:15:55 stereopida bluetoothd[567]: src/adapter.c:connected_callback() hci0 device 84:EB:18:0C:92:0F connected eir_len 13
Jun 30 23:15:55 stereopida bluetoothd[567]: src/adapter.c:pair_device_complete() Failed (0x03)
Jun 30 23:15:55 stereopida bluetoothd[567]: src/adapter.c:bonding_attempt_complete() hci0 bdaddr 84:EB:18:0C:92:0F type 1 status 0x3
Jun 30 23:15:55 stereopida bluetoothd[567]: src/device.c:device_bonding_complete() bonding 0x7ba428 status 0x03
Jun 30 23:15:55 stereopida bluetoothd[567]: src/device.c:device_bonding_failed() status 3
Jun 30 23:15:55 stereopida bluetoothd[567]: src/agent.c:agent_unref() 0x7b62b0: ref=1
Jun 30 23:15:55 stereopida bluetoothd[567]: src/adapter.c:resume_discovery() 
Jun 30 23:15:55 stereopida bluetoothd[567]: src/adapter.c:dev_disconnected() Device 84:EB:18:0C:92:0F disconnected, reason 0
Jun 30 23:15:55 stereopida bluetoothd[567]: src/adapter.c:adapter_remove_connection() 
Jun 30 23:15:55 stereopida bluetoothd[567]: plugins/policy.c:disconnect_cb() reason 0
Jun 30 23:15:55 stereopida bluetoothd[567]: src/adapter.c:bonding_attempt_complete() hci0 bdaddr 84:EB:18:0C:92:0F type 1 status 0xe
Jun 30 23:15:55 stereopida bluetoothd[567]: src/device.c:device_bonding_complete() bonding (nil) status 0x0e
Jun 30 23:15:55 stereopida bluetoothd[567]: src/device.c:device_bonding_failed() status 14
Jun 30 23:15:55 stereopida bluetoothd[567]: src/adapter.c:resume_discovery() 
Jun 30 23:16:04 stereopida bluetoothd[567]: src/device.c:device_connect_le() Connection attempt to: 84:EB:18:0C:92:0F
Jun 30 23:16:08 stereopida systemd[1]: systemd-hostnamed.service: Succeeded.
Jun 30 23:16:09 stereopida bluetoothd[567]: src/adapter.c:connected_callback() hci0 device 84:EB:18:0C:92:0F connected eir_len 13
Jun 30 23:16:09 stereopida bluetoothd[567]: src/device.c:att_connect_cb() connect error: Function not implemented (38)
Jun 30 23:16:09 stereopida bluetoothd[567]: src/adapter.c:dev_disconnected() Device 84:EB:18:0C:92:0F disconnected, reason 0
Jun 30 23:16:09 stereopida bluetoothd[567]: src/adapter.c:adapter_remove_connection() 
Jun 30 23:16:09 stereopida bluetoothd[567]: plugins/policy.c:disconnect_cb() reason 0
Jun 30 23:16:09 stereopida bluetoothd[567]: src/adapter.c:bonding_attempt_complete() hci0 bdaddr 84:EB:18:0C:92:0F type 1 status 0xe
Jun 30 23:16:09 stereopida bluetoothd[567]: src/device.c:device_bonding_complete() bonding (nil) status 0x0e
Jun 30 23:16:09 stereopida bluetoothd[567]: src/device.c:device_bonding_failed() status 14
Jun 30 23:16:09 stereopida bluetoothd[567]: src/adapter.c:resume_discovery() 
Jun 30 23:16:15 stereopida bluetoothd[567]: src/agent.c:agent_disconnect() Agent :1.20 disconnected
Jun 30 23:16:15 stereopida bluetoothd[567]: src/agent.c:agent_destroy() agent :1.20
Jun 30 23:16:15 stereopida bluetoothd[567]: src/agent.c:agent_unref() 0x7b62b0: ref=0

In my /etc/bluetooth/main.conf file I did make the following changes:

DiscoverableTimeout = 0
PairableTimeout = 0
ControllerMode = le
Privacy = off

The ExecStart part of my bluetooth.service I did change to this:

ExecStart=/usr/lib/bluetooth/bluetoothd --noplugin=sap -E 

Gatttool

sudo gatttool -b 84:EB:18:0C:92:0F --interactive
[84:EB:18:0C:92:0F][LE]> connect
Attempting to connect to 84:EB:18:0C:92:0F
Error: connect error: Function not implemented (38)

Btmon

As I connected using Gattool this was the output of sudo btmon

 sudo btmon
Bluetooth monitor ver 5.52
= Note: Linux version 5.10.17+ (armv6l)                                                                                                                                                            0.137356
= Note: Bluetooth subsystem version 2.22                                                                                                                                                           0.137373
= New Index: B8:27:EB:BD:CA:1B (Primary,UART,hci0)                                                                                                                                          [hci0] 0.137378
= Open Index: B8:27:EB:BD:CA:1B                                                                                                                                                             [hci0] 0.137386
= Index Info: B8:27:EB:BD:CA:1B (Broadcom Corporation)                                                                                                                                      [hci0] 0.137390
@ MGMT Open: bluetoothd (privileged) version 1.18                                                                                                                                         {0x0001} 0.137396
@ MGMT Open: btmon (privileged) version 1.18                                                                                                                                              {0x0002} 0.139895
< HCI Command: LE Set Scan Parameters (0x08|0x000b) plen 7                                                                                                                               #1 [hci0] 9.320332
        Type: Passive (0x00)
        Interval: 60.000 msec (0x0060)
        Window: 60.000 msec (0x0060)
        Own address type: Public (0x00)
        Filter policy: Ignore not in white list (0x01)
> HCI Event: Command Complete (0x0e) plen 4                                                                                                                                              #2 [hci0] 9.321695
      LE Set Scan Parameters (0x08|0x000b) ncmd 1
        Status: Success (0x00)
< HCI Command: LE Set Scan Enable (0x08|0x000c) plen 2                                                                                                                                   #3 [hci0] 9.321835
        Scanning: Enabled (0x01)
        Filter duplicates: Enabled (0x01)
> HCI Event: Command Complete (0x0e) plen 4                                                                                                                                              #4 [hci0] 9.324626
      LE Set Scan Enable (0x08|0x000c) ncmd 1
        Status: Success (0x00)
> HCI Event: LE Meta Event (0x3e) plen 25                                                                                                                                               #5 [hci0] 11.847196
      LE Advertising Report (0x02)
        Num reports: 1
        Event type: Connectable undirected - ADV_IND (0x00)
        Address type: Public (0x00)
        Address: 84:EB:18:0C:92:0F (Texas Instruments)
        Data length: 13
        Flags: 0x05
          LE Limited Discoverable Mode
          BR/EDR Not Supported
        Appearance: Human Interface Device (0x03c0)
        16-bit Service UUIDs (partial): 2 entries
          Human Interface Device (0x1812)
          Battery Service (0x180f)
        RSSI: -72 dBm (0xb8)
< HCI Command: LE Set Scan Enable (0x08|0x000c) plen 2                                                                                                                                  #6 [hci0] 11.847369
        Scanning: Disabled (0x00)
        Filter duplicates: Disabled (0x00)
> HCI Event: Command Complete (0x0e) plen 4                                                                                                                                             #7 [hci0] 11.851192
      LE Set Scan Enable (0x08|0x000c) ncmd 1
        Status: Success (0x00)
< HCI Command: LE Create Connection (0x08|0x000d) plen 25                                                                                                                               #8 [hci0] 11.851310
        Scan interval: 60.000 msec (0x0060)
        Scan window: 60.000 msec (0x0060)
        Filter policy: White list is not used (0x00)
        Peer address type: Public (0x00)
        Peer address: 84:EB:18:0C:92:0F (Texas Instruments)
        Own address type: Public (0x00)
        Min connection interval: 30.00 msec (0x0018)
        Max connection interval: 50.00 msec (0x0028)
        Connection latency: 0 (0x0000)
        Supervision timeout: 420 msec (0x002a)
        Min connection length: 0.000 msec (0x0000)
        Max connection length: 0.000 msec (0x0000)
> HCI Event: Command Status (0x0f) plen 4                                                                                                                                               #9 [hci0] 11.852722
      LE Create Connection (0x08|0x000d) ncmd 1
        Status: Success (0x00)
> HCI Event: LE Meta Event (0x3e) plen 19                                                                                                                                              #10 [hci0] 11.869896
      LE Connection Complete (0x01)
        Status: Success (0x00)
        Handle: 64
        Role: Master (0x00)
        Peer address type: Public (0x00)
        Peer address: 84:EB:18:0C:92:0F (Texas Instruments)
        Connection interval: 48.75 msec (0x0027)
        Connection latency: 0 (0x0000)
        Supervision timeout: 420 msec (0x002a)
        Master clock accuracy: 0x00
@ MGMT Event: Device Connected (0x000b) plen 26                                                                                                                                   {0x0002} [hci0] 11.869988
        LE Address: 84:EB:18:0C:92:0F (Texas Instruments)
        Flags: 0x00000000
        Data length: 13
        Flags: 0x05
          LE Limited Discoverable Mode
          BR/EDR Not Supported
        Appearance: Human Interface Device (0x03c0)
        16-bit Service UUIDs (partial): 2 entries
          Human Interface Device (0x1812)
          Battery Service (0x180f)
@ MGMT Event: Device Connected (0x000b) plen 26                                                                                                                                   {0x0001} [hci0] 11.869988
        LE Address: 84:EB:18:0C:92:0F (Texas Instruments)
        Flags: 0x00000000
        Data length: 13
        Flags: 0x05
          LE Limited Discoverable Mode
          BR/EDR Not Supported
        Appearance: Human Interface Device (0x03c0)
        16-bit Service UUIDs (partial): 2 entries
          Human Interface Device (0x1812)
          Battery Service (0x180f)
< HCI Command: LE Read Remote Used Features (0x08|0x0016) plen 2                                                                                                                       #11 [hci0] 11.870350
        Handle: 64
> HCI Event: Command Status (0x0f) plen 4                                                                                                                                              #12 [hci0] 11.877612
      LE Read Remote Used Features (0x08|0x0016) ncmd 1
        Status: Success (0x00)
> HCI Event: LE Meta Event (0x3e) plen 12                                                                                                                                              #13 [hci0] 12.210580
      LE Read Remote Used Features (0x04)
        Status: Connection Failed to be Established (0x3e)
        Handle: 64
        Features: 0x1f 0x00 0x00 0x08 0x00 0x00 0x00 0x00
          LE Encryption
          Connection Parameter Request Procedure
          Extended Reject Indication
          Slave-initiated Features Exchange
          LE Ping
          Remote Public Key Validation
< HCI Command: Disconnect (0x01|0x0006) plen 3                                                                                                                                         #14 [hci0] 12.210756
        Handle: 64
        Reason: Remote User Terminated Connection (0x13)
> HCI Event: Disconnect Complete (0x05) plen 4                                                                                                                                         #15 [hci0] 12.214327
        Status: Success (0x00)
        Handle: 64
        Reason: Connection Failed to be Established (0x3e)
@ MGMT Event: Device Disconnected (0x000c) plen 8                                                                                                                                 {0x0002} [hci0] 12.214426
        LE Address: 84:EB:18:0C:92:0F (Texas Instruments)
        Reason: Unspecified (0x00)
@ MGMT Event: Device Disconnected (0x000c) plen 8                                                                                                                                 {0x0001} [hci0] 12.214426
        LE Address: 84:EB:18:0C:92:0F (Texas Instruments)
        Reason: Unspecified (0x00)
> HCI Event: Command Status (0x0f) plen 4                                                                                                                                              #16 [hci0] 12.214351
      Disconnect (0x01|0x0006) ncmd 1
        Status: Invalid HCI Command Parameters (0x12)

Update 2: Using DBUS

I tried to connect using the dbus-python-script but I got the error:

Creating device failed: org.bluez.Error.AuthenticationFailed

This is the btmon output of that attempt:

$ sudo btmon
Bluetooth monitor ver 5.52
= Note: Linux version 5.10.17+ (armv6l)                                                     0.495323
= Note: Bluetooth subsystem version 2.22                                                    0.495341
= New Index: B8:27:EB:BD:CA:1B (Primary,UART,hci0)                                   [hci0] 0.495350
= Open Index: B8:27:EB:BD:CA:1B                                                      [hci0] 0.495355
= Index Info: B8:27:EB:BD:CA:1B (Broadcom Corporation)                               [hci0] 0.495361
@ MGMT Open: bluetoothd (privileged) version 1.18                                  {0x0001} 0.495370
@ MGMT Open: btmon (privileged) version 1.18                                       {0x0002} 0.495742
@ MGMT Command: Pair Device (0x0019) plen 8                                 {0x0001} [hci0] 7.479710
        LE Address: 84:EB:18:0C:92:0F (Texas Instruments)
        Capability: KeyboardDisplay (0x04)
< HCI Command: LE Set Scan Parameters (0x08|0x000b) plen 7                        #1 [hci0] 7.482368
        Type: Passive (0x00)
        Interval: 60.000 msec (0x0060)
        Window: 60.000 msec (0x0060)
        Own address type: Public (0x00)
        Filter policy: Ignore not in white list (0x01)
> HCI Event: Command Complete (0x0e) plen 4                                       #2 [hci0] 7.482814
      LE Set Scan Parameters (0x08|0x000b) ncmd 1
        Status: Success (0x00)
< HCI Command: LE Set Scan Enable (0x08|0x000c) plen 2                            #3 [hci0] 7.482909
        Scanning: Enabled (0x01)
        Filter duplicates: Enabled (0x01)
> HCI Event: Command Complete (0x0e) plen 4                                       #4 [hci0] 7.483658
      LE Set Scan Enable (0x08|0x000c) ncmd 1
        Status: Success (0x00)
> HCI Event: LE Meta Event (0x3e) plen 25                                         #5 [hci0] 7.501439
      LE Advertising Report (0x02)
        Num reports: 1
        Event type: Connectable undirected - ADV_IND (0x00)
        Address type: Public (0x00)
        Address: 84:EB:18:0C:92:0F (Texas Instruments)
        Data length: 13
        Flags: 0x05
          LE Limited Discoverable Mode
          BR/EDR Not Supported
        Appearance: Human Interface Device (0x03c0)
        16-bit Service UUIDs (partial): 2 entries
          Human Interface Device (0x1812)
          Battery Service (0x180f)
        RSSI: -55 dBm (0xc9)
< HCI Command: LE Set Scan Enable (0x08|0x000c) plen 2                            #6 [hci0] 7.501585
        Scanning: Disabled (0x00)
        Filter duplicates: Disabled (0x00)
> HCI Event: Command Complete (0x0e) plen 4                                       #7 [hci0] 7.505073
      LE Set Scan Enable (0x08|0x000c) ncmd 1
        Status: Success (0x00)
< HCI Command: LE Create Connection (0x08|0x000d) plen 25                         #8 [hci0] 7.505187
        Scan interval: 60.000 msec (0x0060)
        Scan window: 60.000 msec (0x0060)
        Filter policy: White list is not used (0x00)
        Peer address type: Public (0x00)
        Peer address: 84:EB:18:0C:92:0F (Texas Instruments)
        Own address type: Public (0x00)
        Min connection interval: 30.00 msec (0x0018)
        Max connection interval: 50.00 msec (0x0028)
        Connection latency: 0 (0x0000)
        Supervision timeout: 420 msec (0x002a)
        Min connection length: 0.000 msec (0x0000)
        Max connection length: 0.000 msec (0x0000)
> HCI Event: Command Status (0x0f) plen 4                                         #9 [hci0] 7.505940
      LE Create Connection (0x08|0x000d) ncmd 1
        Status: Success (0x00)
> HCI Event: LE Meta Event (0x3e) plen 19                                        #10 [hci0] 7.525258
      LE Connection Complete (0x01)
        Status: Success (0x00)
        Handle: 64
        Role: Master (0x00)
        Peer address type: Public (0x00)
        Peer address: 84:EB:18:0C:92:0F (Texas Instruments)
        Connection interval: 48.75 msec (0x0027)
        Connection latency: 0 (0x0000)
        Supervision timeout: 420 msec (0x002a)
        Master clock accuracy: 0x00
@ MGMT Event: Device Connected (0x000b) plen 26                             {0x0002} [hci0] 7.525347
        LE Address: 84:EB:18:0C:92:0F (Texas Instruments)
        Flags: 0x00000000
        Data length: 13
        Flags: 0x05
          LE Limited Discoverable Mode
          BR/EDR Not Supported
        Appearance: Human Interface Device (0x03c0)
        16-bit Service UUIDs (partial): 2 entries
          Human Interface Device (0x1812)
          Battery Service (0x180f)
@ MGMT Event: Device Connected (0x000b) plen 26                             {0x0001} [hci0] 7.525347
        LE Address: 84:EB:18:0C:92:0F (Texas Instruments)
        Flags: 0x00000000
        Data length: 13
        Flags: 0x05
          LE Limited Discoverable Mode
          BR/EDR Not Supported
        Appearance: Human Interface Device (0x03c0)
        16-bit Service UUIDs (partial): 2 entries
          Human Interface Device (0x1812)
          Battery Service (0x180f)
< HCI Command: LE Read Remote Used Features (0x08|0x0016) plen 2                 #11 [hci0] 7.525694
        Handle: 64
> HCI Event: Command Status (0x0f) plen 4                                        #12 [hci0] 7.527893
      LE Read Remote Used Features (0x08|0x0016) ncmd 1
        Status: Success (0x00)
> HCI Event: LE Meta Event (0x3e) plen 12                                        #13 [hci0] 7.837849
      LE Read Remote Used Features (0x04)
        Status: Connection Failed to be Established (0x3e)
        Handle: 64
        Features: 0x1f 0x00 0x00 0x08 0x00 0x00 0x00 0x00
          LE Encryption
          Connection Parameter Request Procedure
          Extended Reject Indication
          Slave-initiated Features Exchange
          LE Ping
          Remote Public Key Validation
@ MGMT Event: Command Complete (0x0001) plen 10                             {0x0001} [hci0] 7.837949
      Pair Device (0x0019) plen 7
        Status: Failed (0x03)
        LE Address: 84:EB:18:0C:92:0F (Texas Instruments)
> HCI Event: Disconnect Complete (0x05) plen 4                                   #14 [hci0] 7.843837
        Status: Success (0x00)
        Handle: 64
        Reason: Connection Failed to be Established (0x3e)
@ MGMT Event: Device Disconnected (0x000c) plen 8                           {0x0002} [hci0] 7.843928
        LE Address: 84:EB:18:0C:92:0F (Texas Instruments)
        Reason: Unspecified (0x00)
@ MGMT Event: Device Disconnected (0x000c) plen 8                           {0x0001} [hci0] 7.843928
        LE Address: 84:EB:18:0C:92:0F (Texas Instruments)
        Reason: Unspecified (0x00)

hcidump

sudo hcidump
HCI sniffer - Bluetooth packet analyzer ver 5.50
device: hci0 snap_len: 1500 filter: 0xffffffff
< HCI Command: LE Set Scan Parameters (0x08|0x000b) plen 7
    type 0x00 (passive)
    interval 60.000ms window 60.000ms
    own address: 0x00 (Public) policy: white list only
> HCI Event: Command Complete (0x0e) plen 4
    LE Set Scan Parameters (0x08|0x000b) ncmd 1
    status 0x00
< HCI Command: LE Set Scan Enable (0x08|0x000c) plen 2
    value 0x01 (scanning enabled)
    filter duplicates 0x01 (enabled)
> HCI Event: Command Complete (0x0e) plen 4
    LE Set Scan Enable (0x08|0x000c) ncmd 1
    status 0x00
> HCI Event: LE Meta Event (0x3e) plen 25
    LE Advertising Report
      ADV_IND - Connectable undirected advertising (0)
      bdaddr 84:EB:18:0C:92:0F (Public)
      Flags: 0x05
      Unknown type 0x19 with 2 bytes data
      Shortened service classes: 0x1812 0x180f
      RSSI: -74
< HCI Command: LE Set Scan Enable (0x08|0x000c) plen 2
    value 0x00 (scanning disabled)
    filter duplicates 0x00 (disabled)
> HCI Event: Command Complete (0x0e) plen 4
    LE Set Scan Enable (0x08|0x000c) ncmd 1
    status 0x00
< HCI Command: LE Create Connection (0x08|0x000d) plen 25
    bdaddr 84:EB:18:0C:92:0F type 0
    interval 96 window 96 initiator_filter 0
    own_bdaddr_type 0 min_interval 24 max_interval 40
    latency 0 supervision_to 42 min_ce 0 max_ce 0
> HCI Event: Command Status (0x0f) plen 4
    LE Create Connection (0x08|0x000d) status 0x00 ncmd 1
> HCI Event: LE Meta Event (0x3e) plen 19
    LE Connection Complete
      status 0x00 handle 64, role master
      bdaddr 84:EB:18:0C:92:0F (Public)
< HCI Command: LE Read Remote Used Features (0x08|0x0016) plen 2
> HCI Event: Command Status (0x0f) plen 4
    LE Read Remote Used Features (0x08|0x0016) status 0x00 ncmd 1
> HCI Event: LE Meta Event (0x3e) plen 12
    LE Read Remote Used Features Complete
      status 0x3e handle 64
      Error: Connection Failed to be Established
< HCI Command: Disconnect (0x01|0x0006) plen 3
    handle 64 reason 0x13
    Reason: Remote User Terminated Connection
> HCI Event: Disconn Complete (0x05) plen 4
    status 0x00 handle 64 reason 0x3e
    Reason: Connection Failed to be Established
> HCI Event: Command Status (0x0f) plen 4
    Disconnect (0x01|0x0006) status 0x12 ncmd 1
    Error: Invalid HCI Command Parameters
Besi
  • 22,579
  • 24
  • 131
  • 223
  • @ukBaz: I did remove the `compat` option and tried again. It is a bluetooth remote and when a pairing is attempted I merely press the OK button so no pincode is exchanged. Like I mentioned in the post I did this several times before and as soon as the device is paired or connected I do see `event0` in the `/dev/input` directory. Currently that directory only contains `mice`. – Besi Jul 01 '21 at 06:54
  • I did file an issue in the [bluez repository on github](https://github.com/bluez/bluez/issues/172) – Besi Jul 09 '21 at 16:14
  • You say you have this working with other Raspberry Pi's. What is the `bluetoothctl` log from those devices? Does the `pair` report `AuthenticationFailed` error also? – ukBaz Jul 10 '21 at 07:22
  • I can confirm that "Bluetooth daemon 5.50" should not be there. I have another device that can connect with the remote and it has "Bluetooth daemon 5.52" in the syslog which is the same version as the one from bluetoothctl. – Besi Aug 02 '21 at 14:41

1 Answers1

1

Let's first identify this. Pairing and connecting are two completely different things. You can't connect without pairing first.

Now using bluetoothctl I can see my device and pair it but the connection is instantly dropped:

This assumption is wrong, you are not able to pair your device at all. We can understand this from the output of bluetoothctl and logs.

Failed to pair: org.bluez.Error.AuthenticationFailed

src/adapter.c:pair_device_complete() Failed (0x03)

You will get this [CHG] Device 84:EB:18:0C:92:0F Connected: yes even though you fail pairing. From the question tags, it seems that you are trying to establish a Bluetooth connection with Raspberry Pi, however you set ControllerMode = le. But you also mention, you already did this with other devices which got me confused.

So few solutions that comes to my mind. Try these one by one:

  1. Setting ControllerMode = dual if your device is Bluetooth Classic, not BLE.
  2. Try with gatttool(works in 5.50) if it is a BLE device: sudo gatttool -b 84:EB:18:0C:92:0F --interactive then connect.
  3. Remove and install from the source. Nice guide available here.. configure --enable-tools so you can try btgatt-client tool as well. (I never tried this, but seems possible).
  4. Make sure max number of connections is not reached.
  5. For all Bluetooth connections, I always go with D-Bus API rather than using command line tools. But it is not trivial. Here is a nice example code is available.

I did this same setup on other machines and there and then I could get it to work but this time there seems to be a problem.

Try another device with the same Pi, weak connection might be a reason as well.

If these do not help, please share the output of sudo btmon.

UPDATE

Now we are sure this is a BLE device and the problem is peripheral (your BLE remote) is not responding to the central (Pi) Status: Connection Failed to be Established (0x3e).

This will take us to the 6th solution I have suggested, which is very well explained by @Emil here.. I will just quote given answer as well (think as Master/Central (Pi), Slave/Peripheral(BLE remote):

"Connection failed to be established" means that after the master sent out CONNECT_IND in response to an ADV_IND, the slave does not seem to respond to any data packets the master sends out. This either happens due to some hardware or firmware failure, bad signal quality or that the peripheral uses white listing to ignore connections from unwanted devices. There are no other reasons for this error to occur.

Mr. Panda
  • 485
  • 3
  • 14
  • 2
    For BLE it's the opposite. You can't pair without first connecting. – Emil Jul 08 '21 at 13:38
  • Hello Mr. Panda. Thanks for your support on this. I'll award you the bounty before it expires in a few hours. I'm very glad you made the effort! Gattool returned the error 38 not implemented. This comes up the very moment I press OK on my remote which does confirm the connection / pairing. I pasted the btmon output too. I did install bluez from source but I might try an existing image that's proven to work. I will try the pyhton approach too but for this I need some hours of free time first. – Besi Jul 09 '21 at 09:21
  • I did try the dbus approach now. See updated answer. – Besi Jul 09 '21 at 09:30
  • @Emil, yes this is why as a second solution, I suggested connecting. – Mr. Panda Jul 09 '21 at 09:51