Professional Documents
Culture Documents
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.
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.
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.
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.
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%.
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.
I also changed my code so I flash the LED when the governor does a miss. I will probably regret this
change.