ART
BEAUTY & WELLNESS
CRAFT
CULTURE & HISTORY
ENTERTAINMENT
ENVIRONMENT
FOOD & DRINKS
REVERSE ENGINEERING
SCIENCES
SPORTS
TECHNOLOGY
WEARABLES
The Synchronous Clock: Telling Time by the Power Station's Cycles
Penny

Created by

Penny

27. September 2026DK
6
0
0
0
0

The Synchronous Clock: Telling Time by the Power Station's Cycles

Every electric clock needs something regular to count. Henry E. Warren of Ashland, Massachusetts, saw that an alternating-current supply already carries one: the alternations of the generators. A small motor that turns exactly in step with them, geared down to hands, keeps time — provided the power station keeps its total count of alternations right. US 1,283,431, *Electric-Clock System*, filed 21 August 1916 and granted 29 October 1918, claims both halves: the self-starting synchronous motor, whose rotor is a plain hardened steel disc; and the system — a standard clock at the station, compared with a clock run from the supply, and the prime mover's speed adjusted to wipe out any excess or deficiency. Grids still correct their time error in the same way. This rung simulates a wandering frequency with and without correction, and builds an Arduino clock that counts mains cycles through a low-voltage AC adapter.
Intermediate
About 4 hours

Instructions

1

Synchronous speed and time error

Loading Jupyter Notebook...
2

Read Warren's motor and system

Figs. 2 to 5 of US 1,283,431 show the clock: a coil on a laminated field with two poles 12 and 13, each pole face split by **shading coils** 14 and 15 so the field sweeps round; in the space between the poles, the rotor 20 — "a disk of hardened steel and without windings or slots". It hangs a little below the middle of the pole faces so that, running, it rises and lifts the rotor and shaft off their bearings. A worm on a shaft of the train drives the hands; at 60 cycles the rotor turns 3600 times a minute. A spring-driven auxiliary movement is held stopped by a lever while current flows, and released to run the clock if the current fails. Fig. 1 shows the system: an alternating-current generator, a standard clock at the station regulated daily by time signals, a comparison clock run from the supply, and the operator adjusting the prime mover until the two agree.
3

The sketch that counts the cycles

Counts one pulse per mains cycle through an opto-isolator and prints the grid's time every ten seconds.
grid_clock.inoarduino
/*
  grid_clock.ino -- a clock that counts the mains cycles, the way Warren's clock does.

  SAFETY: never connect anything here to the mains. Use a plug-in adapter whose OUTPUT is a
  low-voltage AC (for example 9 V AC) -- check the label says AC OUTPUT, not DC.

  Wiring: adapter AC output -> 1 kohm resistor -> opto-isolator LED anode; LED cathode -> the
  other adapter wire. Put a diode across the LED, reversed (anode to cathode), so the LED never
  sees the reverse half-cycle. Opto transistor: collector -> pin 2, emitter -> GND. The pin uses
  its internal pull-up, so it goes LOW once per mains cycle.

  Set MAINS_HZ to 50 or 60 for your country.
*/

const int PIN_CYCLE = 2;
const unsigned int MAINS_HZ = 50;

volatile unsigned long cycles = 0;
void onCycle() { cycles++; }

unsigned long lastPrinted = 0;

void setup() {
  pinMode(PIN_CYCLE, INPUT_PULLUP);
  attachInterrupt(digitalPinToInterrupt(PIN_CYCLE), onCycle, FALLING);
  Serial.begin(9600);
  Serial.println(F("grid_time  (compare with a network-synced clock)"));
}

void loop() {
  noInterrupts();
  unsigned long c = cycles;
  interrupts();
  unsigned long seconds = c / MAINS_HZ;
  if (seconds != lastPrinted && seconds % 10 == 0) {
    lastPrinted = seconds;
    unsigned long h = seconds / 3600, m = (seconds / 60) % 60, s = seconds % 60;
    if (h < 10) Serial.print('0');
    Serial.print(h); Serial.print(':');
    if (m < 10) Serial.print('0');
    Serial.print(m); Serial.print(':');
    if (s < 10) Serial.print('0');
    Serial.println(s);
  }
}

Materials for this step:

Arduino Uno R3Arduino Uno R31 piece
Low-Voltage AC AdapterLow-Voltage AC Adapter1 piece
Opto-isolator BreakoutOpto-isolator Breakout1 piece
DiodeDiode1 piece
Resistor KitResistor Kit1 piece
BreadboardBreadboard1 piece
Jumper WiresJumper Wires1 piece

Tools needed:

Computer with Arduino IDEComputer with Arduino IDE
MultimeterMultimeter
4

Run it for a day against a network clock

Check the adapter's label says **AC output** and measure it with the multimeter on AC volts before connecting anything. Wire the opto-isolator as the sketch's comment shows, set MAINS_HZ, and upload. Start the Arduino exactly when a network-synced clock (a phone) reaches a whole minute, and note the time. Leave it running. Every few hours compare the sketch's elapsed time with the phone's: the difference is the grid's accumulated time error since you started. Over a day it moves by seconds and is pulled back — the correction Warren described. Do not compare against the Arduino's own millis(): its ceramic resonator can drift much more than the grid does.

Tools needed:

StopwatchStopwatch
5

A synchronous clock showing the wrong time

Synchronous clock faults.

Flow

Loading...
6

History and honest limits

**Henry E. Warren** filed **US 1,283,431** on 21 August 1916, assigned to the Warren Clock Company of Ashland; it was granted 29 October 1918. His company's clocks were sold as Telechron, and for synchronous clocks to keep time the power stations had to control their frequency — which Warren's master clocks helped them do. **Honest limits.** The simulation's frequency wander and correction rate are illustrative. A synchronous clock is only as good as the grid's time-error correction, which differs between grids and has at times been relaxed. Never work on mains voltage: the sketch is designed for a low-voltage AC adapter only.

Materials

7

Tools Required

3
Estimated Total
What the maker bought. Materials shown without a price are sourced wherever you buy them.
$4.93

Related Blueprints

These blueprints share knowledge with this one — techniques, materials, or principles that connect them in the learning graph.

CC0 Public Domain

This blueprint is released under CC0. You are free to copy, modify, distribute, and use this work for any purpose, without asking permission.

Support the Maker by purchasing products through their Blueprint where they earn a Maker Commission set by Vendors, or create a new iteration of this Blueprint and include it as a connection in your own Blueprint to share revenue.

Discussion

(0)

Log in to join the discussion

Loading comments...