Search code examples
bluetooth-lowenergybluezbluetooth-peripheral

Peripheral not connecting to iOS


I'm attempting to connect a bluez peripheral to an iOS device; it's not working.

Please find below logs on peripheral side. I'm advertising using hciconfig hci0 leadv but I don't see any "Connect" option on Scanner applications on phone. Also bluez-4.101 doesn't have hciconfig hci0 leadv0 option to make it connectable.

With the same device acting as a Central I am able to make LE connections with other BLE devices, so that confirms kernel LE support and device is fine, only some bluez issues I assume are there.

> HCI Event: LE Meta Event (0x3e) plen 19
    LE Connection Complete
      status 0x00 handle 1025, role slave
      bdaddr 67:5D:F6:87:3D:2C (Random)
> ACL data: handle 1025 flags 0x02 dlen 7
    ATT: MTU req (0x02)
      client rx mtu 158
 > ACL data: handle 1025 flags 0x02 dlen 27
 > ACL data: handle 1025 flags 0x01 dlen 27
 > ACL data: handle 1025 flags 0x01 dlen 9
    L2CAP(d): cid 0x003a len 59 [psm 0]
      0000: .9......com.appl
      0010: e.BT.TS."....com
      0020: .apple.BTLEServe
      0030:                 r.classic..
> ACL data: handle 1025 flags 0x02 dlen 11
    L2CAP(d): cid 0x003a len 7 [psm 0]
      0000:                              ......
> HCI Event: Disconn Complete (0x05) plen 4
    status 0x00 handle 1025 reason 0x13
    Reason: Remote User Terminated Connection

How can I get this peripheral to connect?


Solution

  • Upgrading to the latest BlueZ version will solve the GATT related issues.

    Quote from the linked page:

    The 2.x , 3.x and 4.x series of libraries and packages are deprecated and not supported anymore by BlueZ developers. If you are using them please update to the 5.x series. The download link is only provided for reference.