<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Low cost high resolution ampere meter for automated power tests for constrained devices</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Mario Hoss</string-name>
          <email>mario.hoss@h-da.de</email>
          <xref ref-type="aff" rid="aff1">1</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Florian Westmeier</string-name>
          <email>florian.westmeier@stud.h-da.de</email>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Jens-Peter Akelbein</string-name>
          <email>jens-peter.akelbein@h-da.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Professor for Computer and Software Engineering</institution>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Research Assistant</institution>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>University of Applied Sciences</institution>
          ,
          <addr-line>Darmstadt</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <fpage>81</fpage>
      <lpage>88</lpage>
      <abstract>
        <p>In recent years, there has been a trend for operating systems to replace more and more conventional baremetal applications, even in constrained class 1 and 2 devices. This leads to new challenges for battery-powered IoT devices, where the battery should not be recharged or replaced regularly. The energy consumption of software must be considered throughout the development. For software that is encapsulated by an operating system and runs on multiple different hardware platforms, this means that power consumption must be determined for each of them. This paper proposes a measuring unit to enable automated regression testing for a variety of different hardware platforms with individual range and resolution requirements. A prototype was created and evaluated in which multiple different shunt resistor measurement modules are switched out by an analog multiplexer, controlled by a HIL platform. The results show that the approach is feasible and offers the possibility of a cheap, scalable, easily customizable measuring unit for the usage in automated power tests.</p>
      </abstract>
      <kwd-group>
        <kwd>Current measurement</kwd>
        <kwd>Automatic testing</kwd>
        <kwd>IoT</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        Driven by the exponential growth of the Internet of Things (IoT) it can be
