This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Android 9 pairing failure, SDK v15.0.0

I went through the process of migrating a custom app from SDK 14.2.0 to SDK 15.0.0 running on nRF52840 dev board, and I am having mixed results when pairing through nRF Connect.

When using 2 nordic dev boards (1 as central, 1 as peripheral) I can successfully pair using Just Works and also Passkey pairing. I can also successfully bond a Samsung galaxy S8 running android 8.0.0 to the peripheral server dev board using passkey pairing. 

However, I am unable to pair to the peripheral server dev board using a Pixel 2 XL phone running Android 9. On the phone, nRF Connect log shows:

Connected to E7:66:...

Services discovered

Connection parameters update failed with status 19 (interval: 45.0ms, latency: 0, timeout: 5000ms)

Error 19 (0x13): UNKNOWN(19)

Connection terminated by peer (status 19)

Disconnected

Bonding failed

Debug output on the Peripheral side shows:

[00:00:00.000,030] <info> app: Fast advertising.
[00:00:00.062,744] <info> app: Connected as a peripheral.
[00:00:00.062,805] <info> app: BleMgr_Adv_Softdevice
[00:00:00.021,179] <info> app: ATT MTU exchange completed. MTU set to 247 bytes.
[00:00:00.000,335] <info> app: Data length updated to 251 bytes.
[00:00:00.045,288] <info> app: PHY update accepted. PHY set to 1 Mbps.
[00:00:00.037,597] <info> app: Conn Sec Params Req
[00:00:00.037,872] <info> app: PERIPHERAL: BLE_GAP_EVT_SEC_PARAMS_REQUEST
[00:00:00.037,933] <info> app: PERIPHERAL: BLE_GAP_EVT_PASSKEY_DISPLAY: passkey=446192 match_req=0
[00:00:00.017,883] <info> app: PERIPHERAL: BLE_GAP_EVT_LESC_DHKEY_REQUEST
[00:00:00.018,035] <info> app: BleMgr_Conn_Softdevice
[00:00:00.054,260] <info> app: Calling sd_ble_gap_lesc_dhkey_reply on conn_handle: 0
[00:00:00.076,293] <info> app: BleMgr_Conn_Timeout
[00:00:00.076,324] <info> app: Pairing Req Timed out
[00:00:00.076,324] <info> app: disconnect success
[00:00:00.035,552] <info> app: PM_EVT_CONN_SEC_FAILED due to err:4352
[00:00:00.035,583] <info> app: Disconnected: reason 0x16.
[00:00:00.035,614] <info> FCS: notif disabled @ 259
[00:00:00.035,644] <info> app: BleMgr_Conn_Softdevice
[00:00:00.036,254] <info> app: Fast advertising with whitelist.

Why does the Pixel 2 XL pairing fail, but the Samsung pairs successfully?

Parents
  • Hi irtSteve,

    Could you send a sniffer log of the communication between the peripheral and the Pixel 2 XL?

    Could you test the unmodified "HID Mouse" application from SDK15 and check if the pairing fails with Pixel 2 XL?

     

  • I will try to setup the sniffer.

    The HID Mouse example paired successfully. The dev board debug output shows:

    <info> app: HID Mouse example started.
    <info> app: Fast advertising with whitelist.
    <info> app: Slow advertising with whitelist.
    <info> app: Slow advertising.
    <info> app: Connected
    <info> app: Connection secured: role: 1, conn_handle: 0x0, procedure: 1.
    <info> app: New Bond, add the peer to the whitelist if possible
    <info> app: m_whitelist_peer_cnt 2, MAX_PEERS_WLIST 8

    In the Pixel's nRF Connect log I see:

    Connected to E7:66...

    Connection parameters updated ( interval: 7.5ms, latency: 0, timeout 5000ms )

    Services discovered

    Connection parameters updated ( interval: 45ms, latency: 0, timeout 5000ms )

    Connection parameters updated ( interval: 15ms, latency: 20, timeout 5000ms )

    Connection parameters updated ( interval: 7.5ms, latency: 0, timeout 5000ms )

    Device bonded

    Connection parameters updated ( interval: 15ms, latency: 20, timeout 3000ms )

    Connection parameters updated ( interval: 15ms, latency: 20, timeout 3000ms )

Reply
  • I will try to setup the sniffer.

    The HID Mouse example paired successfully. The dev board debug output shows:

    <info> app: HID Mouse example started.
    <info> app: Fast advertising with whitelist.
    <info> app: Slow advertising with whitelist.
    <info> app: Slow advertising.
    <info> app: Connected
    <info> app: Connection secured: role: 1, conn_handle: 0x0, procedure: 1.
    <info> app: New Bond, add the peer to the whitelist if possible
    <info> app: m_whitelist_peer_cnt 2, MAX_PEERS_WLIST 8

    In the Pixel's nRF Connect log I see:

    Connected to E7:66...

    Connection parameters updated ( interval: 7.5ms, latency: 0, timeout 5000ms )

    Services discovered

    Connection parameters updated ( interval: 45ms, latency: 0, timeout 5000ms )

    Connection parameters updated ( interval: 15ms, latency: 20, timeout 5000ms )

    Connection parameters updated ( interval: 7.5ms, latency: 0, timeout 5000ms )

    Device bonded

    Connection parameters updated ( interval: 15ms, latency: 20, timeout 3000ms )

    Connection parameters updated ( interval: 15ms, latency: 20, timeout 3000ms )

Children
No Data
Related