Hello,
We have purchased a few sparkfun thing plus devices and we want to power them with a small battery.
For this application, we must set the module in sleep mode to decrease the energy consumption to +- 30uA.
First, I tried to modify the asset tracker V2 application and flash it on the sparkfun thing plus. The power consumption was around 10 mA on the Sparkfun, while the consumption of the same application was around 30uA.
Secondly, I created a clean app based on jaredwolff.com/low power operation.
This device uses about 6mA (way more than necessary).
Is there an option to reduce is at least below the 100uA.
I think something with my configuration is not correct.
I am using this overlay (circuitdojo_feather_nrf9160_ns.overlay
):
&i2c1 {
lis2dh@18 {
compatible = "st,lis2dh";
label = "LIS2DH";
reg = <0x18>;
irq-gpios = <&gpio0 29 GPIO_ACTIVE_HIGH>, <&gpio0 30 GPIO_ACTIVE_HIGH>;
disconnect-sdo-sa0-pull-up;
};
};
This is the configuration I am using (prj.conf
):
# Stacks and heaps
CONFIG_MAIN_STACK_SIZE=4096
CONFIG_HEAP_MEM_POOL_SIZE=16384
CONFIG_GPIO=y
CONFIG_I2C=y
CONFIG_SPI=y
CONFIG_DEBUG=n
# Add the accelerometer
CONFIG_SENSOR=y
CONFIG_LIS2DH=y
CONFIG_CONSOLE=n
CONFIG_UART_CONSOLE=n
CONFIG_SERIAL=n
# Zephyr Device Power Management
CONFIG_PM=y
# Network
CONFIG_NETWORKING=y
CONFIG_NET_SOCKETS=y
CONFIG_NET_NATIVE=n
CONFIG_NET_SOCKETS_POSIX_NAMES=y
# Modem
CONFIG_NRF_MODEM_LIB=y
# Enable Zephyr application to be booted by MCUboot
CONFIG_BOOTLOADER_MCUBOOT=y
CONFIG_PM_DEVICE=y
CONFIG_PM_DEVICE_RUNTIME=y
And this is my main code (main.c
)
#include <zephyr.h>
void main(void)
{
while (1)
{
k_cpu_idle();
}
}
I am not sure if I need to use the sparkfun thing plus overlay or the circuitdojo feather overlay.
But I think something with the Real time clock or accelerometer is not correctly installed / configured.
I have the modem firmware updated to V1.3.2
I am using the NRF toolchain V2.0.0.