Meanderspace

My time with Watchy

Watchy with a black aluminium case being worn on a wrist

Watchy with a black aluminium case being worn on a wrist

Around a month ago, I bought and got a Watchy. To be more specific, a Watchy clone with a USB-C (rather than MicroUSB) port from AliExpress. It's fairly cheap, built around open-source from board to firmware, and has an E-Ink screen. E-Ink has always been fascinating, being sunlight-readable screen tech mimicking physical paper which retains graphics even without power. However most devices using it have been out-of-reach, both financially and regionally.

That is, until discovering the Watchy.

Hardware

PSA for Watchy v2 and its clones

Before any further hardware talk, we need to talk about a prevailing problem with Watchy v2 and its clones.

The USB-to-TTL chip on a Watchy v2 clone (CH9102F) under a microscope

The USB-to-TTL chip on a Watchy v2 clone (CH9102F) under a microscope

Watchy v2 and clones based on its design lack TVS (transient-voltage-suppression) diodes, which means that they will eventually stop being recognised when plugged into a USB port. It will still be possible to charge them, however. There are multiple quality lotteries at play here: silicon (USB-to-TTL chip), power source, and cable. To postpone this fate, it is recommended to charge via a computer solely using the cable that comes with a Watchy.

The actual hardware talk

Official Watchy render from SQFMI shwoing two Watchy boards, with one on the left showing the E-Ink screen attached and the one on the right showing the board components

Official Watchy render from SQFMI

The Watchy is based on ESP32, specifically either the ESP32-Pico-D4 (v1 and v2) or the ESP32-S3FN8 microcontroller. It has WiFi (802.11n), Bluetooth 4.2, an RTC (real-time clock), and can be flashed via USB serial. Clones such as my Watchy unit may come with a USB -C port, in lieu of a MicroUSB port. A good change from the original design, due to the increasing prevalence of USB Type C and its various benefits over MicroUSB.

Watchy v2 with a black, anodised aluminum case and a silicone strap

Watchy v2 with a black, anodised aluminum case and a silicone strap

I ordered my Watchy with a black, anodised aluminium case and a silicone strap. The case really does make it feel more premium and sturdy than without, despite its price and hackable nature. The silicone strap unfortuantely causes mild skin irritation after extended use, but thankfully the case uses NATO watch straps so it won't be difficult to find replacements. The case makes the watch a bit thick; this is not to the point of being unwieldy to brandish, but some wrists may find it too large for comfort. There are other case designs such as the Watchy Invader Remix which have slimmer profiles.

The buttons are a bit squishy, yet have a decent click to them. The 200x200 resolution E-Ink display came with a protective acrylic layer. While the acrylic makes the screen glossy, the screen remains rather readable even under a tropical sun. I may look into either an alternative acrylic layer with a matte finish or cut a matte plastic screen protector to size later.

Software

Original firmware's About screen showing the info for LibVer (1.4.6), RTC (PCF8563), Battary (3.95V), and Uptime (20 days, 15 hours, 46 minutes)'

Original firmware's About screen

The original firmware is rather simple and hasn't been updated for years, making it somewhat of a challenge to actually compile. Due to this, most people instead flash any of these actively-developed (as of time of writing) custom firmwares:

Common features between them are NTP sync via WiFi, custom watchface support, and step counting. We will go through each of these three firmwares, in descending order of how long I've used them.

TinyWatchy

TinyWatchy is an endurance-focused firmware with a minimal featureset. It only supports a single WiFi network and the NTP server cannot be changed without patching the source code. It comes with three watchfaces by default, tries to wake up the Watchy as little as possible, and has alarms. It should be noted that this does not officially support Watchy v3.

This stayed on my Watchy the least, since it was failing to do NTP sync. Unfortunately, this also meant that I wasn't able to do real-world power endurance testing to verify its claims of being power-efficient.

InkWatchy

InkWatchy's InkField face showing the time (13:02), date (Friday, December 27), and weather conditions

InkWatchy's InkField face

InkWatchy is feature-packed, coming with all sorts of novel features including:

The main watchface also has these modules which are shown at the bottom of the screen and can be switched between each other:

The developer of InkWatchy is also very active on the Watchy and *atchy Discord communities, in addition to presently creating a spiritual Watchy successor in Yatchy with improved hardware.

As for actually using InkWatchy, it was mostly quite good! The menus have smaller text than the original firmware, but remain very comfortably readable regardless; undoubtedly helped by the main menu items also having icons.

The Weather app has 16-day forecast fetching, far more than any other Watchy firmware inactive and active. However, the graphs used can be difficult to parse due to the small Y-axis numbers and lack of X-axis numbers. It can take a while to fetch 16 days worth of weather data, which is forgivable; I do wish there was a config setting in the source to limit how much weather data is fetched, though.

The UNIX-Hater's Handbook being read in InkWatchy while wearing the Watchy

The UNIX-Hater's Handbook being read in InkWatchy while wearing the Watchy

The E-book reader works by converting EPUB and PDF files to text files, as part of the resource generation step when compiling the firmware manually. Even will small text, e-books remain somewhat readable on the small screen. However, this also means that a single page will be split into multiple sections. So while books will be readable, it is not practical to do so.

