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

Pairing Issue with SD6.1.1 and OnePlus 5

After the update from the SD4.0.2 to the SD6.1.1 (nrf52832), it is not anymore possible to pair with the OnePlus5 (Android 9.0)
With the Galaxy Note8 (Android 9.0) it works. The comparison between the LOG from the Note8 and the OnePlus is visible in the picture.

LOG OnePlus:
<debug> nrf_ble_gatt: Peer on connection 0x0 requested a data length of 27 bytes.
<debug> nrf_ble_gatt: Updating data length to 27 on connection 0x0.
<debug> nrf_ble_gatt: Data length updated to 27 on connection 0x0.
<debug> nrf_ble_gatt: max_rx_octets: 27
<debug> nrf_ble_gatt: max_tx_octets: 27
<debug> nrf_ble_gatt: max_rx_time: 328
<debug> nrf_ble_gatt: max_tx_time: 328

Note Log:
<debug> app: PM_EVT_CONN_SEC_START: peer_id=65535
<info> app: BLE_GAP_EVT_SEC_PARAMS_REQUEST
<debug> nrf_ble_lesc: BLE_GAP_EVT_LESC_DHKEY_REQUEST
<info> nrf_ble_lesc: Calling sd_ble_gap_lesc_dhkey_reply on conn_handle: 0
<info> app: BLE_GAP_EVT_PASSKEY_DISPLAY: passkey=681997 match_req=1
<info> app: waiting for Host-UI to confirm Passkey 681997
<info> app: dispatching out type 10
<debug> app: dq: send directly, type 10
<debug> app: dq: sending message type 10
<debug> app: pbMachineStack: sendPending
<debug> app: devHostCom: sending 28 bytes
<debug> app: devHostCom: uart semaphore: 28 bytes, nwritten 28
<debug> app: NRF_SERIAL_EVENT_TX_DONE (27)
<debug> app: Stack has Ack, flush dispatcher-queue.
<debug> app: dq: dispatcher-flush-event..
<debug> app: -> done.

Do you have any suggestion what it could be? How I can debug that better?

Thanks.

Parents Reply Children
  • : We added support for the 2Mbps PHY in S132 v5.0.0 and in all subsequent versions of the SD you will get the BLE_GAP_EVT_PHY_UPDATE_REQUEST in the application when the Central sends a LL_PHY_REQ. This needs to be handled by calling sd_ble_gap_phy_update, see Peripheral PHY Update. So if you are not handling this event in your application then you need to add the following snippet 

     case BLE_GAP_EVT_PHY_UPDATE_REQUEST:
            {
                NRF_LOG_DEBUG("PHY update request.");
                ble_gap_phys_t const phys =
                {
                    .rx_phys = BLE_GAP_PHY_AUTO,
                    .tx_phys = BLE_GAP_PHY_AUTO,
                };
                err_code = sd_ble_gap_phy_update(p_ble_evt->evt.gap_evt.conn_handle, &phys);
                APP_ERROR_CHECK(err_code);
            } break;

    to the ble_evt_handler() function in main.c. 

    Best regards

    Bjørn

Related