Close

Analysis of final Verification Run before One-Herz-Challenge

A project log for A more precise Tuning Fork Clock

A clock that uses a tuning fork as a time reference, but calibrated!

ppPP 08/17/2025 at 18:030 Comments

As the deadline for the one hertz challenge approaches, I need to conclude the current validation test run. The changes mentioned in the previous post - mainly the hot display - increased precision quite a lot. However, as one can see in the previous log run, the Oscillating Feedback Loop on the Fork seems to sometimes produce noise overtones which seems to slightly change the base frequency. I will address that by tuning the feedback loop capacitors, but sadly this is too late for the Challenge entry. And only the hard facts count!

For the good side: The Drift, before the noise kicks in (Phase A), is around -0.5 seconds per day, which is a great project success for me. And in the last Phase C, when the frequency seems to settle, so does the drift (remember: Measured against a one-megahertz reference GPS "ground truth").

And to allow everyone to look at it themselves, the raw data of that graph is published here.

The other part of the Project was also the question what kind of Model is needed to estimate this System. This is fortunately answerable :)
The final Process Model consists of 1. a rolling-average Temperature Dampening to estimate the temperature of the Fork based on the Sensor, 2. a two-degree polynomial for the Fork's frequency response, and 3. another two-degree polynomial for an estimation compensation based on the Temperature-Change-Rate to accommodate the warm-up of the fork for fast temperature changes. But, as you can see in the factors, the (3) Temperature-change-rate has a very small influence on the overall system, but increases the fit by a minor percentage.

The Model Parameters that were used for this validation run are based on the previous run's data (see my last post) and was estimated to the following:


Dampen factor b_d: 0.001893494029314581
Factors for damped period estimation:
b_0 = 9.885662144472119398e+05 (Base period per 440 oscillations at zero degrees)
b_1 = 1.213906162853203297e+00 (linear temperature dependency)
b_2 = 8.097113008716144879e-06 (exponential dependency: very small if any)
Factors for period error estimation based on temp gradient:
b_0 = -6.554192502536039244e-01 (constant error offset)
b_1 = -1.555599069694961478e-01 (rate-change dependent error)
b_2 =  2.188748997581093855e-02 (??)

So, in conclusion: It is very possible to reach less-than-one-second per day of drift with a cheap tuning fork, a basic self-exciting circuit, and a lot of statistics and math :)
I am sure that this can be done better, and I will also try to find out what in the circuit causes the noisy overtones / frequency nudge.

But nevertheless, this project was very fun. I hope to also have sparked some interest, it sure did a lot for me. Bye!

Discussions