0

I want to get as low power use during sleep as possible with an Adafruit Trinket. Based on results presented on various places in the internet (blogs etc), I expect to be able to go down to 50 - 100 micro amps on the ATTiny85 of the Trinket. I am aware of the fact that using a board such as Trinket may add a bit of consumption, and I physically removed the power LED and the power regulator. I am feeding 5V directly on the 5V pin.

I am using the simplest sketch I can think about for low power, with nothing connected to any pin:

#include <avr/sleep.h>          // library for sleep

#define adc_disable() (ADCSRA &= ~(1<<ADEN)) // disable ADC (before power-off)

void setup() {
  // put your setup code here, to run once:
  delay(10000);

  // power_all_disable();
  set_sleep_mode(SLEEP_MODE_PWR_DOWN);
  adc_disable();
  sleep_enable();
  sleep_mode();

}

void loop() {

}

But I cannot get less than around 1.3 milli amps consumption during sleep. Do you know what may be the cause of using ~1mA instead of ~100 microA? Any idea how I can decrease this further?

Edit 1: it should be even much less than ~50 - 100 micro Amps: ATtiny85: Power consumption vs clock speed ; even though this the libraries are maybe primary intended for the ATMega328P, it looks like it should work also with ATTiny85 as well: http://www.technoblogy.com/show?KX0

Edit 2: I had an ATMega328P-based Adafruit Metro Mini lying around. I took away the ON LED, and then using exactly this sketch, feeding power directly on the 5V pin of the Metro Mini, leads to a power consumption of around 150 micro Amps during sleep, which is more like what I expect. Strange it is 10 times more with the ATtiny while it should have been less (?). Am I missing something or is it maybe just broken library on ATtiny? This is a bit ironic, as I went for the lesser ATtiny85 based board for saving current compared with the ATMega328P...

  • Are you waking from sleep? Are you taking into account the 10 seconds at the start when it's running on full power? Put something in loop() that could indicate that it's woken up (maybe turn on an LED or something). – Majenko Jun 12 '17 at 10:18
  • I know that it is awake for the first 10 seconds (then power consumption is about 13 mA), after this period the power consumption drops to the 1.3 mA I was mentioning. ;) I could of course wake it up with the watchdog, but I do not think this is the point of this sketch; I only want to measure sleeping power consumption, so I think getting it to sleep in the setup and letting it sleeping is ok. I also got it to sleep in the main loop in another sketch, get similar results. – Zorglub29 Jun 12 '17 at 10:35
  • A trinket uses an ARM core processor. Getting the power down is not trivial. You probably have hours of reading the Atmel then the ARM core specifications before you start in on designing your own "sleep / low-power" Arduino libraries. At which point you can start contributing back to the effort of improving the ARM BSP software for Arduinos as they are (were?) full of bugs. – st2000 Jun 12 '17 at 13:53
  • @st2000: ok, that sounds a bit strange as gammon.com.au/power gets to the micro-amps domain while using just the standard libraries (and I think the same chips architecture), but I may be missing something? – Zorglub29 Jun 12 '17 at 13:57
  • Sorry, my bad, the trinket uses an Atmel ATtiny85. Still, your link to the power web page says it is intended for the Atmega328P. Also, I am not sure the BSP is the same for these 2 processors. You might check on that to make sure you are not up against using 2 different version of sleep libraries. One for each processor. – st2000 Jun 12 '17 at 14:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.