• Models
  • Contests
  • Slicer
  • Login
  • Start Here
    thingiverse-iconprintables-iconcults3d-iconmakerworld-iconmyminifactory-icon

    3D GO

    3D ModelsContestsCollectionsSaved ModelsOn a mobile device?

3D GO

Privacy Policy
Descovich Mechanism - A Mechanical Implementation of the Equation of Time 3D Printer File Image 1
Descovich Mechanism - A Mechanical Implementation of the Equation of Time 3D Printer File Image 2
Descovich Mechanism - A Mechanical Implementation of the Equation of Time 3D Printer File Image 3
Descovich Mechanism - A Mechanical Implementation of the Equation of Time 3D Printer File Thumbnail 1
Descovich Mechanism - A Mechanical Implementation of the Equation of Time 3D Printer File Thumbnail 2
Descovich Mechanism - A Mechanical Implementation of the Equation of Time 3D Printer File Thumbnail 3

Descovich Mechanism - A Mechanical Implementation of the Equation of Time

3DMason avatar3DMason

June 18, 2026

printables-icon
DescriptionCommentsTags

Description

Change History

Update (3-06-26):  The obliquity phasing was mirrored since it is running in the opposite direction (CW) of the eccentricity phase (CCW), & the linkage reverses the obliquity displacement as the gears rotate. Also, the linkages at the coupling were slightly shortened to improve motion.  The updated files are:  kurt_descovich_eot_mechanism_secondary_gear_v2.stl, kurt_descovich_eot_ mechanism_leverA_v2.stl, kurt_descovich_eot_ mechanism_leverB_v2.stl.

Summary

The following describes the equations and build parameters required to integrate the Equation of Time (EoT) into a so-called mechanical computer using gears, based on the work by Kurt Descovich.  It is intended to be installed on a practical equatorial sundial platform, thereby eliminating the need for an analemma plate to correct true or apparent solar time to mean solar time.  You can watch his explanation (in German) here:  Sonne und Zeit—nicht ganz alltägliche Sonnenuhren  (skip to 11:44).

The following visually demonstrates how the EoT can be emulated by one gear rotating around another. The animation can be viewed here:  https://www-ccv.adobe.io/v1/player/ccv/C83CeCNNWjW/embed?bgcolor=%23191919&lazyLoading=true&api_key=BehancePro2View   (courtesy: The Equation of Time - Kevin Karney).

Here is another animation demonstrating the same principle but employing the Kurt Descovich Method to trace out the EoT; i.e. a mechanical solution utilizing two gears & two Scotch yoke linkages moving within a common carrier:  https://www-ccv.adobe.io/v1/player/ccv/9Nude6hPAQn/embed?bgcolor=%23191919&lazyLoading=true&api_key=BehancePro2View  (courtesy: The Equation of Time - Kevin Karney)

Implementation

A final implementation plan hasn’t been fully developed yet; however, I intend to integrate this mechanism into a modified Pilkington & Gibbs sundial design, to be released at a later date.  Here's a quick look:

In such an arrangement, the right (obliquity) crank & gear connecting arm at B would be attached to the sundial’s Alidade and the left (eccentricity) crank & gear arm would be mounted under the hour plate.  Proper scaling would be achieved by adjusting the mechanism's k factor, as described below, i.e., the scale/gain in mm/min.

What is The Equation of Time? 

The EoT is the difference between true or apparent solar time and local mean time over the course of a solar year. The difference between these times is primarily due to (within 1st-order approximation) two effects:

  1. the eccentricity of the Earth’s orbit and

  2. the obliquity, or tilt of the Earth’s rotational axis. 

The EoT quantifies these two discrepancies, & its value varies throughout the year, typically ranging between about -14 and +16 minutes.

Here is a graph of the EoT showing the combined contributions from both the eccentricity and obliquity components:

Mathematical Representation

The EoT profile is (within 1st-order approximation) the sum of two sinusoids: i.e.

  1. one from orbital eccentricity (annual term), and

  2. one from the obliquity of the ecliptic (semi-annual term).

