Hi guys,
I am testing my Arduino Nano 33 BLE Sense board in order to find out what the lowest current during the sleep state of this board is. I have already found some articles on the forum (such this one Setting up the arduino BLE board for low power applications [Compilation]) where guys played with the Arduino Nano 33 BLE (classic one without this Sense part). I am trying to use the same code, the simplest blink example, where based on what they provided, they were able to reach 11microAmpere without shutting down the MCU.
//Ultra Low Power blink example. Tested on Arduino nano 33 BLE board and nRF528x (Mbed OS) V1.1.6 core
//Override the default main function to remove USB CDC feature - @farome contribution
int main(void){
init();
initVariant();
//Disabling UART0 (saves around 300-500µA) - @Jul10199555 contribution
NRF_UART0->TASKS_STOPTX = 1;
NRF_UART0->TASKS_STOPRX = 1;
NRF_UART0->ENABLE = 0;
*(volatile uint32_t *)0x40002FFC = 0;
*(volatile uint32_t *)0x40002FFC;
*(volatile uint32_t *)0x40002FFC = 1; //Setting up UART registers again due to a library issue
//Removing USB CDC feature
//#if defined(SERIAL_CDC)
// PluggableUSBD().begin();
// SerialUSB.begin(115200);
//#endif
setup();
for(;;){
loop();
//If you won't be using serial communication comment next line
// if(arduino::serialEventRun) arduino::serialEventRun();
}
return 0;
}
void setup(){
//pinMode(pin, OUTPUT) is already set for these 3 pins on variants.cpp
digitalWrite(LED_PWR, LOW); // @pert contribution
//Pins are currently swapped. Lower current achieved if setting both pins to HIGH
digitalWrite(PIN_ENABLE_SENSORS_3V3, HIGH); //PIN_ENABLE_I2C_PULLUP - @pert contribution
digitalWrite(PIN_ENABLE_I2C_PULLUP, HIGH); //PIN_ENABLE_SENSORS_3V3 - @pert contribution
}
void loop(){
delay(60*1000); //22µA USB cable, 11 µA USB cable unplugged
digitalWrite(LED_PWR, HIGH);
delay(5*1000);
digitalWrite(LED_PWR, LOW);
}
Based on my tests using the PPK2 to measure the current, the lowest I can reach is 441.41 microAmpere. Can I use the same implementation as they did even if my board is Sense and not the classic Arduino Nano 33 BLE? Any suggestions are welcome ![]()