High Current Consumption When BLE Is Disconnected from Central Device

Device: nRF52811

Board: custom (EYSNSNZWW module is used)

SDK: 16.0.0

SoftDevice: S112(v7.0.1)

Sample Project: ble_app_uart 

I found that the current consumption will be high when BLE communication is disconnected from a central device suddenly.

The normal current consumption during BLE connection is about 600uA, but the current consumption become 3~5mA for a few seconds when disconnected from the central.

I tried disabling direct advertising mode but nothing changed. 

I used the nrf sniffer tool but there was no packet transmitted during the high current consumption is observed.

Could you help me to identify the root cause?

Thanks.

Parents
  • Hi,

    but the current consumption become 3~5mA for a few seconds when disconnected from the central.

    Seems like the CPU is running then. Are you able to run a debug session, and pause the debugger e.g. 2 seconds after disconnect, and see what the CPU is doing ?

  • Hi,

    Thank you for your support.

    I couldn"t find any clue by a debugger.

    However, I found that the high current consumption is related to Connection Supervision Timeout.

    This figure shows the current consumption.

    Red circles indicate the current consumption when disconnected with 4000ms timeout(interval:50ms, latency:4).

    Green circles indicate the current consumption when disconnected with 500ms timeout(interval:50ms, latency:0).

    Is it possible to reduce current consumption without reducing supervision timeout?

Reply
  • Hi,

    Thank you for your support.

    I couldn"t find any clue by a debugger.

    However, I found that the high current consumption is related to Connection Supervision Timeout.

    This figure shows the current consumption.

    Red circles indicate the current consumption when disconnected with 4000ms timeout(interval:50ms, latency:4).

    Green circles indicate the current consumption when disconnected with 500ms timeout(interval:50ms, latency:0).

    Is it possible to reduce current consumption without reducing supervision timeout?

Children
  • Hi,

    When the central stops responding suddenly(does not terminate the link with a disconnect procedure package ), the peripheral will still wake up every connection interval, and listen for a packet from the central. It will do this for the duration of the Connection Supervision Timeout. Another thing that will happen, is that the RX window will get larger as well, due to clock uncertainty grows the longer since the last sync/ last packet received from the central.

    keigo said:
    Is it possible to reduce current consumption without reducing supervision timeout?

    No, not much to do with this, but if you have a very low connection interval(e.g. 7.5ms), then increasing it should help, e.g. to 100ms.  But if you already have a large connection interval, then there is not much to gain from that. What values to use here depends on your application use-case.

Related