Designing devices that can operate in remote environments on battery power is often challenging, especially if the devices need to last a long time between charges or battery swaps. Thankfully there are some things available that make these tasks a little easier, such as e-ink or e-paper displays which only use power when making changes to the display. That doesn’t solve all of the challenges of low-power devices, but [Albertas] shows us a few other tricks with this development board.
The platform is designed around an e-paper display and is meant to be used in places where something like sensor data needs to not only be collected, but also displayed. It also uses the ESP32C3 microcontroller as a platform which is well-known for its low power capabilities, and additionally has an on-board temperature and humidity sensor. With Bluetooth included as well, the tiny device can connect to plenty of wireless networks while consuming a remarkably low 34 µA in standby.
With a platform like this that can use extremely low power when not taking measurements, a battery charge can last a surprisingly long time. And, since it is based on common components, adding even a slightly larger battery would not be too difficult and could greatly extend this capability as well. But, we have seen similar builds running on nothing more than a coin cell, so doing so might only be necessary in the most extreme of situations.
A common complaint among laptop users is that while battery technology has vastly improved over the past decades, a simulltaneous shrink in form factors has meant that a typical laptop today doesn’t last much longer on a battery charge than one from the early 2000s. But it doesn’t have to be that way, as [Andreas Eriksen] demonstrates with his entry for the Low Power Challenge. The PotatoP is a portable computer that should be able to run for about two years on a single battery charge, and can be topped up through an integrated solar panel.
Granted, it doesn’t have the processing power of even the cheapest laptop you can buy today, but it’s perfectly fine for [Andreas]’s use case. He’s a Lisp hacker, and a Sparkfun RedBoard Artemis can run uLisp just fine on its 48 MHz Cortex-M4F processor. The operating environment is very basic though, even requiring [Andreas] to write his own text editor, called Typo, to give him editing luxuries like backspace functionality and a movable cursor.
The Artemis board is very power-efficient by itself – typical power consumption is less than 1 mA. [Andreas] added a simple monochrome black-and-white LCD screen capable of displaying 53 columns of text, plus an SD card reader for data storage, and designed a sleek 3D-printed case to hold everything together. When running a typical piece of code, the entire system uses around 2.5 mA, which translates to about 125 days of continuous run-time on the beefy 12000 mAh lithium battery. Add a bit of solar power, plus a more realistic eight-hour working day, and the two year runtime estimated by [Andreas] appears entirely reasonable.
This has to be one of the most power-efficient portables we’ve ever seen, and one running Lisp at that. Despite its age, Lisp keeps popping up in interesting custom computers like the Lisperati1000 cyberdeck and The Lisp Badge.
Continue reading “Low Power Challenge: The PotatoP Runs Lisp For Months Without Recharging” →
Having a device in your living room that shows weather information is convenient, and building one of those is a great project if you enjoy tinkering with microcontrollers and environmental sensors. It’s also a great way to learn about low-power design, as [x-labz] demonstrated with their e-ink weather station which works for no less than 60 days on a single battery charge. It has a clear display that shows the local temperature and humidity, as well as the weather forecast for the day.
The display is a 4.2″ e-paper module with a resolution of 400 x 300 pixels. It uses just 26 mW of power for a few seconds while it updates its image, and basically zero watts when showing a static picture. It’s driven by a tiny ESP32C3 processor board, which downloads the weather forecast from weatherapi.com every two hours. The indoor climate is measured by an SHT-21 temperature and humidity sensor mounted behind the display, while the outdoor data is gathered by a WiFi-connected sensor installed on [x-labz]’s balcony.
The key to achieving low power usage here is to keep the ESP32 in sleep mode as much as possible. The CPU briefly wakes up once every five minutes to read out the indoor sensor and once every fifteen minutes to gather data from outside, using the relatively power-hungry WiFi module.
To further reduce power consumption, the CPU core is driven at the lowest possible clock speed at all times: 10 MHz when reading the indoor sensor, and 80 MHz when using the WiFi connection. All of this helps ensure that just one 600 mAh lithium battery can keep everything running for those 60 days.
E-ink displays are perfect for text and simple graphics that don’t change too often, which is why they’re very popular in weather stations. With a bit of tweaking though, LCDs can also be optimized for low power.
How low can you go? The 2023 Hackaday.io Low-Power Challenge is about doing the most with the least juice – bang for the power-budget buck, if you get our drift. And with three $150 gift certificates from Digi-Key on the line, you’ll be able to keep your projects going forever. The Challenge runs until March 21st, but with low-power, the devil is often in the details, so get started today!
More and more projects need to run on their own power, and more often than not, that means getting by without access to a wall plug. This contest is to encourage your designs that run on solar, small batteries, and generally energy harvested from wherever you can get it. But the power generation mechanism is taking the back seat here – we want to see what you can do with a few good electrons. Surprise us with your maximum minimalism!
Continue reading “Hackaday.io Low-Power Challenge Begins Today” →
[Petteri Aimonen] created an omnidirectional LED safety light to cling to his child’s winter hat in an effort to increase visibility during the dark winter months, but the design is also great example of how to use the Microchip MCP1640 — a regulated DC-DC step-up power supply that can run the LEDs off a single AAA cell. The chip also provides a few neat tricks, like single-button on/off functionality that fully disconnects the load, consuming only 1 µA in standby.
[Petteri]’s design delivers 3 mA to each of eight surface-mount LEDs (which he says is actually a bit too bright) for a total of about 20 hours from one alkaline AAA cell. The single-layer PCB is encased in a clear acrylic and polycarbonate enclosure to resist moisture. A transistor and a few passives allow a SPST switch to act as an on/off switch: a short press turns the unit on, and a long press of about a second turns it back off.
One side effect is that the “off” functionality will no longer work once the AAA cell drained too badly, but [Petteri] optimistically points out that this could be considered a feature: when the unit can no longer be turned off, it’s time to replace the battery!
The usual way to suck a battery dry is to use a Joule Thief, and while this design also lights LEDs, it offers more features and could be adapted for other uses easily. Interested? [Petteri] offers the schematic, KiCAD file for the PCB, and SVG drawing of the enclosure for download near the bottom of the project page.
There are no weird, specialized components nor esoteric sleep mode tricks behind the long battery life of [Zak]’s WiFi mail slot watcher. Just some sensible design and clever focus on the device’s purpose: to send an HTTP request whenever it detects that the front door’s mail slot has been opened. The HTTP request is what kicks off useful notifications, but it’s the hardware design that’s really worth a peek.
The watcher’s main components are a ESP-M2 WiFi module, a reed switch, and a single lithium cell. Here’s how it works at a high level: when the mail slot is opened (detected by the reed switch), the ESP module is powered up just long enough to connect to the local WiFi network and send a single HTTP request, after which it shuts back down. The whole process takes between four and ten seconds.
As mentioned, the power control isn’t managed by any unusual components; it comes down to a NAND gate with a single inverted input, and a MIC5504 3.3 V regulator responsible for feeding the ESP board. The logic gate controls whether the voltage regulator is enabled or disabled, and therefore whether the microcontroller receives any power at all. Most of the time the regulator is disabled, but when the reed switch triggers, its input to the NAND gate is pulled low and the regulator is turned on, booting up the ESP board.
In order to stay on, the first thing the ESP board does is use a GPIO pin to drive the inverted input of the NAND gate high in order to keep the regulator enabled, and it has a window of about half a second to do this. Once the HTTP request is sent (and the battery voltage sensed), the ESP board pulls that pin low, disabling the regulator and turning itself off until the reed switch once again begins the process.
After seven months of use, the battery has dropped from 4.2 V to 3.9 V, so there’s plenty of life left. The project’s GitHub repository has the necessary code if you’d like to apply some of its ideas to your own projects. Alternately, you may wish to consider supercapacitors and solar in lieu of batteries. Even if ultra-level power savings isn’t your bag, when WiFi and networking is involved, there are software-level opportunities to be more efficient. Even a judicious 1 ms delay can save a surprising amount of power in the right circumstances.
Arduino has a library for quickly and easily setting up a simple web server on an ESP8622-based board, and [Tomaž] found that power consumption on an ESP-01 can be reduced a considerable amount by simply inserting a 1 ms delay in the right place. The reason this works isn’t because of some strange bug or oddball feature — it’s really just a side effect of how the hardware operates under the hood.
[Tomaž] uses the “hello world” example from ESP8266WebServer to explain. In it, the main loop essentially consists of calling
server.handleClient() forever. That process checks for incoming HTTP connections, handles them, sends responses, exits — and then does it all over again. A simple web server like this one spends most of its time waiting.
A far more efficient way to handle things would be to launch
server.handleClient() only when an incoming network connection calls for it, and put the hardware to sleep whenever that is not happening. However, that level of control just isn’t possible in the context of the Arduino’s ESP8266WebServer library.
So what’s to be done? The next best thing turns out to be a simple
delay(1) statement right after each
server.handleClient() call in the main loop.
Why does this work? Adding
delay(1) actually causes the CPU to spend the vast majority of its time in that one millisecond loop. And counting microseconds turns out to be a far less demanding task, power-wise, than checking for incoming network requests about a hundred thousand times per second. In [Tomaž]’s tests, that one millisecond delay reduced idle power consumption at 3.3 V from roughly 230 mW to around 70 mW — about 60% — while only delaying the web server’s response times by 6-8 milliseconds.
For simple web server applications, this is is for sure a good trick to keep in mind. There are also much more advanced techniques for saving power on ESP8266-based boards; from boards that barely sip a single microamp while sleeping, to coin-cell powered boards that go so far as to modify the TCP/IP stack to help squeeze every bit of power savings possible.