You are on page 1of 5

Gary’s Clock number 3

Design Goal
I wanted to make a clock that would fit on the shelf in our apartment and keep reasonable time
without being needed to be wound every day. The options I had were to use a spring or to use
electronics. I know nothing about springs (or more accurately, I know enough about springs to run a
mile in the opposite direction) so electronics it is. I stumbled on a clock design by Christopher Blasius
of Holzmechanik that looked pretty appealing to me so I have borrowed that layout.

Woodwork
I borrowed the general clock layout from Chris Blasius. I spent more than a few hours in LibreCad
and drew it up from scratch. Since the design is the effort of Chris, I shall not be publishing my
drawings. Chris’ version is available for a nominal charge at https://holzmechanik.de/wooden-clock-
magica.html

I used the gearing of 144:8, 40:8, and 40:8 to get to a 60:1 reduction. I don’t know what Chris used.
We may have settled on the same gear ratios.

I used 32:8 and 30:10 to give 12:1 gear reduction for dial train.

I used Matthias Wandel’s gear designer, the paid for version, for laying out the gears.
http://woodgears.ca/

All bearing surfaces are brass on wood. I used brass washers to control end float and isolate any
potential wood to wood points. All arbour bearing points were designed so their bearing length was
to be close to 2.5 times the diameter of the shaft.

The ratchet gear is made from home-made 3 ply plywood. Remaining gears are cut from 10mm
planed decking timber. Dial train from 6mm machined timber.

Face and Hands cut from Kwila (Merbau) and the remainder of the clock, including the plywood, is
cut from Vitex. Both woods are stable, dense, have interlocked grain and have similar tangential and
radial shrinkage. Of the two, Kiwila makes better gears but for this clock I went for the lighter colour
of Vitex.

I cut everything by hand on the scroll saw. I used Pegas 8tpi 9RG skip reverse tooth modified
geometry blades for the 10mm and up thickness cuts and Olsen 12tpi #5 for the 6mm cuts. Plans
were printed on plain paper on my laser printer and stuck onto the wood using double sided tape.
The backs of the pieces were covered in blue masking tape. I marked the centres with an optical
punch before drilling to 1mm. I depthed the gears using the 1mm pilot holes and then drilled each
gear out to the right dimension in 1mm steps. Everything turned out to be quite round and true.

I had a few goes getting the ratchet and pawl to be stable in operation, avoiding double ticking and
being tolerant of the clock not being quite level. I wanted the widest possible range of pendulum arc
to work. My final solution has some adjustment in it so that the clock does not need to be totally
level. After getting things working I also stumbled across some maths in Philip Woodward’s book
that proved that the moving pawl needed to have more mass than the fixed pawl. I came to the
same conclusion experimentally.

Pendulum Design
I have read Philip Woodward’s book and Edmund Grimshore’s treatise and picked up a few common
themes. My electronics background means that I share quite a bit of affinity for Philip’s approach to
things. Any pendulum driving a wooden mechanical clock is going to be quite a challenge and my
question has been as to how good a pendulum needs to be.

Most of the wooden clock designs on the market have very low Q pendulums with a light weight
bob. Many are also impulsed from the centre as opposed to the pendulum tip. I see no designs with
spring suspension, mostly with bearings or a knife edge.

I opted for a brass bob – made from brass water fittings - on a mostly wooden pendulum mounted
on a hollow shaft with 6mm ball bearings on a brass rod for suspension. I soaked the bearings in
acetone to degrease them before installation. The one downside of my pendulum design is a
byproduct of the nice layout in that the pendulum shaft is slotted horizontally to allow the main
clock arbour to be passed through it. I have used home-made ply for the pendulum because of its
design. This seems to be quite stable. I used polyethylene glue (i.e. the stuff that foams) for the
plywood.

Electronics and control


The clock control is about as simple as you can get. Having said that, the simplest things always
involve the most complicated thought and assumptions. From the literature revealed by Dr Google,
it seems the general trend for driving these clocks is to use some kind of pulse width modulation to
control the swing of the pendulum.

At least one maker uses a crystal clock to control the accuracy of the pendulum and the wooden
clock. I personally struggled with this idea as I figured a pendulum made of wood should be accurate
enough.

My design strategy was

 Build a free running pendulum and control logic so that it swings accurately
 Adjust the control circuit so that artificially loading the pendulum did not alter its beat too
much
 Build the rest of the clock so I knew what the actual load would be
 Optimise everything so that the clock will run an acceptable time on batteries

Pendulum Impulse
I settled on using a plastic sewing machine bobbin for a coil former. This has the correct height to
width ratio for a good electromagnet, a useful diameter and is cheap and easy to obtain. I initially
wound it full of 28awg wire and came up with a magnet resistance of 7 ohms. This implied a pulsing
current of around 650 mA if energized with 4.5 volts. While waiting for some thinner wire to arrive I
stuck a series resistor in to reduce the current to 30 mA so I could save my Arduino.

I mounted an 8mm diameter neodymium magnet on the end the pendulum and got things swinging.

I wrote a wee script to poll for the pulse from the magnet and then impulse the coil. I played around
with pulse width and delay and got the pendulum to swing nicely.

When my roll of 34awg wire arrived, I made a new full bobbin and the coil resistance was 265 ohms.
This translated to a coil current of 14mA at 4.5 volts or around 11mA at 3 volts. I think this coil
resistance is on the high side but it seems to work. I also added a second 8mm magnet to the end of
the pendulum and this made things much less critical as it increased the sensitivity of the whole
system. Same impulse current gave more kick and a higher voltage on the sense part of the cycle.

