Beware that this post is related to an SDK in maintenance mode
More Info: Consider nRF Connect SDK for new designs
This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

About error code 4352

Hello.

In order to connect multiple units on the previous question page (https://devzone.nordicsemi.com/f/nordic-q-a/51970/implementing-multilinks-on-multiroll-programs), we were able to specify the array.
However, when I implemented the program, I got the following error:

peer_manager_handler: Connection security failed: role: Peripheral, conn_handle: 0x0, procedure: Bonding, error: 4352
Disconnected, reason 8

What are the possible causes for this “4352”?Thank you.

The environment is as follows.
SoftDevice: S132
IDE: SES
BLE Device: NRF52832
SDK version: 15.30
peripheral project: ble_peripheral⇒ble_app_hrs
multirole project: experimental⇒ble_app_multirole_lesc

  • What are the possible causes for this “4352”?

    Have you tried looking it up?

    Find the point at which that error message is generated, and find where the error code comes from - you should be able to find a definition from there ...

  • Seems the error is:

    #define PM_CONN_SEC_ERROR_DISCONNECT (PM_CONN_SEC_ERROR_BASE + 0x100) /**< @brief Pairing or encryption did not finish before the link disconnected for an unrelated reason. */

    The disconnect is BLE_HCI_CONNECTION_TIMEOUT.

    Maybe you should look into the lfclk source you have on the two peers? E.g. use NRF_SDH_CLOCK_LF_ACCURACY 1 (500ppm), look into what you have configured for:

        nrf_clock_lf_cfg_t const clock_lf_cfg =
        {
            .source       = NRF_SDH_CLOCK_LF_SRC,
            .rc_ctiv      = NRF_SDH_CLOCK_LF_RC_CTIV,
            .rc_temp_ctiv = NRF_SDH_CLOCK_LF_RC_TEMP_CTIV,
            .accuracy     = NRF_SDH_CLOCK_LF_ACCURACY
        };

  • Hi awneil.
    Sorry for the late reply.
    The question error is a peripheral device with no code changes. So, I thought about the multi-roll device that was changed.
    The evt_id when the operation was stopped on the multi-roll side was in one of the following two states.

    evt_id: 48⇒BLE_GATTC_EVT_PRIM_SRVC_DISC_RSP
    evt_id: 24⇒BLE_GAP_EVT_LESC_DHKEY_REQUEST

    Also, when I checked the situation on the debug screen, I found that it stopped with the following exception.

    Exception name: BusFault
    Assembly code when an exception occurs: ldr r3, [pc, # 4]

    As a result of examining "BusFault", I want to see the fault related to address and memory. What can be considered is an error when referring to the memory of an array that is specified more than once. Please let me know if you have any advice.

  • Hello Lenneth.
    Sorry for the late reply.
    Thank you for the advice.
    It was successful to connect a single peripheral device that was not the original array specification. Since the program was changed on the multi-roll side, I confirmed the result of awneil when I checked with the debug function. If you have any advice, please.

  • Things you may try:

    Can you try the latest S132v7.0.1 softdevice? 
    https://www.nordicsemi.com/Software-and-Tools/Software/S132/Download#infotabs 

    How to update: Just update the S132 header files (\nRF5_SDK_15.3.0_59ac345\components\softdevice\s132\headers) and re-compile the application before you program softdevice + application.

    Make sure system_nrf52.c file you are using contain workaround for errata_108().

Related