These sinusoids can be reproduced mechanically using a pair of gears that rotate at 1×/year and 2×/year.  With suitable radii and phase, the motion of each gear, along with a simple adder (lever/yoke/differential), would combine to produce a near EoT facsimile.

1) Mechanism Target Output – Equation of Time (EoT)

Let t be time in years from a chosen reference instant t0 such that θ = 2π(t - t0) (radians). A convenient 2-term representation for the EoT in minutes can be expressed as (in cosine form):

                                                                EoT(t) ≈ Ae cos(θ + ϕe) + Ao cos(2θ + ϕo)

where;

  • Eccentricity term (1×/year): Ae ≈ 7.659 min

  • Obliquity term (2×/year): Ao ≈ 9.863 min

  • A convenient choice of phases consistent with standard formulas is:

    • ϕe  = π/2

    • ϕo  ≈ 3.5932 rad - π/2 (≈ 115.9°).

Substituting, it can be re-stated as:

                                                          EoT ≈ 7.659 cos(M + π/2) + 9.863 cos(2M + 3.5932 - π/2)

or, in sine form:                                  EoT ≈ -7.659 sin(M) + 9.863 sin(2M + 3.5932)

where M is the mean anomaly that advances 2π per tropical year; i.e.

  • M = 0 at perihelion, when Earth is closest to the Sun;

  • M = π  at about aphelion, halfway through the anomalistic cycle;

  • M = 2 π  at the next perihelion.

For a day-number version, we could write M approximately as:

                                                                        M(d) = 2𝜋(d−dp)/365.2422

where d is the day count, and dp is the perihelion day count, typically around Jan. 3–5, depending on the year.

Practical note: 4 minutes of EoT = 1° of hour angle and ±16 min is ±4° on a time ring.

2) Mechanical Synthesis with Two Gear Cranks and Adder

Kinematics from the cranks

A pin located at a radius r from the center of a crank rotating by angle ψ and measured by the projection along a fixed axis produces a displacement along both x & y axes as a function of the crank angle; i.e.

  •      x(ψ) = r cos(ψ)

  •      y(ψ) = r sin(ψ)

In this example, the crank pin is constrained to slide within a Scotch yoke (slot) along the y-axis, while the slider has a linear displacement along the x-axis.  In this design, we only need to consider motion along the x-coordinates of the pin; i.e.

                                                       x (ψ) = r cos(ψ + a)  where a is the initial phase offset.

A mechanical representation of this is illustrated in the figure below: 

If we couple two cranks as gears with pin radii of re & ro & combine their motion into a linear adder (e.g., a common carrier taking the sum of two slider links), the total displacement becomes:

                                                        x(ψ) = re cos(ψe + ae) + ro cos(ψo + ao),

which is in the same form as our previously defined 2-term EoT equation described previously.

2.1) Mapping Cranks to the EoT

We need to define two coaxial angle functions θ (1 rev/yr) and 2θ (2 rev/yr) in the following way:

  • We choose a year shaft that turns 1 rev/year & implement a calendar wheel which is indexed every 5 days;

  • Branch A (eccentricity): transmit 1:1 from the year shaft to the eccentricity crank (one rev/year);

  • Branch B (obliquity): double the speed to 2:1 so the obliquity crank turns two revs/year.

Then we choose the annual (eccentricity) term as the larger gear rotating once per year, with a drive crank radius re & phase αe.  Additionally, we choose the semi-annual (obliquity) term as the smaller gear rotating twice per year, which drives crank radius ro & phase αo.

For some scale factor k that converts millimeters of a slider travel to minutes of time on a dial, etc. we can redefine the total slider displacement as:

                                                              x(t ) = k[re cos(θ+ αe) + ro cos(2θ + αo)]

or it can be re-stated as:           x(t ) = k[re cos(θ+ αe) - ro cos(-2θ + 180°-αo)]