observed that a large ratio of these interconnected things are constrained
devices [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. Wearables, smart homes, smart cities and the Industrial IoT introduce
embedded devices not only limited in terms of CPU power, but restricted by
the available energy. This trend is reflected by terms like ”Set-and-forget”-
devices [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] equipped with non-replaceable batteries for ”lifetime-energy-limited”
usage, and by ”period-energy-limited” applications replacing batteries
periodically [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. Currently, such devices achieve lifetimes of 5 till 10 years with a typical
coin cell battery (like CR2032). Most of the time such devices reside in energy
efficient deep sleep modes resulting in an energy consumption less than a factor
10−6 compared to active modes. Different to earlier generations of constrained
devices, it is no longer common practice deploying hardware specific baremetal
applications. With the spread of operation systems (OS) for class 1 and class 2
2
constrained devices, large parts of the software consists of hardware independent
code running on multiple different hardware platforms. To manage the
resulting complexity and allow for a safe maintainability of all feasible platforms,
it becomes necessary to introduce automated testing, especially in the form of
regressions.
      </p>
      <p>For verifying ”lifetime energy-limited” devices, tests should not be restricted
to finding functional defects only. Test cases should also aim for discovering
abnormal energy consumption which needs to be classified as a non-functional
defect of a devices behavior. Beyond finding such defects, an automated test
infrastructure allows monitoring the code down to individual code changes which
may trigger changes of power usage resulting in savings or increases. To
determine the energy consumption of a given piece of code, it is either necessary to
measure the execution on the target hardware with a power analyzer providing a
large enough range and resolution, or to have a sufficient accurate energy model
of the target platform. Both approaches are problematic in regards to the scale
of the resulting test environment. With the usage of operating systems
supporting dozens or hundreds of boards, it becomes necessary to test applications on
every OS supported board. As a result, the energy consumption also needs to
be predicted for every one of those boards.</p>
      <p>This paper proposes a low cost, easily obtainable energy measuring setup for
monitoring changes in energy consumption for performing automated regression
testing on constrained devices. Furthermore, an evaluation is performed whether
the proposed measuring unit is suitable for practical usage in automated testing
environments.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Related Work</title>
      <p>
        In order to create a model of a devices energy consumption, it is necessary to
determine CPU power usage driven by individual instructions as well as the
power consumed by peripheral hardware components like transceivers. The first
model on instruction level was proposed in [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. The average power consumption
of a system is measured and multiplied by the clock period and the number
of clock cycles. Later approaches focus on determining the worst-case energy
consumption (WCEC) as the energy useage may vary between instructions with
shorter or longer runtime [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. Strict bounds of WCEC-based analysis were shown
lately, as determining data dependent dynamic power consumptions results in an
NP-Hard problem, where an approximation cannot be made to an usable degree
[
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. Former studies often found the variation in the data dependent dynamic
power consumption to be not significant. So it is accounted as a constant value
[
        <xref ref-type="bibr" rid="ref3 ref4 ref6 ref7">3,4,6,7</xref>
        ]. However, in class 2 constrained devices examined in [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], the variation of
the data dependent power consumption amounts to up to 42% of a cores power
dissipation. Another study shows cases with even up to 50% [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. As a result,
current approaches focus on predicting the WCEC by methods using statistical
analysis or genetic algorithms instead [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
      </p>
      <p>
        The energy model for different hardware components and the respective
power modes often consists of a finite state machine. The target hardware is
modeled as different power states and their connecting transitions. For all
identified states and transitions, the power consumption is measured. The parameters
influencing the power consumption of a state, as well as their behavior, need
to be identified. This can be achieved by utilizing regression analysis to create
approximation functions for the parameter dependent energy consumption [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ].
The first approach to create such a mode used the utilization of a peripheral
hardware module as a trigger for a transition [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. Later work instead correlated
power bursts to individual system calls, as the power states of peripheral
hardware often do not line up with their utilization in software [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. A transceiver
for example does not immediately go back to its sleep state after sending the
data, but will continue to consume power for a short while after [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ].
Automatically finding these states and refining the state machines is still an open research
question. In practice the creation of state machines for energy models require a
lot of repetitive manual interactions [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ].
      </p>
      <p>
        Different to energy models which enable static code analysis, it is also possible
to run each test on the target hardware, measure the resulting power
consumption and correlate it to the source code. The most common and cheap approach
is to measure the voltage drop over a shunt resistor by utilizing an analog
digital converter(ADC). Additionally, an Operational Amplifier(OpAmp) is used to
amplify the voltage drop [
        <xref ref-type="bibr" rid="ref14 ref15 ref16">14–16</xref>
        ]. Other authors proposed the usage of multiple
different shunt resistors or measuring units to reach a higher range and
resolution. For the ”Nemo” [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] a microcontroller is switching out five different stages
of shunt resistors. In [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] a second shunt resistor OpAmp combination can get
added to the circuit, feeding into the same ADC. In the ”Rocketlogger” [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] two
additional complete measuring units can be added, with the resulting voltage
drop in the circuit being compensated by a differential amplifier.
3
      </p>
    </sec>
    <sec id="sec-3">
      <title>Design Considerations</title>
      <p>As it is necessary to determine the power consumption of code being executed on
different hardware platforms, the use of power models as well as commercially
available measuring units are not practical solutions due to the cost incurred
with each hardware target, as well as manufacturer specific interoperability
issues. While singular shunt ADC measuring units can generally not provide the
needed range and resolution, there are solutions in the field of large scale
wireless sensor network (WSN) verification environments (or testbeds), which achieve
the necessary range by switching out shunts or adding complete measuring units.
However, the solutions are designed to measure the same range and resolution
for each identical hardware platform in a testbed.</p>
      <p>The presented approach is designed to switch out multiple measuring
modules, taking advantage of the availability of breakout boards for low cost power
monitor ICs. By doing so, measurement modules can be fitted with different
shunt resistors to match individual hardware platforms and their respective
en4
ergy modes. This way, the proposed measuring setup can be fitted for different
ranges and resolutions, but be designed as a mass-producible cheap adapter
board. With the ability to calibrate individual measurement modules, a switch
occurs as soon as the target hardware changes from any of the multiple sleep
modes to active processing. This allows to detect differences in the resulting
power consumption of functionalities in different power modes requiring
different resolution ranges. Should inaccuracies occur as a result of the switch and
mask spikes in power consumption, it is possible to repeat tests without
automated range switching, once for each measurement module.</p>
      <p>A common approach for automated tests on constrained devices is the use
of a hardware-in-the-loop (HIL) platform that flashes a new executable onto the
target and sends the results to an automation server. The proposed measuring
setup is connected to the HIL platform, a Raspberry Pi, which is triggered
by a Jenkins Server to flash the target platform and return the output. For
automated power tests, measurements are tagged with timestamps for being
correlated with the targets output. This is realized by matching the given time
stamp of the measuring unit with one of the target platform. In this way, the
measurements are timestamped in a real-time system (RTS) and processed on
the more powerful HIL platform
4</p>
    </sec>
    <sec id="sec-4">
      <title>Measurement Unit</title>
      <p>Each measurement module uses a Texas Instruments INA226 power and current
monitor IC. Here, the IC is used as a high side current sense amplifier, in which
the voltage drop over an external shunt resistor is read by a 16 bit ADC. The
shunt is connected in series with the load to be measured, so that the voltage</p>
      <p>Measuring unit for automated power tests
5
drop can be used to calculate the current through the entire circuit. The module
is connected over an I2C bus also providing internal calibration and the option
to read only the average over a series of measurements to correct individual
measurement errors.</p>
      <p>The INA226 is capable of measuring a voltage drop between -81.9175 mV
and 81.92 mV resulting in a resolution of 2.5 μV per bit step of the ADC. So
for example, a shunt resistor of 1.5Ω leads to a range of up to 54.61 mA with
a resolution of 1.6 μA. Two INA226 breakout boards from CJMCU fitted with
different sized shunt resistors are connected in parallel to each other and via
an MAX4619 analog CMOS multiplexer in series to the load. To change the
measuring range, the multiplexer switches one of the two measurement modules
into the circuit. At a supply voltage of 3.3V, the MAX4619 switching process
takes a maximum of 25 ns according to its data sheet. A capacitor with series
resistor is connected in parallel to guarantee the power supply to the load during
the switching process.</p>
      <p>The measurement modules and the multiplexer are controlled by an RTS, in
this case an Arduino Uno. The INA226 are configured for the shortest conversion
time of 140 μs per sample. Each INA226 notifies the RTS about newly available
samples via a PIN interrupt. The measured data of the active unit is then read via
a dedicated I2C bus. Once a measurement matches a predefined threshold, the
RTS switches the measuring ranges and modules by activating the multiplexer.</p>
      <p>The measured values are timestamped and transmitted to the HIL platform
via a serial interface. The average function of the INA226 is not used for
preserving all raw data as evaluation input.
5</p>
    </sec>
    <sec id="sec-5">
      <title>Evaluation</title>
      <p>
        In order to achieve a resolution of the measured current of at least 1 μA, the first
module is equipped with two 1% resistors connected in parallel. Both together
lead to a resistance of about 2.56 Ω. According to Ohms Law, the circuit offers
a resolution of around 0.98 μA. The second measurement module is equipped
with a 1.5 Ω resistor for measuring currents of up to 54.61 mA. The capacitor
(4,7 nF with a 66 Ω series resistor) is dimensioned to recharge within the ADC
conversion time and to not drop below 3V during a switching process in order to
measure a SAM R21 Xplained Pro Board without modifications [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]. This allows
for a module to switch after each measurement. Before the first measurement
takes place the capacitor has to be charged for 31.02 μs.
      </p>
      <p>The time resolution between two new samples currently averages only 4.35
ms at the HIL platform. This is caused by the decision to use an Arduino Uno
as RTS. The serial connection from RTS to HIL platform as well as the I2C
connection between INA226 and RTS are both bottlenecks in the current setup.
The transmission of unoptimized log text takes a minimum of 3.906 ms including
the measured value and the timestamp at 45 byte using a baud rate of 115200
bd. The chosen software I2C library supports multiple I2C interfaces where the
I2C bus speed is only 65 kHz. With the standard I2C library the sample rate
6
is around 470 μs at 400kHz bus speed for requesting and receiving two byte
of measurement data. Looking at a logic trace, the transmission of two byte of
data at 400 kHz takes around 70 μs. An I2C command to read from a specific
register takes an expected transmission of 5 byte data requiring 190 μs. The
library however reads an additional configuration register.</p>
      <p>The accuracy of the measured values was performed using resistors with a
tolerance of 1 %. For the lower end of the measuring range with a 470 kΩ and
in the upper end with a 100 Ω resistor. The expected measured value for the
lower measuring range at 3.3 V is between 6.95 μA and 7.09 μA, due to the
tolerance of the resistors. The actual measured value varies between 5.01 μA
and 8.93 μA. The average of several measurements results in a value of 6.94
μA. Thus the relative error is only 0.2%. For the upper measuring range, the
expected value is between 32.67 mA and 33.3 mA. The actual measured current
fluctuated between 30.50 mA and 30.51 mA. The mean value is 30.50 μA, the
relative error 6.5%.</p>
      <p>Both measurement modules operate continuously. Since only one
measurement module in the circuit is flown by a current at a time, the other one can
not measure a voltage drop at the shunt. Switching the multiplexer to the other
measurement module during a running measurement results in an erroneous
measurement. For preventing the creation of measurement values, the first
sample after a changeover is ignored by the RTS. The first valid sample after this
switching process is delivered after a maximal two times of the time resolution.
6</p>
    </sec>
    <sec id="sec-6">
      <title>Conclusion and future work</title>
      <p>A cheap, scaleable, easily customizable and digitally controllable measuring unit
was developed to enable automated power test for a wide array of constrained
devices. While the choice of RTS did act as a bottleneck for the sample rate
and, as a result, the switching delay, it can be fixed by replacing the RTS.
With the INA226 supporting I2C high-speed mode and the option to connect
the RTS to the HIL platform via JTAG, measurements at a sample rate of
close to the 140μs conversion time of the INA226 should be feasible. Measuring
inaccuracies of the INA226 in the setup are largely limited to one resolution
step, with only around 2% of the measured values for the 470k resistor being
off by more then one step. This can be adjusted by choosing a shunt resistor
resulting in double the resolution and half the range. Such tradeoff would be
reasonable for measuring the sleep modes. However, moving from a breadboard
prototype with 1% resistors as a shunt to a PBC and a lower tolerance shunt
resistor should further improve the measurements accuracy.</p>
      <p>To cover the error class of extremely short wake-ups from sleep modes, the
use of an analog multiplexer allows more modules to be added and selected on
a per test basis. So for example an additional module with a high sample rate
ADC and a low range shunt resistor could be added.</p>
      <p>A future version of the measuring unit is planned using a RTS supporting
high-speed I2C communication as well as a JTAG interface. Such improvement</p>
      <p>Measuring unit for automated power tests
7
allows a higher sample throughput and automated firmware changes for the
measuring units. For example a ATSAMD21 based RTS can support multiple
high-speed I2C interfaces via their SERCOM architecture.</p>
      <p>M. Hoss et al.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Bormann</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ersue</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Keranen</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Terminology for constrained-node networks</article-title>
          .
          <source>RFC 7228</source>
          , RFC Editor (May
          <year>2014</year>
          ), http://www.rfc-editor.org/rfc/rfc7228.txt
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Jayakumar</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lee</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lee</surname>
            ,
            <given-names>W.S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Raha</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kim</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Raghunathan</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          :
          <article-title>Powering the internet of things</article-title>
          .
          <source>In: Proceedings of the 2014 International Symposium on Low Power Electronics and Design</source>
          . pp.
          <fpage>375</fpage>
          -
          <lpage>380</lpage>
          . ISLPED '14,
          <string-name>
            <surname>ACM</surname>
          </string-name>
          , New York, NY, USA (
          <year>2014</year>
          ). https://doi.org/10.1145/2627369.2631644
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Tiwari</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Malik</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wolfe</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lee</surname>
          </string-name>
          , M.T..
          <article-title>: Instruction level power analysis and optimization of software</article-title>
          .
          <source>In: Proceedings of 9th International Conference on VLSI Design</source>
          . pp.
          <fpage>326</fpage>
          -
          <lpage>328</lpage>
          (
          <year>Jan 1996</year>
          ). https://doi.org/10.1109/ICVD.
          <year>1996</year>
          .489624
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Jayaseelan</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mitra</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Li</surname>
            ,
            <given-names>X.</given-names>
          </string-name>
          :
          <article-title>Estimating the worst-case energy consumption of embedded software</article-title>
          .
          <source>In: 12th IEEE Real-Time and Embedded Technology and Applications Symposium (RTAS'06)</source>
          . pp.
          <fpage>81</fpage>
          -
          <lpage>90</lpage>
          (
          <year>April 2006</year>
          ). https://doi.org/10.1109/RTAS.
          <year>2006</year>
          .17
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Morse</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kerrison</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Eder</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <article-title>On the limitations of analyzing worst-case dynamic energy of processing</article-title>
          .
          <source>ACM Trans. Embed. Comput. Syst</source>
          .
          <volume>17</volume>
          (
          <issue>3</issue>
          ),
          <volume>59</volume>
          :
          <fpage>1</fpage>
          -
          <lpage>59</lpage>
          :
          <fpage>22</fpage>
          (Feb
          <year>2018</year>
          ). https://doi.org/10.1145/3173042
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Wgemann</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Distler</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hnig</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Janker</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kapitza</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schrder-Preikschat</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          :
          <article-title>Worst-case energy consumption analysis for energy-constrained embedded systems</article-title>
          .
          <source>In: 27th Euromicro Conference on Real-Time Systems</source>
          . pp.
          <fpage>105</fpage>
          -
          <lpage>114</lpage>
          (
          <year>July 2015</year>
          ). https://doi.org/10.1109/ECRTS.
          <year>2015</year>
          .17
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Georgiou</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kerrison</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chamski</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Eder</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <article-title>Energy transparency for deeply embedded programs</article-title>
          .
          <source>ACM Trans. Archit. Code Optim</source>
          .
          <volume>14</volume>
          (
          <issue>1</issue>
          ), 8:
          <fpage>1</fpage>
          -
          <lpage>8</lpage>
          :
          <fpage>26</fpage>
          (Mar
          <year>2017</year>
          ). https://doi.org/10.1145/3046679
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Ascia</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Catania</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Palesi</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sarta</surname>
            ,
            <given-names>D.:</given-names>
          </string-name>
          <article-title>An instruction-level power analysis model with data dependency</article-title>
          .
          <source>VLSI Design</source>
          <volume>12</volume>
          (
          <issue>2</issue>
          ),
          <fpage>245</fpage>
          -
          <lpage>273</lpage>
          (
          <year>2001</year>
          ). https://doi.org/10.1155/
          <year>2001</year>
          /82129
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Pallister</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kerrison</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Morse</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Eder</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <article-title>Data dependent energy modeling for worst case energy consumption analysis</article-title>
          .
          <source>In: Proceedings of the 20th International Workshop on Software and Compilers for Embedded Systems</source>
          . pp.
          <fpage>51</fpage>
          -
          <lpage>59</lpage>
          . SCOPES '17,
          <string-name>
            <surname>ACM</surname>
          </string-name>
          , New York, NY, USA (
          <year>2017</year>
          ). https://doi.org/10.1145/3078659.3078666
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Friesel</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Buschhoff</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Spinczyk</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          :
          <article-title>Parameter-aware energy models for embedded-system peripherals</article-title>
          .
          <source>In: 2018 IEEE 13th International Symposium on Industrial Embedded Systems (SIES)</source>
          . pp.
          <fpage>1</fpage>
          -
          <lpage>4</lpage>
          (
          <year>June 2018</year>
          ). https://doi.org/10.1109/SIES.
          <year>2018</year>
          .8442096
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Shnayder</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hempstead</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chen</surname>
            ,
            <given-names>B.r.</given-names>
          </string-name>
          , Allen,
          <string-name>
            <given-names>G.W.</given-names>
            ,
            <surname>Welsh</surname>
          </string-name>
          ,
          <string-name>
            <surname>M.</surname>
          </string-name>
          :
          <article-title>Simulating the power consumption of large-scale sensor network applications</article-title>
          .
          <source>In: Proceedings of the 2Nd International Conference on Embedded Networked Sensor Systems</source>
          . pp.
          <fpage>188</fpage>
          -
          <lpage>200</lpage>
          . SenSys '04,
          <string-name>
            <surname>ACM</surname>
          </string-name>
          , New York, NY, USA (
          <year>2004</year>
          ). https://doi.org/10.1145/1031495.1031518
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Pathak</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hu</surname>
            ,
            <given-names>Y.C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zhang</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bahl</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wang</surname>
            ,
            <given-names>Y.M.</given-names>
          </string-name>
          :
          <article-title>Fine-grained power modeling for smartphones using system call tracing</article-title>
          .
          <source>In: Proceedings of the Sixth Conference on Computer Systems</source>
          . pp.
          <fpage>153</fpage>
          -
          <lpage>168</lpage>
          . EuroSys '11,
          <string-name>
            <surname>ACM</surname>
          </string-name>
          , New York, NY, USA (
          <year>2011</year>
          ). https://doi.org/10.1145/1966445.1966460
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Buschhoff</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Friesel</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Spinczyk</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          :
          <article-title>Energy models in the loop</article-title>
          .
          <source>Procedia Computer Science</source>
          <volume>130</volume>
          ,
          <fpage>1063</fpage>
          -
          <lpage>1068</lpage>
          (
          <year>2018</year>
          ). https://doi.org/10.1016/j.procs.
          <year>2018</year>
          .
          <volume>04</volume>
          .154,
          <source>the 9th International Conference on Ambient Systems, Networks and Technologies (ANT 2018) / The 8th International Conference on Sustainable Energy Information Technology (SEIT-</source>
          <year>2018</year>
          ) / Affiliated Workshops
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Haratcherev</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Halkes</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Parker</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Visser</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Langendoen</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <article-title>PowerBench: A Scalable Testbed Infrastructure for Benchmarking Power Consumption</article-title>
          , pp.
          <fpage>37</fpage>
          -
          <lpage>44</lpage>
          . s.n. (
          <year>2008</year>
          ), haratcherev:2008
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Hartung</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kulau</surname>
            ,
            <given-names>U.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wolf</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          :
          <article-title>Distributed energy measurement in wsns for outdoor applications</article-title>
          .
          <source>In: 2016 13th Annual IEEE International Conference on Sensing, Communication, and Networking (SECON)</source>
          . pp.
          <fpage>1</fpage>
          -
          <lpage>9</lpage>
          (
          <year>June 2016</year>
          ). https://doi.org/10.1109/SAHCN.
          <year>2016</year>
          .7732983
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Lim</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ferrari</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zimmerling</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Walser</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sommer</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Beutel</surname>
          </string-name>
          , J.:
          <article-title>Flocklab: A testbed for distributed, synchronized tracing and profiling of wireless embedded systems</article-title>
          .
          <source>In: 2013 ACM/IEEE International Conference on Information Processing in Sensor Networks (IPSN)</source>
          . pp.
          <fpage>153</fpage>
          -
          <lpage>165</lpage>
          (
          <year>April 2013</year>
          ). https://doi.org/10.1145/2461381.2461402
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Zhou</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Xing</surname>
          </string-name>
          , G.:
          <article-title>Nemo: A high-fidelity noninvasive power meter system for wireless sensor networks</article-title>
          .
          <source>In: 2013 ACM/IEEE International Conference on Information Processing in Sensor Networks (IPSN)</source>
          . pp.
          <fpage>141</fpage>
          -
          <lpage>152</lpage>
          (
          <year>April 2013</year>
          ). https://doi.org/10.1145/2461381.2461426
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Ptsch</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Berger</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          , Springer, A.:
          <article-title>Efficient analysis of power consumption behaviour of embedded wireless iot systems</article-title>
          .
          <source>In: 2017 IEEE International Instrumentation and Measurement Technology Conference (I2MTC)</source>
          . pp.
          <fpage>1</fpage>
          -
          <lpage>6</lpage>
          (May
          <year>2017</year>
          ). https://doi.org/10.1109/I2MTC.
          <year>2017</year>
          .7969658
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Sigrist</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gomez</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lim</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lippuner</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Leubin</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Thiele</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          :
          <article-title>Measurement and validation of energy harvesting iot devices</article-title>
          .
          <source>In: Design, Automation Test in Europe Conference Exhibition (DATE)</source>
          ,
          <year>2017</year>
          . pp.
          <fpage>1159</fpage>
          -
          <lpage>1164</lpage>
          (
          <year>March 2017</year>
          ). https://doi.org/10.23919/DATE.
          <year>2017</year>
          .7927164
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Atmel</surname>
          </string-name>
          <article-title>Corporation: SAM R21 Xplained Pro User Guide (Apr</article-title>
          <year>2016</year>
          ), http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-42243
          <string-name>
            <surname>-SAMR21-X plained-Pro</surname>
          </string-name>
          User-Guide.pdf, rev.:
          <string-name>
            <surname>Atmel-</surname>
          </string-name>
          42243D
          <string-name>
            <surname>-SAM-R21-Xplained-Pro User</surname>
          </string-name>
          Guide-
          <volume>04</volume>
          /
          <year>2016</year>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>