I’m using in0 to mark events of interest. It works great to visualize my events on scope view in GUI. When I try to “Export visible data” only current and voltage values exported as two columns in csv file. Is there way to export in0 data as third column?
The reason for my question: I’m trying to measure timing of my events, like event durations and intervals between events. Can use markers on screen, but that will be single data point. I need to measure en mass and get statistics on events timing. Exporting in0 waveform would be good enough for that purpose.
I’m using JS220 with UI version 0.10.13, driver version 1.0.15
Hi @inlevis and welcome to the Joulescope forum! As you have already seen, the Joulescope UI CSV export is currently hard-coded to current and voltage only.
I think that we may have something that will work for what you are trying to acheive. Check out the trigger.py example. You can use trigger.py to capture statistics over areas delineated by IN0. You can even record JLS files for each region for later analysis.
Does this do what you want?
Thanks for quick response. I use JS GUI app as is, not planning to hack it for now. Found workaround for my problem outside Joulescope. But it would be nice to have this feature implemented in future versions. I mean, “Export visible data” should output to csv all waveforms currently visible on screen, one column per waveform, including in0 and in1. That is the meaning of the word “visible”, is not it?
Exporting to JLS is well-supported. The other formats have history and have not received as much attention.
I have found that exporting to CSV creates more problems than it solves. People try to export a few seconds of full-rate data to CSV, and then complain that they can’t open it in Excel. Excel only supports 1048576 rows (2**20).
CSV is also a very inefficient data storage format. How did you intend to use the CSV file?
I’m not much familiar with JLS file format. Will exporting to jls file store in0, in1 waveform data? “Yes” would be a perfect answer for me, along with detailed description of JLS file format. If I knew where the data located in JLS file, then I could extract it. I did not see that description in documentation, must have missed it, hence my original question.
For long files exceeding Excel capacity I typically write small read-process scripts in matlab or other tool. Do not need to load entire file for that, reading by smaller chunks usually works fine.
Yes, data density in CSV file is bad, though adding one or two binary (single character 0 or 1) columns is negligible compare to number of characters the time, current, and voltage data already take in CSV.
Yes, JLS files support storing all signals including IN0 and IN1. The Joulescope UI 0.10.x and earlier write to JLS v1 format. We will be switching the Joulescope UI to write JLS v2 format soon, which is needed to support the additional information produced by the new JS220. You can find the JLS v2 documentation in the JLS GitHub repo. It’s native C, but we provide python bindings by default. You could wrap the native code for your language of choice. The JLS file format is complicated enough that I would not recommend re-writing the reader in another programming language.
For people using Python for analysis, JLS v2 is a great solution since it comes with Python bindings and provides extremely fast random data read access for a file format that supports incremental, streaming write. In your opinion, what would be best for people not using Python and exporting data? Something like HDF5?
It sounds like you have a solution for your immediate problem. If it works, I would not recommend doing anything else now since we have a major Joulescope UI update coming soon (next month?).
Good answer, thank you @mliberty ! Will watch for next release.
I cannot say what is best for all people. For me as simple as CSV would be a sufficient solution. Guess, this might also suit other users who do not need to handle big data.
I too have a JS220 and need to log IN0. The manual suggests that the device is fully functional, but apparently not? I bought this device because of the additional GPIO and now we’re told “surprise, it don’t work yet”. Can we have an exact date for the release of JLS v2 format? Can I be added to a mailing list so i get notified of the release?
Hi @ribrobrab and welcome to the Joulescope forum! Yes, the JS220’s IN0 (GPI0) and IN1 (GPI1) work today with the Joulescope UI. The Joulescope UI 0.10.x records them to the JLS v1 file, which you can then load & display.
The conversation in this thread was about adding a feature to the Joulescope UI so that it logs GPI to CSV files, which was never supported by the Joulescope UI for either the JS110 or JS220. However, GPIO access is easily supported by custom python scripts, including some of the example scripts.
The JS220’s IN2 & IN3 GPI work, but they are not yet supported by the Joulescope UI. You can use them in python scripts just fine. You can also use python to log them to JLS v2 files which you can then use in your own python analysis. Adding support to the Joulescope UI is underway.
The JLS v2 format is available today (GitHub). The Joulescope UI can already read & display JLS v2 files (at least for the support signals). Adding write support is in progress.
We cannot commit to an official release date. However, we are targeting an alpha release of the Joulescope UI 1.0 next month (February 2023).
You can sign up for the Joulescope newsletter here.
HI Matt,
Yes i see that the UI plots IN0, but when exporting the data to CSV to get the values, IN0 is not there. Time, Current, voltage, power, charge, and energy are present however. It would be very useful to get GPI data to plot against the rest in Excel.
@ribrobrab I am confused as to what will actually help you make the measurements you need. Is there a reason you need to export to Excel? My personal opinion is that Excel is rarely the right answer for sample data. If you are using Excel as the UI to display sample data, why even bother with the Joulescope UI?
Your initial request also demanded:
I am not sure how this fits into your latest message.
Joulescopes are very flexible instruments. Python scripts, rather than the Joulescope UI, are often a better approach for many customized & automated measurements. What are you actually trying to measure and accomplish?
The UI is fine for looking at a pretty picture, but i want the data. I don’t know python.