Sensor Watch Pro

A more hackable ARM Cortex M0+ brain upgrade for Casio's iconic F-91W

Crowdfunding now!

View Purchasing Options
Oct 29, 2024

Project update 5 of 5

Custom Parts, Taming the DST Beast, and Sensor Watch at Hackaday Supercon!

by Joey Castillo

Hey y’all!
Kind of a big grab bag of news this week. First up: (mostly) good news about getting all the parts required to make Sensor Watch Pro. Two weeks ago, we received the 3,477 super-rare inductors that we needed for the production run. And then last week, I received this image via email:

That’s 10,000 of the custom spring connector that we designed to replace the part you previously had to desolder from the original Casio board. They’ve been made! Now it’s just a matter of logistics (getting them from China to here) and then Sensor Watch Pro can be a fully drop-in experience, with no soldering required.

One bit of troubling news in the custom parts realm: we got what we thought were our final LCD samples, only to find when we installed them that the display wasn’t quite centered in the Casio’s display area. The issue is subtle — only about three tenths of a millimeter — and when I showed the new samples to some colleagues, none of them pointed it out as an issue. Still, once I pointed it out, they recognized the issue. And if I’m being honest, it would have bothered me to no end if we’d shipped it like that.

So we’re doing one more round of tooling samples and I’ve sent one Sensor Watch with test firmware to my supplier, Team Source Display. They’re going to use that test device to get it just right and then manufacture the displays. Hopefully this won’t cause a delay; they expect to receive the test device next week, and it’s 6-10 weeks from there to final production. With luck, this should put the custom LCDs shipping in January, before the lunar new year celebrations shut down manufacturing for everyone.

Taming the DST Beast

If you already own Sensor Watch — or a classic Casio for that matter — it’s about that time of year: Australia just sprang forward last month, while the United States is set to fall back this weekend. For most non-smart watches, including Sensor Watch up to now, this means resetting the clock and, if you have some world clocks installed, resetting those clocks too.

Well get this: new in Second Movement, when daylight saving time ends, Sensor Watch will automagically update the time — not just in your time zone, but in every time zone!

There have been a few ferocious beasts laying in wait when it came to designing Sensor Watch Pro. You’ve met the difficult-to-source buzzer inductor and we just talked about the challenges of having custom parts made. But in terms of software dragons, daylight savings time has always loomed large. It’s complicated: some places observe it, while others don’t. There are at least a dozen rules for different countries: rules about what day the time zone changes (and what time!), which direction it goes at what time of year, and what’s more, the rules change! Brazil observed daylight savings time until 2019, then abolished it, and are now considering bringing it back!

Here’s an excerpt from the upstream tz repository, the source of truth for most software that uses timezones.

Taming the DST beast required a radical refactor of the way we tell time on Sensor Watch. Before, you set the system time to your local time zone, and world clocks moved the time forward or backward from there.

Now, you still set the time to your local time but, internally, Second Movement converts it to UTC time and keeps track of that. Then, any watch face that displays the time converts it back to the local time zone via the new movement_get_local_date_time function. This function checks against all the rules for your local time zone, and shows you the right time, every time.

This does mean a change to the way you set the time zone: where before, you set a raw hour and minute offset from UTC, now you’ll be presented with the name of a city, state or country, flashing alternately with the offset. In the United States, for example, you’ll see a time zone for Denver (which is in MST or MDT, because it observes daylight savings time) as well as Arizona (because it’s on MST all year long). Ideally you should see one place that matches every set of possible rules: “Chicago” matches the behavior of the US central time zone, whereas “Regina” matches Mexico City and most of Saskatchewan (except for the parts that act like Denver or Chicago).

Time zones will never not be confusing, but I think we’ve gotten it right. And the satisfaction of seeing it work is worth all the effort.

Sensor Watch at Hackaday Supercon!

If any of y’all are going to Hackaday Supercon, please reach out! I’ll be there and hanging out in the alley, likely hacking on either Sensor Watch or the “Sensor Watch” Simple Add On that I’m bringing to give away to friends and colleagues:

This simple add-on plugs into your conference badge and, while it’s not Sensor Watch — not by a long shot, it is a fun LCD that you can control with MicroPython. I designed it to spread awareness of the Sensor Watch project and I’d be proud to give one to any attendee who wants to wear it on their badge with pride.

Also, naturally, I’d love to meet folks there who’d like to riff about the Sensor Watch project or share things they’ve done with it! Feel free to reach out via the Ask a Question link on the Sensor Watch campaign page.

Anyway, that about wraps it up for this week’s update! With one week left, I hope you’re as stoked as I am to see Sensor Watch Pro come into the world.


Sign up to receive future updates for Sensor Watch Pro.

Subscribe to the Crowd Supply newsletter, highlighting the latest creators and projects