Welcome to the Joulescope Store!

Timekeeping

A man with a watch knows what time it is. A man with two watches is never sure.
-- Segal's law (incorrectly attributed?) [Wikipedia]

Why Timekeeping Matters

Joulescopes can be used to detect events. If another instrument, including a second Joulescope, observes the same event, you may want to correlate their measurements. The easiest way is to use a shared concept of time.

That shared concept of time is usually wall-clock time. While you are familiar with the time of your local clocks, a better engineering choice is Coordinated Universal Time (UTC) [Wikipedia]. UTC remains stable throughout the year, unlike your local time, which can change due to daylight saving time. UTC is aligned (with the rare exceptions for leap seconds) to International Atomic Time (TAI).

Joulescopes and Time

The Joulescope JS110 and JS220 use internal crystal oscillators for timekeeping. The crystal oscillator on the JS220 is accurate to ±25 ppm (parts per million), which is 0.0025%. That may sound precise, but over a day (86,400 seconds), this translates to a drift of up to 2.16 seconds from UTC.

Fortunately, Joulescopes offer a better solution.

How Joulescopes Synchronize Time

Joulescopes map their internal oscillator time to UTC. They use a protocol over USB similar to the Network Time Protocol (NTP) [Wikipedia] and the Precision Time Protocol (PTP) [Wikipedia]. Here's how it works:

  1. Your host computer synchronizes with Internet time servers, which are often Stratum 1 atomic clocks, using NTP.
  2. Your JS220 synchronizes to the host computer.

The accuracy of the JS220 synchronization depends on how well your computer maintains time synchronization.

Improving Accuracy on Windows

While developing this feature, we discovered that Microsoft Windows computers default to low-effort timekeeping, resulting in less accurate time synchronization.

Starting with Joulescope UI 1.3, Windows users can improve this by selecting:

    ToolsConfigure high accuracy time

This launches a script that performs the setup recommended by the Microsoft article Configuring systems for high accuracy time.

Latest Improvements in Joulescope Timekeeping

The Joulescope UI has been based on UTC time since 1.0. Starting with Joulescope 1.3.2 , timekeeping is significantly more accurate, especially when using multiple Joulescopes.

Want to verify the actual perfomance on your setup? Here's how:

  1. Use a GPS/GNSS module with a Pulse per Second (PPS) output. We use the Time Machines TM2500C.
  2. Connect the PPS signal to GPI 0 on each JS220.
  3. Launch the Joulescope UI
  4. In the Device Control widget, set GPIO Voltage to 3.3 V for each connected JS220.
  5. In the Settings widget, check UIdeveloper.
  6. Select WidgetsTimesync.
  7. Wait. Best time convergence takes a few hours.

Here is an example convergence:

Tips

The durations for time synchronization can be quite long. For best results:

  1. Minimize temperature and humidity changes. Run your tests in a properly air-conditioned room.
  2. Let the equipment warm up and converge for at least an hour before making any measurement.
  3. Consider using a local GPS/GNSS time server with holdover, like the TM2500C.

Want to Dive Deeper?

Timekeeping has driven human innovation for millennia and is a fascinating topic. Here are two excellent reads:

  1. A Brief History of Timekeeping by Chad Orzel - a fun and approachable book
  2. The Science of Timekeeping by David Allan et al. - a technical deep dive from the inventor of Allan variance.

Conclusion

Accurate timekeeping allows you to compare events across equipment, logs, and observations. The JS220 with Joulescope UI 1.3.2 and newer tracks UTC even more accurately, making comparisons even easier. It also improves the accuracy when using multiple Joulescopes at the same time.