Arduino to find wrist watch frequency


I have a friend who is an enthusiast of wrist and pocket watches. We were talking about how Arduino can be helpful in so many areas and he gave me a challenge.
He wants to know the frequency of a watch during a period of time. The supposed machine would have an approach similar to existing comercial, more expensive, solution.

This machine would have to measure the watch's movement during a period of time in several different positions.

My concern is how to "ear" or "sense" the ticking. If I use sound I not sure I will be able to get an amplified signal without getting noise amplified as well. If I use vibration I don't know if I can get a component sensitive enough to get some signal.

Tilting the watch, doing the math is not the problem (i thing) once I start somehow (which is now my problem). Any suggestions?

A small piezo microphone should not have a problem with it.
You need an amplifier. Perhaps one or two transistors is enough.
The amplifier should only amplify the ticking, so the low frequencies can be filtered out. Perhaps you can stick a pieze element (the round disc) directly to the watch.

The crystal of the Arduino is not very accurate. What if the mechanical watch is more accurate than the Arduino ?

It is possible to tune the crystal frequency with a register, but I think that it will not be accurate enough.

According to this, there are used heated crystals that are very accurated:

You can use a RTC (Real Time Clock). Is it okay to measure during an hour or so ? That would make it possible to measure it.

The mechanical watch depends also on temperature I assume. And perhaps baromic air pressure. So the tilted effect is perhaps not the only thing that is measured.

Is it okay to measure during an hour or so?

It is going to have to be. Given the mechanical restraints of simply coupling a microphone to the watch (I seem to recall this sort of watch tester from thirty-odd years ago, using a "radar"-style display!), you will need a long averaging time.

A RTC module as time reference would certainly be the way to go, but since it only reads out to the nearest second (IIRC), you might want to actually count its 1 second "ticks" and synchronise with them.

Hello - I can`t chime in at all to help, but please please keep us updated. I built a clock a few years ago and wanted to build something similar:;topicseen

Not sure if any of the info on there is useful.

Id certainly be interested in this. My version was simpler because I was looking at a clock, I didnt need to "listen" to the beat but could physically measure the pendulum swings by a laser break or similar "button". Im still interested in doing this as Id love to know how accurate my clock is!


I was just looking to do the exact same thing, my automatic watches run at either 4Hz or 18Hz, in general I think I know how the code should work, count the high "ticks" per second, and display it on an LED. What I don't quite understand is how the electronics should be put together, If anyone has a suggestion, I'd like to see it.


Before you get into the details of how to implement I suggest you think about what sort of timing resolution and accuracy you need. If you want to know whether it's 4Hz or 18Hz that wouldn't be very difficult to tell apart. If you want to know whether it's 3.9999999999 Hz or 4.00000000001 Hz, that's a different matter.