The last relation best describes the actual obliquity gear angle since its phase is running in the opposite direction (CW), to the eccentricity phase (CCW).  Additionally, the linkage reverses the obliquity displacement as the gears rotate & as the calendar days increase.  In other words, the minus sign in front of the obliquity term means that the obliquity Scotch-yoke/lever output is inverted relative to the raw crank projection.

We then choose kre  = Ae and kro = Ao, and choose αe, αo to match ϕe, ϕo, which we defined previously as: 

  •      Ae = kre  = 7.659 min,   

  •      Ao = kro = 9.863 min,    

  •      αe = ϕe = π/2   

  •      αo = ϕo = 3.5932 rad + π/2  (≈ 115.9°).

2.2) Scaling

We pick a comfortable mechanical stroke defined as S.

Example S:  ±16 mm full scale for ±16 min display. Then k (minutes/mm)  = 1 min/mm.

In this example, therefore:

re = Ae/k ≈ 7.659 mm,       ro=Ao/k ≈ 9.863 mm

Note that the value of k is chosen arbitrarily.  We just need to keep the follower linkages near-linear over the travel to avoid amplitude distortion.

2.3) Phase Reference

We choose t0 on Jan 1 at 00:00 UT. 

2.4) Date Ring

A date ring is added to the larger gear so that we index daily or weekly. That ring simply sets θ (year angle).

Design Parameters at a Glance

  • Speeds: annual shaft 1 rev/yr; obliquity branch 2 rev/yr.

  • Crank radii: with 1.00 min/mm scale → re  = 7.659, ro = 9.863 mm.

  • Phases:    αe = 90°,  180-αo = 180 - 115.9 = 64.1° (measured CCW from +x-axis).

  • Pointer scaling: 1 min on dial = 1 mm slider (or choose your own).

  • Backlash: aim for <0.05 mm at the slider to avoid jitter in the last ~0.1–0.2 min.

  • Linearity: keep follower angles small (±10–15°).

EoT optimization (Python script)

Instead of adopting a 1st-order EoT approximation, we can fit the 2-harmonic mechanical Equation of Time model to one of these three other EoT targets using a Python script:

  1. Ephemeris-like EoT model, as per BSS article (Meeus-like / J2000-era);

  2. NOAA 3-term approximation;

  3. CSV of daily true-ephemeris values (JPL, etc.).

The third option is the most accurate & can include EoT averaging (& leap years) over a given era.

The script tries to achieve:    Xmech(θ) = EoT(θ)

by optimizing the Fourier series coefficients to yield the smallest possible RMS error.

Optional refinements

  • Leap Years: Adding a knob/offset to account for leap year cycles, or integrating it into the EoT values;

  • Fine epoch correction: Earth’s perihelion shifts ~1.7 days/century; if we want sub-minute fidelity over decades, we should arrange a tiny trim on ϕe (eccentricity phase) via something like a vernier clamp;

  • Amplitude trim screws on the crank throws (eccentric pins in slotted discs) to nudge Ae, Ao by a few percent.

Final Implementation

The following describes a gear design with module m = 82/122 ≈ 0.672131, such that the larger gear is Ø82.000 mm OD and the smaller gear is Ø41.672 mm OD.

Gear design (module 0.672131, 20° pressure angle (PA), full-depth)

  • 120T (eccentricity)

    • Pitch Ø dp,e = mz = 80.6558 mm

    • Outside Ø da,e = m(z + 2) = 82.0000 mm

  • 60T (obliquity)

    • Pitch Ø dp,o = 40.3279 mm

    • Outside Ø da,o = 41.6721 mm

  • Center distance C = (dp,e + dp,o) /2 = 60.4918 mm

Crank throws (1.00 min/mm):
rₑ = 7.659 mm (ecc), rₒ = 9.863 mm (obl).
Phasing:  ecc. crank pin = +90 deg. obl. crank pin = 64.1 deg. (CCW from +x-axis).

Maximum combined stroke: -16.528 mm (~ Feb. 13th) to 14.413 mm (~ Oct. 31st).

