Lately, there's been a lot of focus on low power design.
Not only are customers coming to expect more function from their increasingly slimmer gadgets, it's increasingly commonplace to want that ever shrinking battery inside to keep things ticking along for days at a time...
Wireless charging isn't quite where it needs to be, with most of us still reaching for the cable when we need our coulomb counter starts circling zero. Coordinating the charging of even a modest selection of personal gadgets can be an ordeal in itself — we've all got our drawstring bag of cables, chargers, and converters that keep us connected throughout the day!
Beyond the being bound to a bag of the USB cables that might contain...
- Micro USB 2.0 / Micro USB 3.0 — for our sins...
- USB-C (but doesn't do PD)
- USB-C (does do PD, but only with some things)
- USB-C (Is a PD trigger hard wired to 20V, and you really should label that...)
There's also the physical burden of a relatively bulky, boxy battery cell. Our gadgets would be so much lighter, if only they could leave out the Li-ion cells from the BoM!
While we're likely not going to see perpetually powered phones any time soon, the trend has to start somewhere, and Jake Wachlin is kicking things off with a strong start, with his lumen-loving Ultra Low Power Feather MCU board that is able to clock through its lines of C, without a battery to be seen!
The most striking feature that you first notice of this Feather is that it's by all standards a bit back to front! With the board's primary power source, two KXOB25 monocrystalline solar cells, taking up most of the front face of the board, the brains of the show are booted to the back side of the board.
The Feather boards aren't exactly huge, so it's good to see that Wachlin was able to squeeze in enough active solar sell surface to cover the meager power requirements of the SAM L21 MCU. It's a shame to see this relatively uncommon part shoved out of sight, the choice of which is a talking point in itself, but those cells aren't going to be of much use positioned anywhere else, so we can't fault the layout!
So, with a power source laid out, and a processor for it to power, what's left on this low power load out?
There's s a a lightweight selection of sensors that let this board learn a little bit about what it's looking at.
- A ST LIS3DH triple-axis accelerometer measures the motions.
- A Bosch BMP280 picks out any changes in pressure, temperature and humidity, perfect for catching up on climatic conditions!
- Version 2 of the board sees the inclusion of an OPT3004 ambient light sensor from Texas Instruments. This spectral response of this part makes it perfect for keeping a closer eye on just how bright things are getting!
While its introduction to the community could perhaps have been less calamitous — the legal feud of Arduino LLC vs Arduino SRL resulted in the rather confusing coexistence of both the Zero and M0 Pro, both effectively the same board, but with bafflingly different pin mappings, and bootloaders.
Despite this difficult debut, the SAM D21 family gained notoriety when it was picked to power Adafruit's Metro M0 product range of prototyping boards, and has since been a staple part of any hobbyist hardware horde,
There is no denying the popularity of the D21 product line — it's a MCU platform we are all no doubt familiar with. Less familiar to many of us however, are the other members of the Microchip Cortex-M0+ family, designed to augment the standard specification of the D21 part, optimizing it for certain applications.
Not to be confused for the scourge of the world of platform gaming D, L, C, and also R, take on a different meaning in this context — instead of paid-for 1Ups, the advantage offered here comes in the form of application-specific siblings of the D21 we all know and love.
We don't often encounter these rarely seen relatives — such as the SAM L21, (low power) SAM C21 (5V I/O and core) and even SAM R21 (yup, that's 'R' as in 'Radio'!) variants. They aren't too often seen outside of the (typically) industrial contexts that demand their unique qualities — ultra-low power, extreme operating conditions, etc. have not been high on the radar of hobbyists -—until now that is, and this ULP implementation is a good indicator of the changes in feature focus.
Querying your preferred search engine for terms such as "energy harvesting, solar, circuit" will likely to lead you to offerings of all-in-one, application specific DC/DC converter ICs, switching converters, optimized to work with whatever conditions are found on their input terminals.
These parts are exceptional bits of engineering, with flavors that focus on converting ΔT into ΔV, via TEGs, to piezoelectric devices that produce power when poked and prodded.
Of course, it's no surprise to see a selection of parts suited for solar applications. These parts are designed to deal with the characteristic output of a PV cell in response to illumination.
These parts can siphon off a surprising amount of power form the environment, but for for something as simple as a single microcontroller, a simpler solution will suffice!
Wachlin has boiled his board town to the basics, with the output of his solar panels simply passed directly into a LDO, which provides the required system VCC of 3.3V. With the this specific part having a maximum input voltage of only 6V, the 8.92V that could potentially be produced by the set of series-stacked solar cells could pose a problem, should the circuit be subject to intense illumination.
Given such conditions aren't likely to be seen outside Sahara, the choice of a Zener diode to limit the few occasional excess volts is perfectly reasonable — chances are it'll likely not be seeing too much abuse, though a design deployed to equatorial regions might want to consider some alternative options, such as pats that offer MPPT functionality!
In power profiling the various modes of operation, Wachlin noted current consumption figures to be proud of, with his meter measuring less than a mA while in Power Mode 0 — active run time.
- Active: 285uA
- Idle: 194uA
- Standby: 9uA
When trying to optimize firmware for low power operation, it usually follows that it makes a great deal of sense to spend as much time as is possible with the MCU core in as low a state of power as possible.
This can mean having long periods of inactivity, with the controller only spooling up to a higher current consumption state of operation as and when is required, perhaps being kicked into life by a periodic pin change interrupt from a RTC, or a simple signal comparator indicating that a signal requires some closer inspection.
In doing so, not only are you only consuming far less power in total, but you can also start to look at ways of storing the energy that you aren't needlessly burning away! As this whole experiment has been an exercise in eliminating batteries, Wachlin won't be jumping to wire in a weighty ol' rechargeable cell, but instead has worked out that his circuit will work wonderfully with the wonders of a supercapacitor.
With a significant 0.33F worth of supercapacitor soldered into rev 2 of this solar-sipping board, along with a slight adjustment to the implementation of the on-board 3.3V LDO, we're sure that soon enough we'll be seeing this widget sat slugging away, without a wire in sight!
If you think this project could help shine a light on your low power development efforts, then take a look at Wachlin's project log or head straight on over to GitHub, where you can check out the EAGLE design files, and in addition to those, the source code that is critical to coordinating the low power cooperation of the MCU core and components!