jetperch / pyjoulescope_ui

Joulescope graphical user interface
https://www.joulescope.com
Apache License 2.0
83 stars 26 forks source link

Signal trace jitters when zoomed in while streaming #282

Open FerriteGiant opened 1 month ago

FerriteGiant commented 1 month ago

Joulescope model

JS110

UI version

other

What OS are you seeing the problem on?

Windows 10

What happened?

I'm running the newest UI version (v1.1.10). While signal sample streaming is active and neither "pin left" nor "pin right" are selected, the viewed chunk of signal jumps around. On previous versions I don't believe this happened. In the gif below, I'm not interacting the the UI at all, simply viewing a zoomed in chunk of the signal.

joulescope_jitter

What was expected?

Zoomed in portion of the signal should stay still relative to viewed timestamp range.

How to reproduce?

  1. Start signal sample streaming
  2. Unpin both left and right
  3. zoom in, easiest to notice if zoomed in far enough to see individual data points
  4. Observe jitter

Extra information

Version Information:

Item | Version -- | -- UI | 1.1.10 driver | 1.5.3 JLS | 0.9.5 Python | 3.11.9 (tags/v3.11.9:de54cf5, Apr 2 2024, 10:12:12) [MSC v.1938 64 bit (AMD64)] Platform | Windows-10-10.0.19045-SP0 Processor | AMD64 Family 23 Model 49 Stepping 0, AuthenticAMD
mliberty1 commented 1 month ago

The Joulescope UI 1.x is mapped to wall-clock (UTC) time. The JS110 time alignment between samples and wall-clock time is not great and varies. The JS110 was not designed for time alignment.

With the JS110, and the UI at the time (0.10.x and earlier), you never even had the option to look at data while streaming. We added this ability in UI 1.x. This is the behavior when you look back in the buffer while the JS110 is still streaming.

Unfortunately, we have no plans to improve this behavior for the JS110.

Your available workarounds include:

  1. Not zooming in so far, and the jumps will be less visible
  2. Record to a JLS file and view later
  3. Pause streaming
  4. Take a screenshot
  5. Write a UI plugin or hack the UI to display samples in sample time, not UTC time.

Now, we are working to improve this for the JS220. The JS220 time alignment is already much, much better than the JS110. We are working on additional improvements that will be available soon. We anticipate ~20 µs time alignment across Joulescope with USB only in the next release. Sending a GPS/GNSS PPS signal to trigger or any inputs and configuring the JS220 appropriately will give ~1 µs time alignment across Joulescopes and to true UTC time.

I will keep this issue open as a reminder to test this with both the improved JS220 USB-based time sync and PPS time sync when they become available. However, JS110 improvements are a "won't fix".