This is an old revision of the document!
Table of Contents
Overview of Batteryless Devices
Why Batteryless?
Electronic devices are being deployed in an ever-increasing array of roles: monitoring, wearables, and IoT devices are just a small sampling of the varying ways that these devices are becoming part of every day life. However, with more devices comes a greater demand to power them all, which is becoming an increasingly critical issue.
For small or mobile devices, the primary energy source has usually involved batteries in some fashion, but these are also the components with the shortest lifespan and most frequent need for replacement. The need to replace (much less dispose of) batteries for an ever-growing array of devices is quickly becoming a concern, particularly in applications where accessing the devices themselves is expensive or impractical (such as a nanosatellite deployed into orbit).
How Batteryless Devices Work
At the simplest level, batteryless devices replace a battery (or other power source) with an energy collector (solar, thermal, etc.) and at least one capacitor to both store power and drive the load. Depending on design needs and the task to be performed, two primary methods of energy management may be used:
- Intermittent operation: the device activates once a certain amount of power is accumulated, and performs task(s) until that energy is expended. Once expended, the device turns off until sufficient power is accumulated, and repeats.
- Matched operation: the device scales its energy usage based on the current energy received from the source/capacitor.
It should be noted that the circuit designed above is the simplest implementation: more complicated configurations (such as Federated Energy Storage) are discussed in their own article.
Design Considerations
Embedded Programming vs "Typical" (Application/Enterprise) Programming
Most batteryless devices are small, embedded circuits and so face the same limitations in memory, storage, and processing capability shared by their more typical kin. While there are unique challenges when utilizing an intermittent power source, many of the same restrictions apply: certain programming conventions that are suitable for a typical desktop/cloud application (e.g. recursive functions) are impractical or ill-advised in an embedded device.
Recovering from Power Loss
By their very nature batteryless systems must reckon with transient, unpredictable power supplies and long periods of downtime. There are varying ways to approach handling a variable energy supply (as noted above), but all intermittent systems must be prepared to handle a complete loss of power in some fashion. This is further complicated by the fact that most programming languages (and most programs) are designed and built around the assumption of consistent uptime: the relatively short uptime of most intermittent power supplies means a device can spend all its uptime reinitializing (instead of performing useful work) if not properly accounted for.
To this end, checkpointing
Timeliness/timing concerns
Depending on the application, collected data may need to be processed within a given time limit to be of any use. It is entirely possible for a device to collect data, but be unable to process it within the limit for various reasons: as a result, a device should be able to account for this possibility in situations where it is relevant.
Device synchronization and communication
The lack of consistent power means that communication between two batteryless devices can be challenging, as there is no guarantee both parties will have enough power to be active at a given time. Most communication protocols are also not designed around intermittent computing, often with communication reset/termination timers that are shorter than a given device's recharge period.
Limitations and Tradeoffs
- Power restrictions: Total power is considerably more constrained compared to a traditional device: for example, a traditional device may use its MCU to calculate whether a minimum voltage threshold has been reached, but in an intermittent circuit using the MCU in this fashion will often consume too much of the available power to be viable. Intermittent circuits must be designed not only around intermittent power supplies, but lower ones as well.
- Efficiency: Compared to a more traditional power or battery-fed circuit, an intermittent device must expend energy and processing time to record state in a non-violatile memory store in order to recover from outages. This required overhead limits the total amount of work an intermittent device can perform for a given amount of power, relative to a powered device performing a similar function.
Discussion