  Energy-constrained sensor nodes can adaptively optimize their energy
consumption if a continuous measurement exists. This is of particular
importance in scenarios of high dynamics such as energy harvesting or adaptive
task scheduling. However, self-measuring of power consumption at reasonable
cost and complexity is unavailable as a generic system service. In this paper,
we present Eco, a hardware-software co-design enabling generic energy
management on IoT nodes. Eco is tailored to devices with limited resources and
thus targets most of the upcoming IoT scenarios. The proposed measurement
module combines commodity components with a common system interfaces to achieve
easy, flexible integration with various hardware platforms and the RIOT IoT
operating system. We thoroughly evaluate and compare accuracy and overhead. Our
findings indicate that our commodity design competes well with highly optimized
solutions, while being significantly more versatile. We employ Eco for energy
management on RIOT and validate its readiness for deployment in a five-week
field trial integrated with energy harvesting.
