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

High current when using BLE NUS

Hi,

I am starting to finalize a development stage and was looking at the current consumption of my device. I noticed, that when something connects to it and is starting to use the NUS service, current consumption skyrockets to 7mA and stays there, even after disconnecting every BLE connection.
This happens either:

  • I connect using Norduc UART Android App
  • I connect using nRF connect, then click on the TX Characteristic notification enable
  • I connect using a custom Android App that uses BLE NUS
  • Right after I make connection with the device (non-NUS) and my m_conn_handle becomes valid and I try to send data with ble_nus_data_send();

Here is an extract of an RTT log:

 0> <info> pwr_mgmt: CPU Usage: 0%
 0> <info> pwr_mgmt: CPU Usage: 0%
 0> <info> pwr_mgmt: CPU Usage: 0%
 0> <info> pwr_mgmt: CPU Usage: 0%
 0> <info> pwr_mgmt: CPU Usage: 0%
 0> <info> pwr_mgmt: CPU Usage: 0%
 0> <info> pwr_mgmt: CPU Usage: 0%
 0> <info> pwr_mgmt: CPU Usage: 0%
 0> <info> pwr_mgmt: CPU Usage: 0%
 0> <info> pwr_mgmt: CPU Usage: 0%
 0> <info> pwr_mgmt: CPU Usage: 0%
 0> <info> pwr_mgmt: CPU Usage: 0%
 0> <info> pwr_mgmt: CPU Usage: 0%
 0> <info> pwr_mgmt: CPU Usage: 0%
 0> <info> pwr_mgmt: CPU Usage: 0%
 0> <info> pwr_mgmt: CPU Usage: 0%
 0> <info> pwr_mgmt: CPU Usage: 0%
 0> <info> pwr_mgmt: CPU Usage: 0%
 0> <info> pwr_mgmt: CPU Usage: 0%
 0> <debug> nrf_ble_gatt: Requesting to update ATT MTU to 158 bytes on connection 0x0.
 0> <debug> nrf_ble_gatt: ATT MTU updated to 158 bytes on connection 0x0 (response).
 0> <info> pwr_mgmt: CPU Usage: 0%
 0> <debug> nrf_ble_gatt: Peer on connection 0x0 requested a data length of 123 bytes.
 0> <debug> nrf_ble_gatt: Updating data length to 27 on connection 0x0.
 0> <debug> nrf_ble_gatt: Data length updated to 27 on connection 0x0.
 0> <debug> nrf_ble_gatt: max_rx_octets: 27
 0> <debug> nrf_ble_gatt: max_tx_octets: 27
 0> <debug> nrf_ble_gatt: max_rx_time: 1096
 0> <debug> nrf_ble_gatt: max_tx_time: 1096
 0> <info> app: BLE NUS connected
 0> <info> pwr_mgmt: CPU Usage: 4%
 0> <info> pwr_mgmt: CPU Usage: 38%
 0> <info> pwr_mgmt: CPU Usage: 39%
 0> <info> pwr_mgmt: CPU Usage: 38%
 0> <info> pwr_mgmt: CPU Usage: 38%
 0> <info> pwr_mgmt: CPU Usage: 38%
 0> <info> pwr_mgmt: CPU Usage: 38%
 0> <info> pwr_mgmt: CPU Usage: 38%
 0> <info> pwr_mgmt: CPU Usage: 38%
 0> <info> pwr_mgmt: CPU Usage: 38%
 0> <info> pwr_mgmt: CPU Usage: 38%
 0> <info> pwr_mgmt: CPU Usage: 38%

As you can see, CPU load is increased after NUS activity, but no other tasks are carried at that time.

What seems to be the problem?

I'm using:

  • s140_nrf52_7.0.1_softdevice.hex
  • nRF5_SDK_for_Thread_and_Zigbee_v4.1.0_32ce5f8

Best Regards,

Roland

Parents Reply Children
No Data
Related