Reference Linkage length (AB) for EoT = 0: ~ 173.5 mm on approx. Apr. 16th, Jun. 13th, Aug. 31st, Dec. 25th.

The figure below highlights the prototype implementation as a proof-of-concept.

The left (eccentricity) crank & gear connecting arm at A is fixed (except for when adjusting for daylight saving time).  The right (obliquity) crank & gear connecting arm at B is connected to a sundial's rotating equatorial ring. Lever A moves in & out of lever B as the gears rotate.  The Date Adjust gear rotates the gears until the correct date is indexed through the window.  Each minor tick mark on the date gear is 5 days.  The major tick indicates the beginning of each month.

The main gear enclosure with a knob on the date adjust gear measures approximately 140 x 100 x 27 mm (LxWxH).

Accuracy

The mechanical solution is limited to two sinusoidal components (1× and 2× annual frequencies), and since the motion of the real Sun is not purely sinusoidal, the best this system is capable of doing against the true-ephemeris EoT is determined to be:

  • RMS error ≈ 17 s

  • Peak error ≈ ±34 s (≈0.57 min)

The above errors are the fundamental accuracy limit of a 2-harmonic system, not including any mechanical or manufacturing tolerances, etc.

Printing & Assembly Notes

  • PETG; 0.2 mm layer height.  Gears: 40% infill; sliders: 20–30%;

  • Using the top cover/carrier, place both the eccentricity (larger gear with month dial) & the obliquity gear (smaller gear) over the provided shafts;

  • By slightly lifting one of the gears so that the teeth disengage, line up the two alignment marks located on the eccentricity & obliquity gears, making sure also that the date index is set to the beginning of Jan major tick mark;

  • Slide the connecting arm A (from the inside) into the left carrier slot;

  • Slide the connecting arm B (from the inside) into the right carrier slot & also slide the opposite end into the connecting arm A.  Make sure the sliding end opening of connecting arm B is facing downwards;

  • Align the Scotch yoke slot openings over the crank pin holes located on the gears & screw in 2x M3-8 round head hex screws, including the two printed bushings;

  • Install the date adjust knob gear from inside the carrier & add the knob using an M2-6 cap head hex screw.  Check that the gears can rotate freely by rotating the date adjust knob;

  • Add the bottom cover over the top cover using 12x M2-4 cap head hex screws.

Spreadsheets & Scripts

Check the file section for the Python scripts & this link to download the spreadsheets:  https://drive.google.com/drive/folders/1tLdtdomoTwiFT9XcuwopQHYKS2mexjj4?usp=sharing

References

  1. The Equation of Time - Resources Page  The British Sundial Society: The Equation of Time - Æquātiō Diērum   Kevin Karney

License:

Creative Commons — Attribution — Noncommercial — Share Alike

Related Models

#3DBenchy - The jolly 3D printing torture-test by CreativeTools.se preview image

#3DBenchy - The jolly 3D printing torture-test by CreativeTools.se

CreativeTools profile image

CreativeTools

90,825

Flying Night Dragon preview image

Flying Night Dragon

Sevro profile image

Sevro

8,715

Colorful Train Flashcards/Tags (now w/ Spanish) preview image

Colorful Train Flashcards/Tags (now w/ Spanish)

jimamy112803 profile image

jimamy112803

7

The T-Rex Skull preview image

The T-Rex Skull

MakerBot profile image

MakerBot

39,792

Stable Flyer VI - Small Toy Glider preview image

Stable Flyer VI - Small Toy Glider

João Hackbart profile image

João Hackbart

3,731

Children’s Visual Clothes Tokens preview image

Children’s Visual Clothes Tokens

Neruson profile image

Neruson

1

Plantygon - Modular Geometric Stacking Planter for Succulents preview image

Plantygon - Modular Geometric Stacking Planter for Succulents

Printfutura profile image

Printfutura

28,526

Upcycled ATX Lab Bench Power Supply preview image

Upcycled ATX Lab Bench Power Supply

Caelestis Workshop profile image

Caelestis Workshop

1,506