Maximise the Battery Life on Your Raspberry Pi
Why do you need Power Management?
(For Raspberry Pi 4 compatibility see this post )
Imagine, you’ve just created your first Raspberry Pi project and you’re really proud of yourself. You pat yourself on the back, box it up, plug in the batteries and send your baby out into the Big Wide World. Success! Hurrah!
However…..6 hours later your marvellous creation has stopped working, worse still the SD card with all your code on, that took days to debug, has corrupted.
No problem, you’ll buy new batteries and restore the SD from backup……. You DO have a backup, right??
The Raspberry Pi is a fantastically powerful, small and cute computer. Ideal for portable, battery powered applications. But it’s not designed for battery power! For example, the Raspberry Pi Model 3B does not have a direct battery input and consumes around 500mA of current during normal operation. Put another way, if you provide it with a regulator to use batteries, typical AA battery packs will only give you a couple of hours use (see the Raspberry Pi Battery Life Calculator).
The Raspberry Pi has NO LOW POWER MODE!
Many applications do not need the Pi to be powered at all times and could benefit from emulating the typical low power strategies common in modern microcontroller systems.
How It Works
Do you know how most modern devices save power? They switch to a low power “sleep” mode whenever they’re not being used and wake only when they next need to do something. The Sleepy Pi replicates this type of behaviour on the RPi. It allows the RPi to shut itself down when it’s not being used to save power and wakes it up when it’s got work to do (get back to work!) either at timed intervals or when some real-world signal cries out for attention.
For example, you’ve got a long term Timelapse project in mind. You want to snap a picture every 10 minutes and store it. It takes about 10 secs to snap and store. What does the RPi do with the other 9mins and 50 seconds??? Run your batteries down or waste some more mains electricity?
It's also an Arduino...and an IO Board too!
Heard about the Arduino ? It’s a natty little microcontroller that’s easy to program and learn hardware coding on. The Sleepy Pi packs an ATMega328P running at 8Mhz. Easily program this from the Raspberry Pi itself using the free tools – no extra equipment to get. With a Raspberry Pi AND an Arduino in the same box, you’ve got some serious power at your fingertips.
What about some more I/O? The Sleepy Pi adds even more I/O and adds Analogue Inputs and PWM Outputs that the Raspberry Pi doesn’t have. Now you can measure real-world signals and sensors, control servos…
...And a Real-Time Clock!
Keep track of time even when you are off-line. Want to power up the Raspberry Pi at a certain time or take a timed measurement? No problem. The Sleepy Pi has a Real-time clock (RTC) than is backed up by a battery and can even sync the clock on the Raspberry Pi.
...And a Current Monitor!
The Sleepy Pi can measure how much current the Raspberry Pi draws. This can be used to optimise how much power the Raspberry Pi is actually using and optimise it.
The sleepy Pi has a prototyping area and set of expansion headers so that you can easily plug in extra circuitry, like the forthcoming range of “blankets”….
- Off-grid Remote Cameras
- Time-lapse photography
- Wildlife Monitoring & Surveys
- Hardware Watchdog Monitor for Software Hangs
- IOT Sensors
- Anything where the RPi doesn’t need to be always on!
- Daughter board for RPi Zero / ZeroW, A+ or B+,Rpi 2 or Rpi3B/3B+ ->Plugs into the RPi GPIO
- 5.5 – 30V – Power / Battery input
- Arduino – ATMEGA328P
- On / Off – Power control to Raspberry Pi
- RTC – Battery backed Real-time clock with Alarms
- Wake-up on Demand – multiple sources i.e input change, timed, etc
- GPIO Breakout – Raspberry Pi & Arduino GPIO, Analogue, PWM headers
- Current Monitor – Measure the Raspberry Pi current consumption
- Plug-in Blankets – extend functionality
Setup script - updated for Buster and Rpi 4
See Documentation index for latest information
For the latest code and examples check out our Github repositories
Lyle Borlase (verified owner) –
Functionality – spot on. My application is a number of AIS base stations located in remote areas in Tasmania Australia, using solar panels and batteries. I cannot afford to have the Raspberry Pi corrupt its code through untimely power downs and Sleepy Pi is passing all tests in managing power consumption.
I have installed the recently added LowVoltageShutdown, altered to reflect the critical voltages i need, and it is working perfectly on my desk top.
On top of the Sleepy Pi i have a dAISy HAT that intercepts AIS broadcasts and the Raspberry Pi is running AIS Dispatcher from AISHub.
Programming – good. Took me a while to work out a process that enabled all three layers of the construct, but now repeating quite comfortably. Currently have three units in production and testing ready for deployment and looking for a couple more.
Service – excellent. Delivery was surprisingly fast, and support in my quest to put the packages together has been useful