The ability to optimize an embedded system for how much energy it uses can have profound benefits. For example, a deployed IoT device may not require maintainers to visit the site for an additional 6 months or the development team may be able to decrease the size and weight of the battery which could product costs. I’ve recently been experimenting with a new energy monitor and optimizer, the Otii Arc from Qoitech.
The Otii Arc is essentially a light weight, portable, smart power supply. It contains two banana jack plugs that can be used to power an embedded system from 0.5 to 5.0 volts. The Otii Arc can supply the system with up to 250 milliamps of current when powered through USB or up to 2.5 amps if supplied with an external 7.5 – 9.0 volts supply. What makes the Otii Arc interesting is that not only is the output voltage configurable, but it contains several analog and digital sensors that can be used to sample voltage and current at 4 ksps.
First, the main banana jack plugs can be used to measure system supply currents ranging from 1 uA up to 5 amps. This allows a developer to closely monitor their system energy consumption. The 14-pin expansion connector includes a second current sensor that can be used to probe shunt resistors on the board. This could be used to monitor electrical subsystems such as the microcontroller, rf circuits or the power supply circuits. The expansion connector also provides developers with useful features such as a UART transmit and receive lie along with some general-purpose inputs and outputs.
What makes the Otii Arc helpful to developers as an optimization tool is the ability for it to sample these sensors and record the trace data. A developer can control the Otii Arc through the companion Otii software. The Otii software allows a developer to configure the output voltage along with the additional sensing capabilities. An example current trace can be seen in the image below:
One issue that developers often encounter when trying to optimize their batteries is that calculating the average current draw over a specified period can be difficult. The Otii software takes care of this by allowing a developer to highlight regions within the trace and then providing the minimum, maximum and average current over that period. This simple technique can be seen in the image below:
One might wonder how to synchronize the current measurements with what is happening on the system. It’s possible that different states could have similar current consumption or there could be inefficient states and without some way to know what is causing the current spike, a developer can’t optimize their system. The expansion connectors UART receive pin can be connected to the embedded system’s UART transmit and the software can transmit a string log on the state of the system. This information will that be captured with the trace and allow a developer to correlate the energy consumption with the system behavior.
So far, the Otii Arc has turned out to be a very useful and interesting tool to add to my energy optimization toolkit. The fact that it can be powered over USB, is light and very portable makes it easy to travel with and super simple to setup. The Otii software is also easy to use, intuitive and has a nice design. The only oddity that I encountered was that the GPIO pins are only controllable through a scripting package that can be used to automate the Otii Arc’s behavior. The scripting software package is an add-on which has a yearly subscription charge. When I inquired about the capability, they responded that the GPIO control would be available in future Otii software updates. In all honesty, I think the GPIO and scripting is a nice to have feature but not a must have feature for most developers looking to optimize their embedded system.