cohost's eggbug with 2022-2024 written underneath on the Watchy

cohost's eggbug with 2022-2024 written underneath on the Watchy

The encrypted image vault feature meanwhile is more than just a novelty. The E-Ink screen is dense enough for my national ID's big QR code to be readable on it, albeit with a bit of camerawork needed. Although admittedly, it was mostly for fun. Had a great time making some small art to load up on to the Watchy!

The single-player Pong game is a good time-waster, however only for a very short amount of time. There is a Tetris tetrominoes game in development for InkWatchy however, which hopefully will be more compelling.

Blockchy

Since this blog post was originally written, InkWatchy now has the tetrominoes game called Blockchy. Blocks are controlled by the upper right button (right), lower right button (left), and the lower left button (turn block clockwise). It is more compelling than the Pong game, however there is a two-row input delay on average, not including times when the screen has to fully flash. Could be interesting for people who want a challenge in this type of game, perhaps?

For debugging, InkWatchy has the most amenities available. From debug menus to live logging via USB, it is far and away the most friendly to bug testers and developers. This was how me and InkWatchy dev Szybet were able to figure out that NTP sync was failing due to pool.ntp.org ratelimiting and WiFi code weirdness, leading to an NTP server option in the configuration and WiFi country code fixes. There is also watchy-scom, which allows for mirroring the screen of a connected Watchy to a PC. I wasn't able to get it working however, but that was presumably due to a misconfigured build.

Update on watchy-scom

I was later able to get watchy-scom working with a properly configured InkWatchy build. It worked fine after a few attempts, due to a loose cable. Was a bit surprised at the size of deps it pulled in however, which eventually lead to space on my desktop's internal SSD running out. If you're going to use this tool, please do make room for it.

Unfortunately before I could return to InkWatchy after trying the next firmware in this post, the CH9102F USB-to-TTL chip in my Watchy broke. I was therefore unable to do extended, real-world power endurance testing. From what comparatively little time I had with InkWatchy, it was able to comfortably last multiple days on a single charge when not using a debug build.

InkWatchy's real-world power endurance

The second Watchy unit arrived right before my first Northern European trip, which allowed for side-by-side comparisons with Watchy GSR (which is whhat I used mainly). InkWatchy lasted for around 1.5 weeks on a single charge, compared to Watchy GSR's 5 days. However, I was recompiling InkWatchy (to change tinmezones and weather locations) significantly less often than with Watchy GSR (but without recompilation). InkWatchy's power endurance even without recompilating and flashing on a near-daily basis is prolly going to be similar to this travel scenario, roughly similar to Watchy GSR.

Look for a related follow-up note in the Watchy GSR section for a continuation.

Despite the extensive featureset though, InkWatchy by design has most of its configuration in headers. This means recompiling whenever WiFi netwroks need to be changed, setting a weather location, etc. Also, no alarm functionality. I've talked with Szybet about this and it is planned eventually.

Extended on-device settings aren't happening anymore

Szybet later dropped the idea after not liking the library they were looking into for implementing a WiFi hotspot to have extended settings in (similar to Watchy GSR).

Watchy GSR

Watchy GSR version (1.4.7N) shown in a menu on the Watchy

Watchy GSR version (1.4.7N) shown in a menu on the Watchy

Watchy GSR was the firmware I spent the most time with, intially unintentionally due to being unable to reflash the Watchy after a hadware issue. However over time, I'd say that this would prolly be true even without said HW problem.

Watchy GSR is meant to be a spiritual successor to the original firmware, with a couple more features on top. It is supposed to be easier to port watchfaces made for the original firmware. It has alarms, timers, and weather sync for watchfaces that support it. Although at the moment, only the 7-SEG watchface does.

Watchy GSR configuration web UI showing buttons for Backup and Restore Settings, Edit Additional WiFi access points, Preferred NTP server, Upload New Firmware, Watchy Weather settings, and Exit

Watchy GSR configuration web UI

A lot of configuration is accessible via an HTTP web interface, accessible over either a connected WiFi network or through its own Watchy Connect hotspot. Settings load and save, WiFi networks, preferred NTP server, and weather location are all available here. Additionally, Over-the-Air (OTA) updating via the web UI is available. This proved to be significantly useful over time and gives Watchy GSR a major edge over other other firmware.

Alarm 2 settings in Watchy GSR

Alarm 2 settings in Watchy GSR

Watchy GSR can store multiple alarms and timers. Countdown and elapsed timer types are present here. The vibration options for these features are confugrable, with pulse patterns and intensity. The vibration motor isn't strong enough to wake you up, unless the Watchy is on a thin and hollow object or membrane of sorts. However, it is more than enough if the Watchy is already being worn.

Outdated info

Since this post was originally written, InkWatchy has also undergone real-world power endurance testing; ignore the bit in the next sentence after this warning saying that Watchy GSR is the only tested firmware. More details in the note about InkWatchy's real-world power endurance in its section, in case you've somehow missed it.

