High current consumption after using ipc_radio for network core

Hello, I am developing with nRF5340 with my custom board. I observed a high current consumption when the network core is flashed with the ipc_radio image. I am developing with NCS v3.0.2. The current consumption measurement is conducted with the hello_world example for Thingy53 as the target hardware. Current is measured via PPK2. 

For my project configuration prf.conf, I have:

CONFIG_LOG=n
CONFIG_USE_SEGGER_RTT=n
CONFIG_LOG_BACKEND_RTT=n
CONFIG_LOG_BACKEND_UART=n
CONFIG_RTT_CONSOLE=n
CONFIG_STDOUT_CONSOLE=n
CONFIG_UART_CONSOLE=n
CONFIG_CONSOLE=n
CONFIG_SERIAL=n

CONFIG_PM_DEVICE=y
CONFIG_PM=y
CONFIG_PM_DEVICE_RUNTIME=y

And for the ipc_radio's prj.conf placed under sysbuild/ipc_radio, I have:

CONFIG_BT_BUF_EVT_RX_SIZE=68
CONFIG_BT_BUF_EVT_RX_COUNT=4

CONFIG_BT_BUF_ACL_RX_SIZE=27
CONFIG_BT_BUF_ACL_TX_SIZE=27
CONFIG_BT_EXT_ADV=y
CONFIG_BT_EXT_ADV_MAX_ADV_SET=2
CONFIG_BT_CTLR_ADV_DATA_LEN_MAX=251
CONFIG_BT_CTLR_ADV_EXT=y
CONFIG_BT_CTLR_TX_PWR_DYNAMIC_CONTROL=y

CONFIG_BT_MAX_CONN=1
CONFIG_BT_CTLR_PHY_2M=y

# Disable or enable antenna front end module
CONFIG_MPSL_FEM=n

CONFIG_LOG=n
CONFIG_SERIAL=n
CONFIG_CONSOLE=n
CONFIG_UART_CONSOLE=n
CONFIG_USE_SEGGER_RTT=n
CONFIG_UART_NRFX=n
CONFIG_PM_DEVICE=y
CONFIG_PM_DEVICE_RUNTIME=y
CONFIG_PM=y

Finally for the Kconfig.sysbuild, I have:

source "${ZEPHYR_BASE}/share/sysbuild/Kconfig"

config NRF_DEFAULT_IPC_RADIO
	default y

When using hello_world without any modifications but only disable console and serial, I have a current profile like shown in the below figure. This is again, with empty network core. This gives me an average current of 250 uA.

However, when using hello_world with the above configurations, I have this current profile as shown in the next figure. This gives me an average current of 3.36 mA although I did not call bt_enable() at all in my code.

So simply enabling ipc_radio image on network core without actually use BT function is giving this much current consumption increase. Is this the expected behaviour? If not, what could be the optimisations to reduce this current consumption? I understand when both cores are enabled, there is this internal communication between the two core, is this the reason? 

  • Hello,

    I did this ablation today with my our custom PCB. When build with hello_world for app core and empty netcore and serial off, the current draw is around 200 uA. When build with hello_world for app core and ipc_radio for the netcore and serial off, the current draw is around 3.5 mA. So clearly it should be something related to netcore that causes this current goes up. I understand our baseline is already 100 times bigger than your stated 2 uA, but this single ablation suggests optimisation needed for netcore. 

    Could you direct us a guidance on this? 

  • Hello,

    To test the total system current with both cores I suggest you try an existing Bluetooth sample such as peripheral_lbs (build it for the nrf5340dk/nrf5340/cpuapp if that works with your HW). You can use nRF connect app on android or iOS to verify whether it is able to start Bluetooth advertising.

Related