The Moon Clock

This section is about the moon clock that I have built over the last few months.  I have already described the ‘design’ process in the diary pages of this website. This section tries to bring it all together into a comprehensive whole that you could use to make your own moon clock.

What does it show?
The moon clock shows on its main dial the present time (on the plain, blue hand), the moon rise time (on the red hand) and the moon set time (on the black ‘spade’ hand).  It has a secondary dial that shows the phase of the moon and its azimuth.  When the moon is ‘up’, an amber LED illuminates the moon phase dial.

I made the whole thing with a few cheap parts, using a few hand tools.  You will find it easier if you have some experience of soldering and simple carpentry, but most important is the willingness to learn by experience.  You may well find that you break a few things, but all the parts are cheap enough for you to take the risk, and how else can you learn?  It’s all part of improving your skill.  I’m not going to issue a series of warnings, either.  You can easily hurt yourself with sharp, heavy or hot tools and electricity, so ensure that you read, understand and follow all safety instructions that the manufacturer provides, use common sense and don’t put others at risk, either.

I am not going to give a set of step-by-step instructions on how to build the clock, but I will give details of what I have done, and especially the electronics and the software, since you won’t want to re-invent the wheel.


Azimuth hand fitted,
Azimuth hand fitted, showing rise time of 13:30 and set time of 01:00 (actual times are 13:05 and 00:32)

The moon clock is based on a wooden kitchen clock with a quartz movement that I picked up in a charity shop for £3.99.  The finished item is shown above.

The time movement has the usual three hands – seconds, minutes and hours, but I have re-purposed them to show current time, moon rise time and moon set time in that order.

I added a second movement to the clock so that it could show the moon phase – an image of the moon that moves slowly behind a mask, waxing (getting fatter) day by day until the moon becomes fully visible at Full Moon, and then waning (getting thinner) until it disappears at New Moon. This moon dial replaces the hour hand of this movement, but I have also added a small ‘seconds’ hand that now shows the moon’s azimuth (compass direction).

Raspberry Pi

The pulse circuitry built into the quartz movements is disconnected.  The clock is driven by pulses from a Raspberry Pi microcomputer.  The downside is that the Pi requires a plug-in power supply as batteries can’t supply enough power. I am aware a microcontroller like the Arduino can be battery driven, but I decided it was too much of a struggle to get this to work, as the software is complex.

Quartz Movements
The clock movements with battery compartments removed
The clock movements with battery compartments removed

I should mention that using a conventional clock movement to show the present, rise and set times needs quite a big compromise.  The moon rises and sets very approximately an hour later each day.  But the amount is variable, so the moon is ‘up’ for different amounts of time each day.

Because the hands of a quartz clock movement are geared together, it is impossible to show the  exact times on each hand.  I decided that I wanted to show the exact present time on the s hand (I use these abbreviations because it could be confusing if I said ‘seconds’ hand when that is no longer its function.) This hand needs to go round once in 24 hours, which only takes 60 ‘ticks’.  This means that on a 24-hour dial, it ticks in 24-minute steps – which limits the precision.

Each rotation of the s hand moves the m hand 24 minutes (on the 24-hour dial), so the rise time can be out by half this amount, whilst each rotation of the m hand moves the h hand by two hours, so the set time can be out by an hour.  And, of course, the position of the m and h hands changes as the s hand keeps up with the present time. In practice, I don’t think this really matters: in a domestic situation, we rarely see the distant horizon, only the rooftops of houses or trees.

But quartz movements are very cheap to get – in fact if you buy a second hand clock from a charity shop, it will already come with a movement. I paid £3.99 for mine.

The works

The back of the clock, showing electronics enclosure
The back of the clock, showing electronics enclosure

I made an enclosure out of plywood to contain the Pi and the electronics. This is fixed to the back of the clock dial. I also bought some hinges and varnish for the clock case.

The assembled electronics
The assembled electronics

The electronics I mounted onto a piece of Vero board (strip board).  I had a few transistors, resistors and stepping button in my spares box.  These are all cheap to get from an electronics hobby shop.

The dial itself I printed onto glossy photo paper.  I used a colour laser printer, but an inkjet would be just as good.  I will describe how I designed the dial later.

The clock hands

The hands
The hands

The clock came with brown plastic hands.  I wanted something a bit nicer and bought some gold-coloured hands from a clock hobby shop when I got the extra clock movement.  I didn’t want gold hands, but I coloured them using ‘Sharpie’ marker pens that you can get from any stationery shop, and because the ink is translucent, they have a nice metallic glow. You have to be a bit careful when buying new hands as there are at least two different shaft sizes.  If you’re not sure, get a movement complete with hands, as you can be sure they’ll fit.

The software
I will start off by describing the software.  I have written this myself in Python.  This is not my ‘native’ coding language and I had to use various websites to find out how to do some of the more difficult things on the Raspberry Pi.  I believe my code works and that it is good enough. I’m aware that I could make improvements, and I expect I will, but I want to avoid making ‘better’ the enemy of ‘good’.

I will put the software description on a separate page or pages.  This is a work in progress, so please allow time for me to get this done. Firstly, I will outline the structure and purpose of each function.  I will give a complete file that you can download.  Then in separate steps I will describe the maths I have used and how some of the other functions actually work. Although none of the maths is more than ‘O’-level, some of it is quite subtle.

I do hope this will help others who want to make their own moon clock, or re-use the ideas in another device.  If anyone borrowing my ideas would like to give me an acknowledgment, I’d be grateful!