This is by far the only firmware that I was able to do extended real-life power endurance testing. With power saving mode and 8.5dBm [Medium] WiFi Tx power:

I have yet to do tests with the Starry Night watchface, which is supposedly the most battery-intensive watchface.

Going international with Watchy GSR

This is that related note previously referenced in another note from the InkWatchy section on its real-world power endurance, made after this post was originally written.

Watchy GSR gets up to five days on average, when travelling internationally. Recently got a chance to test it during my first Northern European trip, which took me across eight timezones. This is prolly one of the best possible practical testing scenarios for the firmware! Here are the results from the trip:

*6 days was the longest time spent in a single city, so the firmware could've potentially lasted longer with these settings

Most of the time, the WiFi Tx power was also set to 8.5dBm [Medium] as with prior testing. There were occasional moments when it had to be set higher, due to signal interference, however I do not think these were frequent nor intesive enough to notably affect the results. A possible factor to be considered are the lower-temperature climates (I'm typically in a tropical climate) this round of testing was conducted in. The climate ranged from tropical to polar during travel, which may have affected battery performance.

There is still a lot of power usage headroom left over. WiFi Tx power can be set all the way down to 2 dBm [Low] and vibration feedback can be turned off. There are also further power optimisation configuration available in the source code, similar with other firmwares.

Conclusions

For Watchy v2 owners:

Watchy v3 owners only have InkWatchy and Watchy GSR available with official support, so the former is recommended for both endurace and featureset.

Overall, I'd recommend Watchy GSR as a daily driver firmware. With regards to featureset, it is in-between TinyWatchy and InkWatchy. However, what features it does have lends it extremely well for using Watchy on-the-go.

With most of the essential settings and OTA updating being available without the need to recompile, the Watchy is most practically useful with Watchy GSR while travelling. Having multiple alarms became particularly useful for especially long-distrance travelling. The ability to host a hotspot for changing settings was rather convenient when going through airports and between destinations. The timers came in handy while cooking at home and walking during travels.

On a Watchy v2 with a broken USB-to-TTL chip, Watchy GSR's OTA update feature becomes the only way to flash firmware. It is why for Watchy v2 owners Watchy GSR is very strongly recommended, due to an inherently flawed hardware design leading to a guaranteed eventual inability to access a Watchy via USB. That is, unless someone is willing to buy many spare parts of the USB-to-TTL chip in addition to having the equipment and expertise for surface-mounted soldering. Or alternatively, find a repair shop willing to perform surface-mounted chip replacement; this may be more challenging than it may seem, as it took me visiting more than a dozen repair shops before finding one that was willing to do the procedure.

Despite not being rated for water resistance, the Watchy has survived even heavy torrential rain. The acrylic layer atop the E-Ink screen is sensitive to scratching with deeper grooves at a level 4, but not yet to the point of making the screen hard to read. As long as you're not dunking the watch into water or going headfirst into a sandstorm, the Watchy will mostly be fine.

E-Ink display performance in various climates

On a second, newer Watchy v2 clone unit I was able to see how well its E-Ink screen performed under more varied climates and increasingly extreme temperatures. With highs of up to 40ºC and lows of down to -10ºC, some newer Watchy v2 clones can have displays capable of performing decently well with minimal ghosting at this temperature range. At approximately -12ºC or in a polar climate is when the newer E-Ink display began to notably degrade.

As a basic yet hackable smartwatch, the Watchy is a great way to cheaply get into E-Ink and developing for a specific niche (wearable). It does the absolute basic features well and is open enough for further improvements. The battery life on a single charge is measurable in many days to weeks, making it very low maintenance once settled on the firmware. I know that this post is too late for Christmas, but it could be an inexpensive yet valuable gift to anyone interested in maker culture, display tech, open-source, and/or privacy.

Sputterings

Some watchface design mockups for Watchy

Some watchface design mockups for Watchy

This is only the start of my journey with Watchy. For the hardware, there are some plans to improve upon it in small ways; namely, coating the board with nail polish and getting a USB-C cover to improve water resistance significantly. As for the software, I am currently learning how to port watchfaces made for the original firmware to Watchy GSR. Once that's figured out, I will try to make new watchfaces based on design mockups including some of those in the picture above. The design process for watchfaces has been fun! Working within the technical constraints of a small E-Ink screen that can only show pure black and white without dithering (although the dithering is cool anyways) has been an intriguing design challenge, massively improving what relatively little UI/UX sensibilities I previously had until now.

I'll also be watching how developments around Watchy progress over time. While there's somewhat inactive firmware that implements notification support alongside an Android app, I have yet to be able to compile it and the related app. InkWatchy dev Szybet has also expressed interest in implementing this feature, however they are unfamiliar with Android development. Someone in the *atchy Discord has also been crafting a wooden Watchy case, which is looking great so far! The community around Watchy is small, yet has a lot of potential to do great things and hopefully this blog post will help it get bigger.

P.S. Tell me if there are any clock or system aesthetics that would lend themselves well with a monochrome screen. Besides Classic Mac OS, that is. Looking for more watchface design inspirations. :D