Many of the IoT devices that Azure Sphere can securely connect need to operate in power-constrained environments. We have heard from many customers who want to integrate Azure Sphere into devices powered by batteries, solar panels, and even supercapacitors. Power consumption is of paramount importance for these devices, as they typically need to operate on a strict power budget. The need to frequently replace batteries can result in a poor customer experience for consumer devices and can be an expensive and cumbersome process in the enterprise space.
As part of the 20.01 release of the Azure Sphere OS, we are excited to release Power Down, a feature that enables an application to put an Azure Sphere device into an ultra-low-power state from which it can be awoken at a specified time or in response to an event.
What is Power Down?
The Power Down state is the lowest possible power state that an Azure Sphere device can enter, short of being completely disconnected from a power supply. In Power Down, everything is powered off except the real-time clock (RTC). The device can then be awoken either after a specified amount of time (i.e. when the RTC alarm fires), or by an input signal triggering a wakeup GPIO pin.
Use case and power savings
Power Down is most useful for minimizing power consumption while the device is at rest—that is, not doing any meaningful work—for long periods of time. As such, devices that need to do either periodic or intermittent work will benefit the most from Power Down. The MT3620 can be configured to draw as little as 10μA while in the Power Down state, resulting in between a 10,000x and 50,000x reduction in power consumption compared to normal operation.
For example, say you have a device that needs to read data from some sensors, then upload the collected data to the cloud twice per day. In this scenario, the device in question can dramatically reduce power consumption by remaining in the Power Down state most of the time, then waking up twice per day to collect the data and perform the upload. Making use of Power Down on this device can reduce power consumption by over 99.9% and extend its projected lifetime by over 1300x compared to always leaving the device active.
Assuming the device is active for 1 minute per day (30 seconds per wake-up x 2), 200mA average current consumption while active, 0.01mA current consumption while in Power Down, and 12,000mWh from the 4xAA batteries.
The Azure Sphere OS exposes a simple programming model that enables apps to easily take advantage of Power Down. Apps must first declare the PowerControls capability in the app_manifest.json file with the ForcePowerDown value. This adds additional safety and security, ensuring that only designated apps can power down the device.
Declare the PowerConntrols capability field with the ForcePowerDown value to allow your app to power down the device
Once the capability is declared, apps can call the PowerManagement_ForceSystemPowerDown function from the new power management application library to put the device in the Power Down state, passing in an argument specifying the number of seconds for the device to stay in Power Down.
Call PowerManagement_ForceSystemPowerDown to put the device into the Power Down state
The device will then wake up after this specified amount of time or when the wakeup pin is activated, whichever comes first. Use of the wakeup pin is optional.
Power Down application lifecycle
The typical lifecycle flow for an app that uses Power Down
The best way to get started with Power Down is to try out the Power Down sample app in the azure-sphere-samples GitHub repo.
We have published hardware and software documentation that will help you get started prototyping devices that take advantage of Power Down:
- Hardware Documentation
- Software Documentation
About Azure Sphere
Azure Sphere is a secured, high-level application platform with built-in communication and security features for internet-connected devices. It comprises a secured, connected, crossover microcontroller unit (MCU), a custom high-level Linux-based operating system (OS), and a cloud-based security service that provides continuous, renewable security.