nRF5340-DK Low Power Modes

Hello everyone,

I'm working with the nRF5340-DK, aiming to achieve the lowest possible power consumption. From what I have read in some posts, I understand that this board should be able to reach consumption levels around 3 to 5 mA. In my setup, I'm using an SMU to power the board (through the P22 connector) and measure current. I've also set the nRF-only mode using the onboard switch to minimize MCU interface consumption. However, my current consumption is around 20 mA, which seems quite high for a chip described as ultra-low-power in the datasheet.

In my proj.conf I have disabled logging to reduce consumption:

CONFIG_LOG=n

CONFIG_SERIAL=n

And in my device tree overlay I have disabled some unused peripherals:

&adc {
status = "disabled";
};

&pwm0 {
status = "disabled";
};

&qspi {
status = "disabled";
};

&uart2 {
status = "disabled";
};

If helpful, I can provide current consumption graphs from the SMU software.

I'm wondering if there are additional configurations or APIs that would allow the board to enter a deep sleep mode, waking periodically to further reduce power consumption. I’ve noticed that Zephyr has APIs for managing low-power modes, but I’m unable to enable CONFIG_HAS_PM in proj.conf, which seems necessary for these functions.

Any advice on this would be greatly appreciated. Thank you!

  • Hi,

    Are we talking about idle current consumption here? If so, I assume you mean uA (micro ampere) where you write mA? If so, 20 uA is a high idle current consumption number, but it is about what I woudl expect if you have a GPIOTE interrupt pin enabled. Could that be the case? If that is the case, you can reduce power consumption by using GPIOTE PORT event as described in this post.

  • Hello, yes I was talking about idle current. In the image attached it is possiblle to visualize the current consumption chart. Before any thread or pheripheral initialization I put the system to sleep for 5 seconds (using k_msleep function) and the idle current is about 8.8mA. Then a thread starts running, for another 5 seconds, where the consumption rises and after that the system goes go sleep for 5 more seconds, where the idle consumption is about 13.5mA.

    Is there any way to improve this? I really don´t get how to achieve such low currents in the order of micro amps (uA) as you are saying.

  • Hi,

    These are extremely high numbers for idle and I suspect there is either somethign else on your board drawing power (or a measurement issue), so we need to get an overview first.

    1. Can you share details about your hardware (scematics, layout and description)? You can do so in a private ticket and refer to this if you do not want to share it in a public thread.
    2. Can you show and explain how you are mesuring the current consumption?
  • Hello,

    As mentioned, I am using the nRF5340-DK development kit, so all hardware information (such as schematics and technical details) is available in the board documentation on Nordic's website. In addition, I have connected an NFC shield and a CAN module to the setup.

    For measuring current, I am using an SMU to simultaneously power the board and measure the current draw. Since the NFC shield requires a 5V input, I am connecting the SMU to the Li-Po terminals. I've configured SW9 to the Li-Po position, set SW6 to nRF mode only (to reduce MCU interface power consumption), and left SW10 in the OFF position.

    Today, I ran the same test with both the NFC and CAN modules disconnected to see if there would be any difference. Here are the results: the current draw was approximately 3 mA before system initialization and around 9 mA when threads were running.

  • Do you have a measurement when the device is in idle/sleep and with UART logging disabled? Also, and important: can you share details how you rea measuring? And to get a good reference, can you make a measurement with all external components connected where you test the nRF5x System Off demo and share the current consumption pattern here?

Related