Need advice regarding reducing power consumption

Hi all,

I'm building a project that will use a servo to lock and unlock a cat door. Essentially I want to move the servo to one position to unlock the door and another to lock the door. Locking the door will occur around 8pm each night and locking will occur at 5am each morning. In order to keep time, I'm using a DS3231 RTC module and both of the alarms on this module, the times for the alarm correspond to the times above. So far very simple, right?

So the area where I'm look for some advice is with regards to saving power. I do not want to have to run power to the project and instead for it to run on batteries. I use "LowPower.powerDown(SLEEP_FOREVER, ADC_OFF, BOD_OFF);" to power down the Arduino Mini, then wake the Arduino when an alarm goes off to either lock or unlock the door. After setting the new position for the servo, I delay for 1 second to give the servo time to move, then put the Arduino Mini back to sleep.

The DS3231 module and the servo connect directly to the battery, as does the Arduino Mini. I am powering the project using a 4400mah, 3.7v battery, however the battery only lasts around 10 days. The battery connects into a LiPo charging module then the rest of the project is powered from the Lipo charging module.

I've made a minor modification to the Arduino Mini as per some other forum posts, disabling one of the LEDs that comes on when the Arduino Mini has power. As a result I'm pretty sure the Arduino Mini isn't drawing much power, however I'm not sure how much power is being drawn by the DS3231 or the LiPo charging module. I'm also unsure if the servo would draw and power when the Arduino is powered down and not getting a signal.

I've tried the project with a 9v battery and it lasted about 3 days.

In my backyard I have a tap timer that turns the sprinklers on and off twice a day. It uses 2 AA batteries and lasts at least a year, so I'm thinking surely I must be able to improve the battery life on this project.

Really looking forward to any input you're willing to share. Thanks in advance!!

Cheers,
Jonathan.

Did you leave the servo powered? :slight_smile: Please post a schematic.

jonponton:
As a result I'm pretty sure the Arduino Mini isn't drawing much power, however I'm not sure how much power is being drawn by the DS3231 or the LiPo charging module. I'm also unsure if the servo would draw and power when the Arduino is powered down and not getting a signal.

'pretty sure' - 'not sure' - 'also unsure'

Why not remove the guesswork and measure the actual currents each of those parts is using ?

You have the project in front of you, we do not.

Lots of great advice in this low power tutorial.

The servo will draw a lot of current even if the processor sleeps, so you will need to find a way to switch it off, or find another solution, like a solenoid.

Thanks jremington, that's what I wanted to know. I'll look into ways to power the servo only when I need it to move position.

@srnet, I post terms like 'unsure' because I'm looking for advice, hence posting on a forum :wink:

If you don't have a decent multimeter, get one. I have both this Sparkfun meter (before Fluke made them change the color!) and an AN8008. Both of them have ranges for sub-microamp current measurements with 10 nA resolution. The AN8008 is smaller and uses AAAs instead of a 9V so it's a bit more convenient. They're both great.

Excellent!! I have a couple of basic multimeters and my local electronics hobby store only sells devices that measure AC power draw, so I have been looking for something like this for a while. Many thanks for sharing! I shall certainly give this a try.

If you are going down the road of reducing power consumption, there is really no substitute for taking your own measurements.

I agree, you must track down where all the power is going. The servo would be my suspicion also.

The circuit sounds pretty simple. Two pins for the i2c bus, one for interrupts, one for the servo. Is that it? If so, you could downscale to an ATtiny85 to achieve even lower power. No point considering that until the Pro Mini is the largest consumer.

jonponton:
Excellent!! I have a couple of basic multimeters and my local electronics hobby store only sells devices that measure AC power draw, so I have been looking for something like this for a while. Many thanks for sharing! I shall certainly give this a try.

Once you have a useful multimeter, you need a to make a power profile to determine which parts of states of your project are using the most energy. Once you have numbers for things you can stop avoiding the elephant in the room (which I suspect is the servo, not the Pro Mini or RTC).

PaulRB:
I agree, you must track down where all the power is going. The servo would be my suspicion also.

The circuit sounds pretty simple. Two pins for the i2c bus, one for interrupts, one for the servo. Is that it? If so, you could downscale to an ATtiny85 to achieve even lower power. No point considering that until the Pro Mini is the largest consumer.

An ATtiny85 does not have appreciably lower current consumption than an ATmega328P. It's just smaller and uses less space.

EDIT: Forgot to attach the Low-Power Design Guide application note.

1416 - Low-Power Design Guide.pdf (274 KB)

Latest update after connecting the above modules to a lab power supply, it appears that the LiPo control / charging module is pulling 30mA constantly and the LED on the DS3231 was responsible for another few mA. I will be trying some other LiPo modules to see if they draw less, whilst also getting some better testing equipment. Thanks all for your advice so far

jonponton:
Latest update after connecting the above modules to a lab power supply, it appears that the LiPo control / charging module is pulling 30mA constantly and the LED on the DS3231 was responsible for another few mA. I will be trying some other LiPo modules to see if they draw less, whilst also getting some better testing equipment. Thanks all for your advice so far

How are you powering it with the lab supply? Through the battery charger? If so that's the wrong way to test it. You need to substitute the power supply in place of the battery. The reverse leakage of the unconnected battery charger should be just a few microamps if it's something like a TP4056 charger. There's no way the charger sucks 30 mA from the battery, and you don't really care about the LEDs using current from the charging source.