Close

Power Profiler Kit II (PPK2) vs MetaShunt - Accuracy Implications for Ultra Low Power and IoT

A project log for MetaShunt: High Dynamic Range Current Measurement

A low-cost and accurate tool for analyzing the power consumption of ultra-low power and IoT devices with rapidly changing current usage

jake-wachlinJake Wachlin 12/23/2025 at 18:452 Comments

After confirming the better than 1% calibrated accuracy of MetaShunt V2 in the previous logs, I wanted to go back to compare results against the Power Profiler Kit II (PPK2) from Nordic Semi. The PPK2 is the go-to power profiling tool for most hobbyists, but the +/- 10% accuracy of the PPK2 can lead to issues in power profiling. With that level of uncertainty, it can be difficult to discern issues with firmware. Is that subsystem of your project actually off? If it takes 10% of expected current, how do you know? 

This blog post will cover three topics. First, a very low power example with the Nanosleeper development board, looking at current measurements and what that implies for battery life estimates. Second, focusing in on the implications of accumulated charge measurement, and how MetaShunt V2 LT separates the measurements from being tied to a computer for long-term measurements. Third, a higher power ESP32 example, comparing the results between the PPK2 and MetaShunt V2 for IoT applications. Let's take a look!


Nanosleeper Current Monitoring

Nanosleeper was set up to periodically wake up, flash LEDs, busy wait, enter low power mode, then enter deep sleep. The pictures below show the physical setup, and screenshots from the PPK2 GUI and the MetaShunt V2 GUI.

From these views, it is hard to tell what's going on. If you didn't know better, you might believe that the PPK2 results are reliable, since the profile matches what is expected. However, when we plot the data on top of each other and zoom into a single wakeup cycle, we can see the significant differences in results. The current is especially different in the busy wait section, where PPK2 indicates the current is about 673uA, while MetaShunt V2 measures current at 584uA. This difference of 89uA is 15% larger than the MetaShunt's measurement! Note that the apparently higher noise of MetaShunt V2 is because in this test the PPK2 data was averaged out to 100 S/S, while the MetaShunt data is about 6,000 S/S.


Nanosleeper Charge Accumulation

One key feature of MetaShunt V2 LT is the ability to, without a computer externally recording and accumulating data, monitor accumulated charge. The PPK2 GUI can do this, but requires logging of data, which adds up quickly and is logistically difficult over days-long or months-long tests. For this example, we also compare the energy over time (assuming 3.3V) for both MetaShunt V2  and PPK2. This is shown in the plot below. Note it diverges over time.

From the PPK2 GUI, we see a charge accumulation of 40.06mC over 301s. I took a picture of MetaShunt V2's display at 300s, which indicated 10,335 nAh. If we scale the PPK2 data back to 300s, it is 39.93mC, or 11,092 nAh. This is a difference of 7.3%, which can be quite significant! As we saw in the previous section as well, the biggest inaccuracy was during busy wait mode, and if Nanosleeper was in busy wait mode for a larger portion of time, this charge accumulation difference would be larger. Remember also, if this test were longer than 5 minutes (days-long or months-long), the PPK2 would need to be actively logging to a computer with GUI up and computer not going to sleep, while MetaShunt V2 can simply be connected to any USB power supply.


ESP32 Comparison

To compare a higher-power, IoT focused example, I powered an ESP32 development board with the PPK2, while using the MetaShunt V2 LT as a low-side, long-term charge accumulation measurement tool. Due to isolation issues, it wasn't possible to have both log simultaneously, but we can compare the total charge accumulation after 5 minutes. The pictures below shows the connection and the results from the PPK2. Note that the current is significantly higher than the Nanosleeper tests.

The screenshot and image below show the PPK2 results and results from the MetaShunt V2 LT after 5 minutes.

Over 302.6 seconds, the PPK2 measured 2.78C, which scaled to 300s is 2.76C. This is equivalent to 767uAh. MetaShunt V2 LT measured 780 uAh over the same 300s, about 1.6% more. In this higher current application, it appears that the PPK2 is measuring more accurately than it was for the low current of Nanosleeper, but nonetheless for long-term measurement MetaShunt V2 LT makes use so much easier than the PPK2.

Discussions

Stephan Walter wrote 12/26/2025 at 21:54 point

The PPK2 has 5 current ranges, for which the gain can be set in the "advanced configuration" section of the Power Profiler tool. 600uA falls into range 3, where the default value of 1 seems to be quite far off the true value. I have seen the same on my unit, just connecting a 1.5kohm resistor when the PPK2 outputs 1V. A gain value of 0.92 seems to give more accurate values. Of course I should test the upper end of the range as well.

You graph shows a good match between PPK2 and MetaShunt below 200uA, which corresponds to range 2. So for that range the gain is probably ok. The ESP32 would probably fall into range 4 or 5 at least some of the time.

It looks like Nordic have cheapened out somewhere, they probably should have either used higher precision parts or done calibration in the factory. Have you contacted them about it?

  Are you sure? yes | no

Stephan Walter wrote 12/27/2025 at 13:21 point

Had a go at trying to calibrate my PPK2. The lower end of range 3 is quite bad, that is around 500uA-800uA. But you can't set a lower gain because the upper end of the range will be off. 

  Are you sure? yes | no