How to meassure power consumption

Hi

I know this is not Arduino specific, but after browsing and searching i just couldn't figure out how to messure power consumption over time.

I need a method to meassure the total power consumption over the whole working cycle of an iot. Both in standby and sudden peaks while working are relevant to me, so instant measurement based on an amperemeter in series is not enough. Mostly because any amperemeter won't just be able to keep up with sudden changes (like when a radio transmits) and what really matters is amperes by time in the end.

I would like to know too how do you know your designs use as low as micro amperes at a given instant while in standby, and how are you certain there are no peaks of current that the multimeter cannot read fast enough.

Thanks a lot and apologies for the off topic if it is. I couldn't find a better section related to power consumption measurement techniques.

Gracias

1 Like

You will just need to have a current sensor and sample it fast enough to see sudden peaks as well as quiescent. If you know what activity is likely you could adapt the sampling rate accordingly.

1 Like

There is no magic method to detect these sudden peaks in consumption other than to constantly monitor the current by measuring it at the shortest possible intervals.

Could use an Arduino board to graph it out on a TFT screen or onto a SD card for viewing later...
What voltage is your current circuit?

1 Like

So, for peak meassurement you guys just use the multimeter in series with the positive of the power supply? My multimeter won't be able to show micro amperes, that is for sure. Beyond mili amperes there is a deep unknown for me with this method.

Also, the samples may get fast enough to sample the peaks if the multimeter can handle the rate to detect milisecond events (2KHz should be enough), but my eyes surely won't be able to notice the peak if the sampling is that fast. Maybe I need a new multimeter with a hold function that shows the maximum even if it drops after an split second?

Regarding the total power consumption over time, isn't there anything like the consumption counter we most have at home for our AC electricity installation? I could not find any at the electronics stores i usually purchase from.

Thanks for your time and the prompt responses.

12vdc at the lab. 10v to 16v at the deployment site. I use an Arduino Connector Carrier to power my MKR and deal with that voltage range.

Do yourself a huge favour and get one like this:

1 Like

There are some power meters that can measure how much power an IOT node uses, but the simple way is to power a node from an very low capacity battery, say a 25mahr one and time how long it lasts.

See an example here;

https://stuartsprojects.github.io/2020/02/20/just-how-long-can-a-sensor-battery-last.html

2 Likes

May I ask what would be the feature to look for? Is it the brand quality of this particular multimeter? Is it being true RMS?

I already have a multimeter so if i need a new one, I'd like to know what to look for before making a blind purchase based on your valuable and appreciated piece of advice.

1 Like

It can view amps, milliamps, and microamps. It also has a min/max button on it.

I am glad to hear that!! Blind purchases are never wise.

Not a multimeter, but a current sensor, controlled by mcu, to make the measurements in batch node and store the results in long-term memory or transfer it to the server/cloud.

1 Like

If you want a rough idea a good quality multimeter is usually fast enough, but if you want high accuracy, you could use a Teensy or Raspberry Pi. An Arduino has a similar speed to a lot of the newer DMMs. Both can run on 16mHz sometimes.

If you want to measure the sleep current of an IOT node, then a standard multimeter might be no-good.

When the node is transmitting say, the radio may use 100mA or so. But a multimeter on a 200mA range wont normally tell you much about the sleep current that may be in the 25uA or lower region.

Put the multimeter on the uA range and the burden voltage of the multimeter will kill most of the voltage supply to the IOT node when it transmits.

Details of a simple way to get around this are here;

https://stuartsprojects.github.io/2018/09/09/measuring-low-currents.html

So the conclusion from your combined experiences would be to meassure peak, normal and sleeping modes separately, but all of them setting up the amperimeter in series.

Meassure peaks with a fast enough sampling multimeter with max function.

Meassure standard operating current trying to guess the average.

Meassure the sleep mode current with an amperimeter capable of measuring micro amperes in the docens or at least in the hundreds if power is not such a big issue.

Thanks.

I guess I need a multimeter upgrade.

I suppose advertising is not allowed at the forum, but do you have a favourite brand other than the utterly expensive but magnificent Fluke?

The Fluke 87 is not really much good in fact for this type of task.

My GoTo multimeter for measure IOT node current is the OWON B35T+, it has a lower burden voltage that my Fluke 87 and it rather nicely autoranges, so you can see 100mA and it switches down to uA range in sleep mode.

1 Like

You want to measure the power use of an IoT device over its entire work cycle, including low-power standby and high-power moments, like when it sends data.

A regular ammeter (tool that measures current) might miss quick changes in power use. So, you need a special tool for this. Devices like the Joulescope or Otii Arc can track power use over time and show both low and high power use.

For checking very low power use during standby, these tools can help too. But it's also good to refer to the device's manual, which can give details on its power use in different modes.

Sorry if this is off-topic, but measuring power is important for IoT devices, so your question is relevant. Hope this helps!

¡Gracias!

2 Likes

Thank you all. I wish i could mark more than one post as solution.

I had a look at that Joulescope and Otii arc.,and man, i must say they look awesome. If I was a professional, i would have no doubt to purchase one of the Joulescope boxes immediately. It looks awesome, but at one thousand USD (or close), they are by far too much for me.

But i must insist, with that i would be able to tell how much current is used at every stage and decide which one to work with to reduce the average and total. Like an oscilloscope but for current. I am impressed with both the possibilities and its price.

I will keep using the described method, though. As a DIYer I cannot afford it. Also, I won't give up looking for a simpler DC current metter that just provides the total since the last reset. Useless to find where to focus the improvement efforts, but enough to tell how big must be the battery bank given the required operation duration.

On the DIY side to meassure the total power consumption over time, I was thinking about setting a 1ohm 10W cement resistor in series with the positive input of the arduino board, then read there voltage so I can tell how much current is really used.

My multimeter won't be able to sample that fast enough nor show the max, but should be able to work fine even when 2A are used by the GSM modules. Two volts less at the input should be fine as long as the connector carrier power buck can adapt quickly enough to sudden voltage changes. Datasheet says it is pretty quick, but I guess I would have to try.

If it is, i was planning on adding an integrator circuit (meaning one that actually does the integral function of meassured voltage). That should provide the total A per minute (or any time period) when meassured as voltage with my standard multimeter. Then a reset button to zero the integration circuit.

Not as beautiful as the Joulescope, not as good as a new multimeter, but should provide a measure of real world power consumption over time at a very low price point.

Any obvious flaws you could see on my plan at this early stage without schematics and part numbers?

1 Like

Ups. My bad. The integrator cannot be that. I would have to go creative to avoid the offset input problem to mess with my setup.

Uhmm. Brainstorming here though. I don't have anyone around to do some mirror talking to help clear my thoughts.

I was thinking about using an oscillator to generate a 1KHz wave, a frecuency modulator to increase frecuency according to the reading from the shunt resistor, and a simple counter counting the slopes. Subtracting the base count on the time period of interest it should be able to count the current used.

Is there an integrated circuit that could be set up to oscillate according to the input voltage? Something simpler than an FM modulator. Or perhaps that working at the edge case of central frecuency zero so the counter can add an slope for each uA per ms.

I will check what counters can do in terms of speed counting.

It feels like it would be easier to translate and amplify my shunt resistor voltage into AC power consumption and then just attach a plain old AC electricity counter. Maybe driving an small engine with the shunt resistor voltage as the speed control. Or just anything AC powered that could be controlled with DC. Too wide of control range though if I want to add microA over time and also the over 1A peaks, but I could use that slow response to somehow read the average, which is equivalent in the total amount to the original data.

Any ideas?