I used pulsar detection techniques to turn a phone into a watch timegrapher
Posted by tylerjaywood 3 days ago
Comments
Comment by tylerjaywood 3 days ago
The problem: an iPhone's built-in microphone picks up a mechanical watch's tick at about 1.5 dB SNR. The solution turned out to be epoch folding — the same technique radio astronomers use to find pulsars. Stack 100+ tick periods together and you get +20 dB of effective gain, enough to reliably measure rate and beat error.
The post covers the full DSP pipeline — bandpass filtering, epoch folding, autocorrelation (and why it finds harmonics before fundamentals at low SNR), Kalman filtering for convergence — and what I learned from five rounds of device testing.
Comment by CamelCaseCondo 6 hours ago
Comment by tylerjaywood 4 hours ago
Comment by TheJoeMan 7 hours ago
Comment by staplung 7 hours ago
``` Before you start the delivery of accelerometer updates, specify an update frequency by assigning a value to the accelerometerUpdateInterval property. The maximum frequency at which you can request updates is hardware-dependent but is usually at least 100 Hz.
```
100Hz is way too slow. Presumably some devices go higher but according to the article the peak signal is in the 3kHz to 15kHz range.
Comment by fecal_henge 2 hours ago
Comment by mkesper 5 hours ago
Comment by tylerjaywood 4 hours ago
Comment by TApplencourt 8 hours ago
Comment by tylerjaywood 3 hours ago
One difference is cost. I know that mine is lower cost, and is a one time unlock -- no subscription. So there's that. I'm also therefore positioned a little bit more towards the casual user, I prioritize speed of completion which means I need high confidence in a good signal quickly and don't hesitate to cancel mid-flow.
I think one thing alternatives offer is the ability to run for longer -- like a 10 minute check for instance. There are marginal gains in precision for every additional second, but they seem to diminish pretty quickly past 30 secs or so. But that's one difference I'm aware of.
Comment by ThroneCreator 2 hours ago
Not sure how stable the waveform is across ticks in a mechanical watch though.
Comment by aanet 6 hours ago
When you say "phone mic" do you mean the embedded one, or an external one?
Comment by staplung 6 hours ago
Comment by tylerjaywood 3 hours ago
Comment by zokier 2 hours ago
Comment by silisili 7 hours ago
I bought and use the item linked below. It's big, and feels like tech straight out of the cold war era, but works great.
Comment by tylerjaywood 3 hours ago
I will say, this flow is not the primary concept for the app. My intended design, and what it's been for 2+ years, is a tool that provides structured flows for inputting the time on your device and comparing it to atomic time (provided in my app). If you stagger these measurements over 6 or so hours for a day or two, you get a very precise reading and I still recommend this approach as being better.
Comment by encom 4 hours ago
Comment by mysteria 3 hours ago
Seems some people have done this already with a PC app: https://timeandtidewatches.com/how-to-make-your-own-timegrap...
Comment by tylerjaywood 3 hours ago
It's in open beta testing on the Play Store for Android. You can also find low cost external mics for your devices that work well.
Comment by fred_is_fred 6 hours ago
Comment by tylerjaywood 3 hours ago
Higher end watches also get external certifications that reflect different precision standards. Some examples: METAS, COSC, or Rolex Superlative Chronometer if you are Rolex and need to be special. They have different specs, Superlative Chronometer is +/-2 sec per day. If it's out of spec and you're under warranty, you may be entitled to a free adjustment by a service center. Otherwise, overtime, as the performance degrades, it's a signal you may need a service.
There's also the risk of magnetization. If the delicate machinery becomes magnetized, you'll see BIG swings, like +/- minutes per day. Demagnitization is something any watchmaker can do quickly. (There is inherently some risk posed by the phone itself having a lot of magnets, but modern watches are typically built to resist magnetization to varying degrees -- look at the Rolex Milgauss as an example of best-effort magnet resistance)
Watches will also perform variably depending on position. If you know your watch is -4sec/day on your wrist, but +6sec/day face down, you can effectively manage it's accuracy by placing it face down over night and never have to unscrew the crown but keep a true time. This is a very common use case.
Hope that covers the general cases. This app avoids a lot of even deeper complexity, like beat error and amplitude which are deeper metrics describing the movements performance and guide watchmakers to know which screws to adjust which way.
Comment by adrian_b 4 hours ago
You used a device like that described in the parent article to measure the deviation from the correct frequency and you adjusted the frequency with a fine screwdriver or a similar tool, until measuring the desired nominal frequency.
Comment by matheusmoreira 5 hours ago
The objective is to minimize this number as much as possible. The open source sensor watch has a temperature sensor and software which turns it into a temperature compensated quartz watch. Mine loses time every year instead of every day or every month.
Comment by coredog64 4 hours ago
Comment by myself248 4 hours ago
Man with two clocks, never quite sure...
Comment by tylerjaywood 3 hours ago
Comment by pastescreenshot 5 hours ago
Comment by dune-aspen 2 hours ago
Comment by darig 3 hours ago