How to diagnose central connection timeout?

My custom board with a NRF5340 (MDBT53-1M) with LF crystal is running as a central on NCS 2.6.1.

It's connecting to a legacy device which has a BLE121LR.

  1. NRF5340 centrals connects to BLE121LR.
  2. NRF5340 pairs via legacy OOB.
  3. NRF5340 subscribes to characteristics.
  4. NRF5340 changes connection parameters which make the BLE121LR send a message at a interval larger than 6 seconds.
  5. No notifications from BLE121LR is received.
  6. NRF5340 reports connection has timed out.

I have tried a few combinations of interval and slave latency and I was still unable to get past 6 second.

Setting CONFIG_CLOCK_CONTROL_NRF_K32SRC_500PPM did not fix it.

I have connected my custom board to a NRF5340-DK running as a peripheral and the connection parameters worked.

How can I workout what is causing this?

I have a nRF52840 dongle is that helps.

//Works
{
    .interval_min = 400,
    .interval_max = 400,
    .latency = 11,
    .timeout = 3200
}
//Works
{
    .interval_min = 80,
    .interval_max = 80,
    .latency = 59,
    .timeout = 3200
}

//Timeout
{
    .interval_min = 400,
    .interval_max = 400,
    .latency = 12,
    .timeout = 3200
}
//Timeout
{
    .interval_min = 80,
    .interval_max = 80,
    .latency = 69,
    .timeout = 3200
}

Parents
  • Hello,

    Do you have access to check the disconnect reason reported by the legacy BLE121LR device as well? Either way, since you have a nRF52840 Dongle, I would suggest you try use it with the BluetoothRegistered Low Energy app in nRF Connect for Desktop to see if you experience the same connection issues if you connect to the BLE121LR and request a CI above 6 seconds.

    Best regards,

    Vidar

  • I have tested with

    Internal 500ms

    Latency 30

    Timeout 32000ms

    • nRF52840 dongle (Central) -> BLE121LR USB dongle (Peripheral) works
    • nRF5340 DK (Central) -> nRF52840 dongle (Peripheral) works
    • RAYTAC MDBT53-DB (MDBT53-1M dev board) (Central) -> nRF52840 dongle (Peripheral) works
    • RAYTAC MDBT53-DB using low frequency RC (MDBT53-1M dev board) (Central) -> nRF52840 dongle (Peripheral) works
    • Custom board (MDBT53-1M) using LF crystal times out.
    • Custom board (MDBT53-1M) using LF RC times out.

    clock_skew with CONFIG_APP_ENABLE_HFXO=y

    https://docs.nordicsemi.com/bundle/ncs-1.6.0/page/zephyr/samples/boards/nrf/clock_skew/README.html

    MDBT53-DB (A)

    MDBT53-DB (B)

    Custom board (A)

    Custom board (B)

    Seems like there is a issue with my board but I'm unsure where to look.

  • I think the issue might be something else than excessive drift on the slow clock as you're getting the same results with both the LF RC and crystal oscillator. You could also try using the LF synth to confirm that clock drift isn't the cause.

    Does the proximity of the devices seem to make any difference? Close proximity should help if the problem is related to a poor link budget. It might be worth creating a new private support ticket and request a hardware review. Be sure to upload the gerbers and schematics.

Reply
  • I think the issue might be something else than excessive drift on the slow clock as you're getting the same results with both the LF RC and crystal oscillator. You could also try using the LF synth to confirm that clock drift isn't the cause.

    Does the proximity of the devices seem to make any difference? Close proximity should help if the problem is related to a poor link budget. It might be worth creating a new private support ticket and request a hardware review. Be sure to upload the gerbers and schematics.

Children
No Data
Related