Automatic watch accuracy check

Tags: watch, accuracy, audacity

Few months ago I got my first automatic wristwatch and I immediately fell in love with it. I didn't have any watch for like 10 or more years, so when I decided to get one (part of my image improvement process), I did a solid research. As a result, I've chosen Seiko 5 Automatic and it turned out it was a great choice. It's an SNK793 model, originally with bracelet, but I replaced it with two custom made leather straps: brown (more formal):

and navy (more casual):

Thanks to quick-pins I can replace them in just a few seconds.

Anyways, one of the automatic watch features is that it's not perfect in... time keeping. It's not being run by the battery, but purely by the mechanics, so it doesn't keep the time uber-accurately. In other words, an automatic watch is inaccurate. How much inaccurate, you may ask? Well, That Depends® and that's what I will try to find out.

How to check watch accuracy

There are several methods to check automatic watch accuracy. One of them is to use the mobile app like Watch Accuracy: you take the photo of your watch and precisely determine time on the watch at the moment of taking the photo. The next day you do it again and the app calculates the difference between the real time on the watch and the time it should be. Using this method it turned out, that my Seiko advances about 13-15 seconds a day and according to my knowledge, it's perfectly acceptable. But the funny thing is: one day the watch advances about 13 seconds/day, but the other day it may be... delaying. It really depends on how you use it the given day. For me, it's pure magic. It could also be a quite good random number seed generator.

This method, however, is boring. And you have to wait the whole day to evaluate the inaccuracy.

Panta rhei

The automatic watch makes beautiful, gentle tick-tock noise. I figured that it should be possible to record those tick-tocks, process them and estimate inaccuracy based on tick-tocks alignment errors.

So I placed my watch at the laptop's microphone and used Audacity to record tick-tocks.

The results are below:

Just to compare, at the top is my Seiko automatic watch, while at the bottom is some ordinary, boring, soulless quartz watch.

At first, I tried to record only like 5 seconds and then measure inaccuracy but it turned out it was too short. Looking at the screenshot above you may think that those ticks are perfectly visible and very thin, but when we look closer, they have some width:

It's about 16 ms long.

The sampling frequency is 44 100 Hz, so one sample lasts about: 1 s / 44 1000 = 1000 ms / 44 100 = 10 ms / 441 = 0.0226 ms ~= 22.7 µs. When we are talking about 15 secs/day delay, it equals about 173 µs/1 sec which is about 7-8 samples for our sampling rate. And since I'm not really sure where the tick starts exactly, mistaking only for a few samples may have catastrophic consequences for the whole world.

So to get better results, let's check longer period, for instance 30 seconds. Starting at some point:

We select 30 seconds with single-sample accuracy and voila:

There's our inaccuracy. We can see that the last tick starts a little too... late! It means that right now, the watch has some delay. It may be because I didn't wear it today that much.

Let's check how many samples we should add to reach this delayed tick:

Approximately its 187 samples which equal to about 4 ms/30 secs which further equals to about 11.5 secs/day.

I also checked the quartz watch:

It's also a little late, about 70 samples, so it's only like 2 times better than automatic. I read "somewhere on the Internet" that the sound card recording audio in notebooks can also have some inaccuracy in terms of timing, so all those samples may be a little shifted. But since we can't check it, let's leave it for now.

What's left is to automate those calculations, so in the nearest future, I'll try to develop some simple signal processing algorithm in Python that does that. I'll use Python only because I recently started playing with it and I'm starting to like it. It's not that Python's syntax is the best, but the whole ecosystem is simply stunning.

Stay tuned :)

Read also

The ugly truth behind pretty URLs

Attribute routing is quite handy feature of ASP.NET MVC. But it can also be the reason your web app is so slooow.

Data export tools for .NET

How to export data from .NET to PDFs, Word/Exel documents or CSVs.