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

Apple Device terminates connection after 30 seconds the connection establishment when reconnect with the a bonded N52832

Hi, I am using N52832 to developing a producation need to implements ANCS NC. I am using sdk 15.2. And I found the connection is terminated by the apple device after the reconnect with the bonded N52832. 

reconncet_30s_AAA.pcapng

The attachment is the nrf-sniffer log of the whole testing procedure. 

I found there is Encrypted packet decrypted incorrectly  (bad MIC) in the log record. The packet number 6275. And the disconnection event happened afther 30 seconds of this bad MIC report. Why this problem happen? What should I do to solve this problem.

Parents
  • Hi,

    Which apple device are you testing with (hw and sw version)?

    Are you testing with the ANCS example in the SDK? Have you done any modifications to this?

  • Yes I have done 4 modifications to ble_peripheral\ble_app_ancs_c exmaple in the SDK.

    1 adveritisng init with white list disable

    2 allow repairing by adding the proccessing in peer_manager_handler.c -> pm_handler_pm_evt_log() -> switch (p_pm_evt->evt_id) -> PM_EVT_CONN_SEC_CONFIG_REQ: 

    pm_conn_sec_config_t conn_sec_config = {.allow_repairing = true};
    pm_conn_sec_config_reply(p_pm_evt->conn_handle, &conn_sec_config);

    3 Modify the NRF_SDH_BLE_GATT_MAX_MTU_SIZE to 163 in the sdk_config.h

    4 Adjust the RAM start address reported by ret_code_t nrf_sdh_ble_enable(uint32_t * const p_app_ram_start).

    And the tested Apple devices are iPhone 5s and iPhone XR. And the iOS version is 12.1.4.

    Without change to NRF_SDH_BLE_GATT_MAX_MTU_SIZE. The default is 23. Then there will be no any problem.

    But our project need to transfer large packet with smart phones. Once I modified the MAX MTU, the problem will apper 100% each time it reconnect with iPhone.

    I have tested the newest SDK 15.3. The same problem exists. Please help me. Thanks. 

Reply
  • Yes I have done 4 modifications to ble_peripheral\ble_app_ancs_c exmaple in the SDK.

    1 adveritisng init with white list disable

    2 allow repairing by adding the proccessing in peer_manager_handler.c -> pm_handler_pm_evt_log() -> switch (p_pm_evt->evt_id) -> PM_EVT_CONN_SEC_CONFIG_REQ: 

    pm_conn_sec_config_t conn_sec_config = {.allow_repairing = true};
    pm_conn_sec_config_reply(p_pm_evt->conn_handle, &conn_sec_config);

    3 Modify the NRF_SDH_BLE_GATT_MAX_MTU_SIZE to 163 in the sdk_config.h

    4 Adjust the RAM start address reported by ret_code_t nrf_sdh_ble_enable(uint32_t * const p_app_ram_start).

    And the tested Apple devices are iPhone 5s and iPhone XR. And the iOS version is 12.1.4.

    Without change to NRF_SDH_BLE_GATT_MAX_MTU_SIZE. The default is 23. Then there will be no any problem.

    But our project need to transfer large packet with smart phones. Once I modified the MAX MTU, the problem will apper 100% each time it reconnect with iPhone.

    I have tested the newest SDK 15.3. The same problem exists. Please help me. Thanks. 

Children
No Data
Related