Help Needed with Accurate Current Measurement for Low-Power Devices

Hey guys… :innocent:

I am currently working on a project that involves monitoring the power consumption of low-power IoT devices, specifically a battery-operated sensor node. The current consumption fluctuates significantly, from a few microamps in sleep mode to several milliamps during active transmission.

I have been using my Joulescope to measure the current draw, but I’m noticing that the readings tend to vary quite a bit, especially during the transition from sleep to active states. I’ve tried adjusting the sampling rate and experimented with different settings in the Joulescope UI, but I’m still having trouble getting stable, accurate measurements. I’m particularly interested in capturing the spikes accurately without losing detail on the low-current states.

Here is the points that was I faced in my project:

  • Are there recommended settings for measuring devices with such a wide dynamic range of current? I’ve been using auto-ranging, but I wonder if manual adjustments might yield better accuracy.

  • I’ve noticed some noise in the readings that I suspect might be affecting accuracy. What are the best practices for minimizing noise in such low-current measurements? Could the noise be coming from the way my device is powered or from environmental factors?

  • Does anyone have tips for post-processing the data to better understand the power consumption profile over time? I’m currently exporting the data to CSV and using Excel, but I’m open to using other tools if they offer more robust analysis features.

I also check this: https://forum.joulescope.com/t/accurate-measurement-of-mcus-sleep-currentsalesforce But I have not found any solution. Could anyone guide me about this?

Thanks in advance!

Respected community member! :blush:

Hi @nisha02 and welcome to the Joulescope forum!

The Joulescope JS220 measures accurately for most setups. However, the maximum current consumptions of devices continue to drop. You can set the JS220’s maximum current range for autoranging, like this:

You want to set it to the smallest current range that is still larger that they maximum current consumed by your device. You can determine the maximum current by running your JS220 at the full sample rate in the fixed 10A range. You can record to JLS if this takes a while to capture all of your states. Then set the maximum current range the the one that is just larger than the maximum current you measure.

Noise

In general, keep your wires short. Twist together the supply and return path wires to reduce the loop area and impedance. This helps to reduce noise pickup from the environment.

Post processing

I am not a fan of CSV and Excel. You can record to JLS, which is a proprietary but open source format. You can then easily load this data using the pyjls package into Python for analysis.

Does this help and answer your questions?