Quest for my perfect watch.

Tavis Ormandy

$Id: a07cf90837a3c4373b82d6724b97593810766af7 $


Casio PRW-3100T
Casio PRW-3100T

I love my Casio Protrek watch, I won’t leave the house without it. I’ve owned it for years, as well as some earlier Protrek models. Those earlier models didn’t break — these watches are basically indestructible — I just liked them so much I went and bought the new revisions!

It has the standard digital watch features (alarms, timers, stopwatch, world time, calendar, backlight, etc), but this watch is really intended for hikers — it has an altimeter, barometer, thermometer and digital compass built in. I’m not outdoorsy — The only hiking I’ll do is to Starbucks — but I still love this watch. I think the reason is it’s reliable — I never worry that it won’t work.

Watch Modes The standard watch modes displayed in the manual.
I think I’ve looked at the barometric pressure graph a total of two times over the years. It is pretty cool though, the theory is you can predict an upcoming weather change based on the direction the graph is trending. If the graph is flat, the current weather is likely to hold for a few hours.

Maybe you’re thinking “hah, unless the battery needs to be replaced” — wrong! The watch face is literally a solar panel, it sips so little power (we’re talking μamps) that a few cumulative minutes exposure to daylight is enough to keep the watch running for months.

I would be astonished if I woke up tomorrow and it wasn’t working, and it’s rare I can say that about any other tech I use. If an unattended update hosed my laptop, or an app update breaks my workflow — oh well, that’s par for the course. Sure, a digital watch is simple in comparison, but it’s nice to have something I can trust to do it’s job.


Still, I am a nerd — and I hear the siren call of smartwatches. I think I would get frustrated quickly with an Android or iOS smartwatch, but is there some middle ground? A simple, reliable, programmable digital watch?

It doesn’t have to be zero-maintenance, I can tolerate annual battery replacements… but daily or weekly recharging and any dependence on online services really seems unbearable to me after years with my Casio.

The main feature I would like is some sort of sync capability. Ideally, I would like the alarms and reminders from my UNIX ~/.reminders file to appear on my watch, perhaps over RF or BLE. I don’t mind writing code to make this happen, so some customizability, automation or programmability is essential.

What options are there for someone like me?

Go Homebrew?

There are a few homebrew smartwatches that appeal to me.


Jose Castillo has built SensorWatch, a fully programmable replacement board for the Casio F-91W watch.

This almost meets all my needs, it lasts a full year on a single battery and I could write an app to handle my reminders. The only issue is that sending data to the watch would be difficult once it’s assembled, as only the buttons can be used for input.

Sensor Watch
Sensor Watch

There is an add-on board that adds GPIO pins, the idea is you can add your own additional sensors… if you can make them fit. This might be beyond my hardware skills, but perhaps exposing the pins externally to add some form of i2c might be good enough — at the expense of water resistance.

Sensor Watch Addon
Sensor Watch Addon

I could ask Jose how he would add sync, perhaps he knows of some small sensor like a magnetometer or IR photodiode that I could use to build a low-bandwidth communication channel.


Travis Goodspeed (unfortunately for him, people sometimes confuse us because of our similar names!) has a very impressive project called goodwatch for amateur radio enthusiasts. It’s another board swap using the MSP430, but for a different Casio shell with far more inputs and a more capable segment display. Travis says a battery can last months, perhaps longer depending on usage. That’s a little lower than I would like, but it sounds tolerable.


I don’t have much amateur radio knowledge, but it seems plausible I could add some low-bandwidth sync capability with a cheap SDR dongle and a weekend hacking MSP340 assembly. I can absolutely imagine using this, although Travis is a notable hardware hacker and I can barely solder! Assembly looks a little more involved than the sensorwatch, so I worry this might be out of my league!

Go Hybrid?

Sony Wena Pro Sony Wena3

There is an interesting Sony product line called Wena, primarily sold in the Japanese market. Wena is not a smartwatch, it’s a “smartband” that replaces the band on your existing watch. This seems moderately interesting, it needs regular recharging but degrades gracefully into a regular watch if the battery dies.

Of course, there is no built-in functionality to use it for what I want, but it seems totally plausible I could add it — decompiling the companion APK if necessary to figure out the API.

It is not cheap, and I would have to import one to the US. Frankly, online reviews are not favourable at all — but as I would write my own software, I think I could make it work.

There are two interesting models, the Wena Pro and the Wena3. The Wena3 has a heartrate monitor, bigger screen and USB-C, but I think I prefer the simpler Wena Pro design.

Go Retro?

There have been smartwatches around since the 80s, and the specifications I’m interested in are hardly cutting edge! Perhaps the closest device to what I’m looking for is actually from 2003, the Timex m851.

Timex m851
Timex m851

It’s a programmable digital watch based on the 8-bit SEIKO 88349 CPU, and 2kb of RAM. Here is the developer manual, and here is the CPU manual. Essentially, you can write “wrist apps” in S1C88 assembly, and sync it over USB with a cable.

There is apparently also a C compiler and simulator available, although I suspect writing in C might not be an optimal use of the constrained system resources!

The simulator seems capable, here are screenshots from the manual.

Timex Simulator
Timex Simulator

The documentation says the battery needs to be replaced every 2 years, which is totally acceptable.

Timex Battery
Timex Battery

There was also a modest enthusiast community at some point, who wrote some interesting apps. Amusingly, this watch uses the same CPU as a popular retro gaming device (the Pokemon mini), so retro game hackers have already documented the toolchain and device quirks, and even built emulators I might be able to repurpose!


Well, I’ve ordered a Wena Pro, a Sensor Watch and a (preowned) Timex M851.

I’ll try to get all three working and post a part two with my developer review!