Optimizing Power Consumption
Power efficiency—energy efficiency if you’re a purist—has become perhaps the highest-profile aspect of system design. This is especially true for IoT applications where a device may need to operate for years on harvested energy or a cell battery. Thus, a critical stage of design is power optimization.
Typically, the first stage of power optimization is setting the power budget. For example, the system spec might state that the device has to be able to operate for a week without needing to be recharged. This spec will need to include potential use cases and their frequency of use.
One of the primary challenges with optimizing power consumption at the system level is accurately assessing how much energy is actually being consumed. Processors datasheets offer current consumption numbers based on the particular power mode the processor is placed in. But complex systems have complex interactions that are difficult to predict and track. Certainly, you can compute the time your main application loop will be active. However, this computation cannot take into account the impact of interrupts, exceptions, and the myriad variations that are part of “deterministic” programmable systems.
In reality, if you want to know the true power profile of a system, you need hardware.
Okay. That’s a half-truth. The full truth is that if you want an accurate power profile of a system, you need production hardware.
Consider profiling an Arduino- or Raspberry Pi-based system. Off-the-shelf modules make it extremely easy to build prototypes that provide all the capabilities of production hardware. However, there is a huge difference between a prototype and a production board.
Prototypes are often built using off-the-shelf boards. This is a fast and efficient way to prove out an idea and then implement it. However, your final prototype will likely consist of several boards or shields clumped together. You may also have many wires soldered across the board. The connectors between boards can add a significant energy drain, depending on how much traffic runs across them. The same is true with wires.
This is just one of the power issues relevant to prototype boards. Based on different use cases, the power profile of a prototype board will be skewed. So how do you tell if the design meets your power budget? More importantly, are you safe taking it to production?
Now consider a production or close-to-production board. This board will have the same functionality as the prototype board. This production board will be built using tools that allow you to drag-and-drop modules into place. These tools enable you to make a production version of a prototype for a relatively low cost. Now, instead of profiling a tower of boards, you’ll be measuring a single-board design with much more efficient routing. The power profile you measure will be accurate and give you a true understanding of how well you’ve met your power budget.
It may be the case that your design does not meet its power budget. Much better to discover this before you go to production. Think of that first production board as a low-cost investment in avoiding bringing a failed product to market. In addition, you can now use your understanding of how the design consumes power to target your optimization efforts to best effect.
Take a look at some Gumstix customer success stories or contact Gumstix today to learn more about their products, design tools, and services. Or try out Upverter, their customized module design tool, for yourself.