Fixing clock drift on the Watchy


A watch showing the correct time. There is some blurred code on the computer screen behind it.

I'm getting increasingly annoyed with SQFMI's Watchy. The documentation is terrible, the device is fragile, and now it turns out that the "Real Time Clock" loses several seconds per day! Which means, after a couple of weeks the watch is a couple of minutes fast. Ugh. But, on the other hand, you can reprogram it in C++. So swings and roundabouts... Anyway, this is the code you need to stick into your watch face to have it perform an NTP sync at, for example, 5am: if ( minute == 0 ) { if ( …

Continue reading →

Discord is not Documentation


Some colourful blobby people constructing an FAQ. Photo by @alexasfotos on Pixabay.

I'm going to be slightly contrarian and say that I like Discord. It's great to be able to get real-time help on a problem. And it is fun to see, again in real-time, what other people are working on and struggling with. In truth, Discord is no harder to sign up to than Slack, Matrix, Gitter, IRC, or whatever. And of course Open Source projects will follow the maxim of "go where your audience are". There's no point posting everything to MySpace when everyone's already on Facebook. Do I care…

Continue reading →

A whimsical fuzzy clock


Beneath the moon's glow, secrets find their release. In this enchanted hour, let desires run wild. Tread lightly, for mischief lurks in every shadow. Oh, sweet temptation! Yield to its seductive call. In the realm of dreams, reality fades away. Embrace the whimsy that dances upon moonlit beams. Amidst the night's embrace, secrets are whispered.

I'm sure I remembered there once being a clock app for Linux which was deliberately vague. It would declare the time as "Nearly tea-time" or "A little after elevenses" or "Quite late" or "Gosh, that's early". But I can find no evidence that it ever existed and am beginning to wonder if I dreamt it. So I built it. First thing's first - there are a lot of existing fuzzy clocks. But they mostly say things like "afternoon" or "nearly 3 o'clock". There's even a Hobbit Time for Watchy. However, I …

Continue reading →

How to make the Watchy vibrate


Watch with a big USB cable plugged in.

I am enjoying playing with the eInk Watchy. It is a cute package and is everything I want in a Smart-Watch; geeky, long battery life, and not obnoxious. But - fuck me! - the documentation is atrocious! Well, that's a lie. There is no documentation. It has the "Chat to us on Discord" anti-pattern that infects so many otherwise great projects. So I'm left to figure out how to make the Watchy's haptics work. The example watchfaces have a file called settings.h which contains .vibrateOClock =…

Continue reading →

An eInk, Wrist-Mounted, TOTP Generator


A chunky wristwatch showing the time and a selection of 6 digit codes and their corresponding entities.

Behold! Thanks to the power of the Watchy development platform, I now have all my 2FA codes available at the flick of my wrist! HOWTO This uses Luca Dentella's TOTP-Arduino library. You will need a pre-shared secret which is then converted into a Hex array. Use the OTP Tool for Arduino TOTP Library to get the Hex array, Base32 Encoded Key, and a QR Code to scan into your normal TOTP generator. Add the Hex array into the code below. To check that it is functioning correctly, either scan…

Continue reading →

Stupidly Small eInk Font


A chunky eInk watch with a ridiculously small font.

I have the new Watchy eInk watch. It has a cute little screen with a resolution of 200x200 pixels. How much text can we cram in there? A typical watch face looks like this: My new watch face is far superior and looks like this: That's using the GNU Unifont - which works brilliantly on tiny devices. HOWTO Download the GNU Unifont Download and compile HarfBuzz Run the HarfBuzz Font Subsetter ./hb-subset unifont-15.0.06.ttf…

Continue reading →