Pendulum Control
I built a “non-linear artificial load” for the pendulum. This involved balancing a piece of wood so it
rubbed on the pendulum so slow it down. I found that adding weight made the pendulum swing less
and taking it off would allow the pendulum return to its normal swing. I wrote another wee script to
poll the voltage on the coil and see how this changed with the change in pendulum arc decay. The
peak voltage from the coil decayed at much the same rate as the pendulum did. Therefore the peak
voltage at the coil would be a good indicator of the amount of pendulum arc.

The next thing I did was to try and control the amount of energy going into the pendulum by varying
the width of the pulse. In a nutshell, I found that increasing and decreasing the pulse width to speed
up or slow down the pendulum did not work well for changes in pendulum load. What I found did
work quite well was a hit and miss type set up. The logic turned out very simple. If the peak voltage
was below a number then pulse the pendulum. If it was above then skip a pulse. With this logic I
could vary the load on the pendulum and within a few swings it would fall into the correct beat,
every time. With a bare pendulum I get 1 pulse per 20 or so swings. When I add load this increases
depending on how much load until it pulses every swing. If I add too much load, the pendulum
grinds to a halt.

Arduino with low power


I chose to use an Arduino to drive the clock. The local store sells a Chinesium BTE013-010 Pro Mini
clone that uses a 5V AT168 Mega chip running at 16MHz for a few dollars. I used 4 x AA Alkaline cells
with a series diode to provide power. The plan was to connect the battery to VCC on the Arduino
and be done. Clearly the obvious plan is not the best plan. Nick Gammon seems to have devoted his
life to running an Arduino on low power. I am deeply indebted to him.

To get the thing to run on low power I needed to:

1. Disable the on-board power LED


2. Remove the voltage regulator. Without Vin, the regulator would suck 5mA off VCC. Going in
via RAW would lose 1.5 volts and “only” 1mA. The programmer generates 5V for VCC so not
having regulator is not a problem.
3. I run the CPU at 8 MHz even though there is a 16MHz resonator on board. To get this to
work I needed to use the 3.3V 8 MHz setting in the programmer and then put code to
change the clock divider in the setup of the script
4. The default wake up time from the watchdog (which is used by LowPower.h) is a few
hundred clock cycles + 65ms. I changed it to 0ms in the fuse settings in Boards.txt. This
setting means we are not worried about the clock stability on wake up. This setting is
intended to allow power supplies to settle, but we are on battery and not in an electrically
noisy environment like an automobile so this is not an issue.
5. Disable Brown Out Detection. Again we are on battery and not having to worry about car
starter motors.

I used the LowPower library and Task Scheduler Library. LowPower let me put the CPU into deep
sleep for most of the time and Task Scheduler allowed for some event type programming. The latter
made design and debug so much easier. Task Scheduler has a nice mode that puts the CPU in idle
(50% power reduction) while waiting for things to happen. I could not use the Low Power mode for
the pulsing timing or while waiting to read the peak voltage so this 50% was very useful. The
shortest deep sleep is 15 ms and in my testing it was anywhere between 12 and 18ms. I needed finer
control than that.

My script logic is…

1. Poll until I see a positive voltage on the coil that meets threshold
2. Wait for a few milliseconds and measure the coil voltage again
3. If the new voltage is under the voltage that indicates a good pendulum arc, impulse the coil
for 30ms
4. Put the CPU to sleep for around 450ms and then go to step 1.

I now have a peak power consumption of 20mA for 30ms every 500ms approximately 50% of the
time and 2.5mA for 60ms while sampling and a few microamps for the remaining time. This is an
average current of less than 0.9mA. I should get at least 60 days out of a set of AA batteries
So at present the CPU is “awake” approx. 10% of the time and in low power mode for most of this.
The top trace is the current draw (millivolts measured across a 10 ohm resistor). The bottom trace is
the voltage from the coil. The spike on the left is the 5V impulse. These traces let you see the hit and
miss governing action.

I think I can improve on the power consumption by using external components to create a negative
voltage trigger and fire an interrupt of the negative pulse of the coil. This will allow the CPU to be
put to sleep for much longer and may reduce the criticality of controlling the pulse width. The
ATMega 168 chip needs external electronics to do this. Other microcontroller chips may not. At
present I have not added the external electronics. If I do this well it could reduce overall power
consumption by about 25%.

So Far (April 2020)…


The clock is running very reliably. The usual teething issues with a wooden clock are well ironed out
now. We have had a few wet days and a few hot days and the clock is running well. I have yet to
build a clock watcher but from looking at the hands it is within a minute or so of Windows 10 time
over a period of 3 days. I have even been brave enough to give the clock a finish of tung oil. It now
looks nice and is still going!

Rolling forward 2 months. The clock has lost time on two occasions, the first due to a press-fit gear
coming loose on the main arbour that was repaired with a shot of CA Glue. The second was due to a
pair of teeth jamming slightly. I filed the teeth in-situ and reset the time and let the clock run on. At
this stage I note that the batteries were getting low…

June 18 2020: The batteries are now pretty flat at 3 months delivering 4.0 volts to vcc on the
Arduino. The hit and miss governor is no longer missing and occasionally the ratchets will miss a
beat. Time for a new set of batteries. The battery life is acceptable to me. 3 months on 4xAA
alkalines.

More Thoughts (August 2020)…


It occurred to me that I am triggering on the exit edge of the coil and therefore giving a relatively
inefficient pulse to the pendulum. Time to have a wee play and see the effects of triggering on the
leading edge and pulsing over the middle of the coil.

I also changed my code so I flash the LED when the governor does a miss. I will probably regret this
change.

You might also like