I have a custom circuit using an off the shelf nRF52840 module that I am programming using Arduino and the ARM (Nim)BLE Boards > Generic nRF52840 target. So far have got down to a current consumption of 115uA between adverts. Below is a stripped down code that gets the same current figure, without adverts. nrf_power_system_off(NRF_POWER)
gives below 2uA.
void setup() {
// put your setup code here, to run once:
}
void loop() {
// put your main code here, to run repeatedly:
#if( 1 )
__WFE();
__WFI();
// 115uA
#else
nrf_power_system_off(NRF_POWER);
// <2uA
#endif
}
Are there some peripherals or clocks that I am missing that need turning off? I wondered if it was Arduino enabling the UART by default, but if I add Serial.begin(115200);
to setup() I get 700uA. I am removing the programmer wires each time I measure the current.
Here is how I have Arduino configured: