How low can I go (mA)?

stiebs

New member
I'm building a relatively simple project that includes a TeensyLC, a Waveshare 1.6" LCD screen (https://www.waveshare.com/wiki/1.69inch_LCD_Module), three buttons, and an ADC (possibly onboard, but likely and ADS1115).

For power, I have a 400mA LiPo and I'm using an Adafruit PowerBoost 500+ Charger.

Nature of the project is that it's an on-demand use, mostly dormant. When required to be used, push a button to turn on, measure what needs to be measured, and then it either turns itself off, or turn off manually using the power button.

I'm trying to use duffs sleep library, with some success but not quite enough.

Here's the current bench setup:
- 5v power source (via PowerBoost)
- 2 buttons using internal pull-up
- LCD power is controlled through a 2n3904 with 330ohm base resistor on an output pin

In normal operation with the LCD on and Teensy just looping an updating the LCD, it draws about 40mA. If I turn the LCD off, current draw drops to around 20mA. Using duff's sleep library, "sleep" drops current draw to 11mA, "deepSleep" to 10mA, and "hibernate" to 4mA.

After setting all unused pins to OUTPUT, current draw drops to 3mA.

Is this the lower current draw I can expect to achieve?

It appears that REDUCED_CPU_BLOCK() is not implemented.

Now, that's a pretty low draw! But with a 400mA battery, that's still only 5 days of standby from a full battery.

I'm thinking of introducing a Pololu power switch (https://www.pololu.com/product/2808), which claims current consumption of 0.01uA in its off state. So my intention would be to first, after say 5 minutes, hibernate the Teensy with a digital and timer wakeup. After 30 minutes trigger the Pololu switch to turn off all power to Teensy. So at that point I've only got the PowerBoost drawing current (I'm not sure how much it draws in its idle state).

Any thoughts or other recommendations?
 
I was thinking of a way to turn off the PowerBoost output from the Teensy, but I'm not sure how I could do that..

The PowerBoost output is enabled by default, with its EN pin by default pulled high. The pin needs to be connect to GND to turn off power.
So I would need a way to hold it to GND while the Teensy is powered off, and then pull it high for the Teensy to start up, and then have the Teensy hold it high through sleep, then drop it low after it gets woken by the sleep timer.
 
Last edited:
Further update on some testing..

The PowerBoost 500C draws 4mA from the battery in its default state of ON but with no load connected. If I pull the EN pin low, power consumption drops to 13uA.

With the TeensyLC and LCD screen powered on, the system draws 75mA when powered via PowerBoost and LiPo battery. When the Teensy goes into hibernate, with the PowerBoost total current draw is 8.5mA.

So given it will spend more time off than on, and my goal is to maximise standby time, I think it would work if I could achieve in what I wrote in post #2 above.

If I use it to take a measurement, and then after 30 seconds it hibernates, then I want to take another measurement, press a button and it's ready to go immediately. After a longer period of time it shuts down to save power, but in that case it will be a full power up, having to go through its startup process (~1-2s)
 
Back
Top