Long term energy measurement

I need to measure the energy used by a device over the course of several days or weeks. Assuming I can keep my windows computer from sleeping, can I just let Joulescope run and look at the energy display after the experiment has run long enough? Are there any files of any kind (sample, log, whatever) that grow during the test? Any known memory growth over time? Is there any known practical limit to the length of time Joulescope can run while calculating energy consumption? What is the longest interval that you know of that has been successfully tried?

By the way…love the Joulescope. We’ve bought at least three so far…probably several more in short order.


1 Like

Hi @ikester - great to hear that Joulescope is working great for you so far!

With regards to long-term data collection, you certainly can use the UI as you mentioned. However, I recommend using the downsample_logging.py script in our pyjoulescope_examples GitHub repo. We developed this script with feedback from other Joulescope users to support long-term testing, one who has already started a VERY long test. This script keeps track along the way and allows for recovery, such as for when your computer reboots, USB has issues, Joulescope has any issues or you lose power. See the installation instructions in the README, and please don’t hesitate to post here if you run into any hurdles!

Joulescope computes energy using an infinite precision integer in units of pJ, so there is really no practical limit to how long Joulescope can run. We have done extensive long-term memory tests, and have no memory growth using the official releases.

If you do want to use the GUI for very long term testing, I recommend that you use no more than log_level WARNING (default is INFO), which you can change with FilePreferencesGenerallog_level. The Joulescope UI does record a log file, but this will be small with WARNING. As long as you don’t start a recording, the Joulescope UI will have no other file growth or memory growth over time. To minimize memory utilization, you can also shorten the streaming buffer by setting FilePreferencesDevicebuffer_duration to 15. Keeping the UI in Multimeter view rather than Oscilloscope view also minimizes the amount of processing.

We have performed long-term testing with both the UI and downsample_logging. Our UI testing runs for about a week, and we let the downsample_logging test run for a couple of weeks. The customer running downsample logging for the longest has not announced anything publically, but you can see some other discussion here and here. We have good confidence in both the UI and downsample_logging. We are committed to supporting long-term testing using Joulescope, and we will support you in the event that you run into any issues!

1 Like

Ahhh…I recall seeing the downsample_logging discussion, but it didn’t come up in my searching. I’ll give it a try in a few hours.

For lazy people like me, it would be great if this were installed as part of Joulescope installation and could be launched with the UI. The UI could maybe start it and say “bye…see ya later”. Maybe a relaunch of the UI would notice the long term logger is running and ask if you want to stop it. You would need to indicate “stop” before continuing with the UI. Or something.

Thanks for creating such a fundamentally useful tool!

OK…got it going and it does exactly what I need. BUT…i must admit to only being peripherally familiar with python and GIT…took me a few hours to get it all worked out on Windows 10. Way more pain than I wanted…I just want to log the data! And there’s no way I’ll remember the details after a couple of weeks when i need to re-do the experiment. Sooo…i really want to plead the case for somehow making the “long term logging for dummies” experience more accessible through the UI.

I still love the joulescope, though!

Sorry to hear it took a few hours to get going! You don’t really need git, and you could just download the downsample_logging.py script directly. At a minimum, I can indicate that in the instructions.

I will think about how I can make distributing this easier, either as part of the UI or otherwise…