For devices that are destined for momentary and infrequent use as well as battery power, some kind of power saving is pretty much a required feature. For example, when [PJ Allen] turned two ESP8266-based NodeMCU development boards into a replacement wireless remote garage door opener, a handy USB power bank ended up serving as a bit of a cheat when migrating the remote away from the workbench. Instead of moving the board from USB to battery power and implementing some kind of sleep mode or auto-off, [PJ Allen] simply plugged in a USB power bank and let it do all the work.
This is how the feature works: some USB power banks turn themselves off unless they detect a meaningful current draw. That means that if the power bank is charging a phone, it stays on, but if it’s only lighting up a few LEDs, it’ll turn itself off. This feature can be a frustrating one, but [PJ Allen] realized that it could actually be useful for a device like his garage door remote. Turning on the power bank delivers 5 V to the NodeMCU board and allows it to work, but after about fifteen seconds, the power bank turns itself off. Sure, strapping a power bank to the remote makes the whole thing bigger than it needs to be, but it’s a pretty clever use of the minimum load as an effortless auto-off feature.
The NodeMCU boards in [PJ Allen]’s DIY remote use ESP-NOW for their wireless communications, a nifty connectionless protocol from Espressif that we’ve seen used in other projects as well, such as this ESP32-based walkie-talkie.
There’s no shortage of things to like about the ESP8266 and ESP32, but if we had to make a list of the best features these WiFi-enabled microcontrollers have to offer, their power management capabilities would certainly be near the top. Which is how we assumed [Mark] was able to take a whopping 23,475 pictures on his ESP32 camera while powered by nothing more exotic than four AA batteries from the grocery store.
But as it turns out, the full story is quite a bit more interesting. As far as we can tell, [Mark] isn’t bothering with the ESP32’s sleep modes all. In fact, it looks like you could pull this trick off with whatever chip you wanted, which certainly makes it worth mentally filing away for the future; even if it depends on a fairly specific use case.
In the most simplistic of terms, [Mark] is cutting power to the ESP32 completely when it’s not actively taking pictures. The clever circuit he’s come up with only turns on the microcontroller when a PIR sensor detects something moving around in front of the camera. Once the chip is powered up and running code, it brings one of its GPIO pins high which in turn triggers a 4N37 optoisolator connected to the gate on the circuit’s MOSFET. As long as the pin remains high, the circuit won’t cut power to the ESP32. This gives the chip time to take the requested number of pictures and get everything in order before bringing the pin low and allowing the circuit to pull the plug.
An urban planner once told me that every car requires at least four times as much space as they actually occupy. Each needs a spot on the roads, and three available parking spaces: one at home, one at work, and one to shop. Motorcycles are much smaller, but they still spend most of their time parked.
Motorcycles are the primary means of transport in Southeast Asia, and learning to safely drive one is an essential part of adapting to life here. Assuming it’s not pouring rain and you’re not flooded past your ankles, it’s actually quite a pleasant experience… until you have to park.
Unlike the parking lots you may be familiar with, there’s no expectation that your bike won’t be moved. In fact, it might very well end up on another floor, in another parking lot, or behind hundreds of impassable parked bikes on the roof. In the latter case, the attendant will shrug and suggest you come back in a few hours. Eventually, this won’t even register as a frustration – you will simply reason that there are plenty of other things that are more convenient here, like the weather (recent typhoon aside) or unlimited symmetrical fiber to the home for USD 5 a month.
That being said, with a little technology the problem could be lessened a bit while waiting for automated parking lots to become commonplace. On rare occasions I see people with little radio emitters that make their headlights flash, but they’re not terribly common here and require carrying yet another thing on my already full key chain (homes here typically use several different locks). It seemed pretty easy to pull off something similar using my smart phone with an ESP8266 running NodeMCU. I had been meaning to try out the sleep modes to save battery power anyway, so off I went.
The device is built around a tiny ARM microcontroller and an RFM69 radio module. The entire circuit is run by leeching power from an AC current transformer, wrapped around one of the power lines of an AC appliance. When an appliance draws over the minimum threshold current (500W on 230VAC, 250W on 115VAC), the device sends a packet out, which can be received and logged at the other end.
The best part of this project, however, is the writeup. The project is split into an 8-part series, breaking down the minutiae of the concepts at work to make this possible. It’s a great primer if you’re interested in designing low-power devices.
If you’re at all like us, or like [Vadim], you’ve got a stash of development boards in a shoebox on a shelf in your closet. If you’re better organized that we are, it might even be labeled “dev boards”. (Ah well, that’s a project for another day.) Anyway, reach into your box and pull one out, and put it to use. Do something trivial if you need to, but a dev board that’s driving a silly blinker is better than a dev board sitting in the dark.
[Vadim]’s good example to us all is going to serve as the brains for an automated plant watering system. That’s a low-demand application where the microcontroller can spend most of the time sleeping. [Vadim]’s first step, then was to get a real-time clock working with the hibernation mode. There’s working code inline in his blog.
If you use Arduino, you’ll feel at home in the Energia ecosystem. But it’s like ordering a Quarter Pounder with Cheese in Paris: Energia is a Royale with Cheese (YouTube) — it’s the little differences. And maybe that’s the point of the exercise; it’s always a good thing to try out something new, even if it’s only minimally different.
So grab that unused dev board off the shelf, struggle through the unfamiliar development environment and/or toolchain, but remember to keep an eye out for the sweet little differences. The more tools that you’re familiar with, the more solutions will spring to mind when you’re hacking on your next project.
For years, [Rasmus] has left his computer connected directly to the mains power so that he can turn it on via Wake on Lan. While powered down, it would still continuously consume about 6W of electricity, but now that he didn’t need it to be on standby so often, he wanted to make it more energy efficient.
In Denmark, where he lives, many people use power strips that have an onboard USB cable. These strips are meant to reduce the standby power consumption of PC peripherals such as monitors by powering on the mains sockets only when the computer is active. He decided the easiest way to cut his standby energy consumption to 0W would be to power his computer via this strip as well.
While it sounds great in theory, it presented a sort of chicken/egg problem. If the computer needs to be turned on for the power strip to recognize it, then how could he also supply power to the computer from the same strip? His solution was a small circuit that would charge up while the computer was running, and still hold enough juice to kickstart the PC’s boot process, thus turning on the power strip.
It really is an ingenious way to go about things, nice job!