Watchy Smartwatch

SQFMI Watchy v2 · ESP32-PICO-D4 · 200×200 e-paper · Chronos Watchy firmware · Project parked

What is Watchy?

Watchy is an open-source smartwatch designed by SQFMI and funded via Crowd Supply. Unlike most smartwatches the entire firmware is user-replaceable — the watchface, features, and connectivity are fully determined by what code you flash. The e-paper display draws no power while showing a static image, making it viable on a small 200 mAh LiPo battery. This unit is the v2 hardware revision, using an ESP32-PICO-D4 with 802.11 b/g/n WiFi and BLE 4.2 — confirmed by esptool at first flash.

The device was purchased from AliExpress (listing 1005008618027792). It originally shipped with the watchy-starfield watchface and was reflashed to stock Chronos Watchy v1.2.0 during architecture research. The project is currently parked — see Research Findings below.

Current Setup

DeviceSQFMI Watchy v2 (ESP32-PICO-D4)
ChipESP32-PICO-D4 · confirmed by esptool
Flash4 MB
MACa4:f0:0f:38:48:9c
Display200×200 e-paper (monochrome)
Firmwarerunning Chronos Watchy v1.2.0 (stock)
Purchased fromAliExpress ↗
OTAparked requires custom companion app
Phone syncparked requires custom companion app

Resources

Official projectwatchy.sqfmi.com ↗
Official firmwaregithub.com/sqfmi/Watchy ↗
Current watchfaceProkuon/watchy-starfield ↗
AliExpress listingItem 1005008618027792 ↗
XiaoZhi (sibling)ESP32-S3 AI assistant on this server ↗

Target Architecture parked

Research concluded that WiFi on the watch is unnecessary. The phone is always nearby, always has internet, and BLE is purpose-built for this relay pattern — the same approach used by Fitbit, Garmin, and Whoop. The target architecture is BLE-only on the watch, with a custom Android companion app as the internet bridge.

1
BLE-only watch firmware
Chronos Watchy base — no WiFi code. Phone pushes time, weather, and notifications over BLE. Watch never connects to the internet directly.
2
Custom Android companion app
Sits alongside the Chronos app. Handles OTA — downloads firmware from this server and pushes the binary to the watch over BLE. Also writes step data into Android Health Connect.
3
Health Connect + server bridge
Steps and activity from the watch flow into Android Health Connect (the standard health hub used by all major fitness apps). Custom alerts from danscodellaro.com pushed to watch as notifications.

Research Findings

BLE vs WiFi power

BLE is the dominant battery drain by a factor of ~100×. WiFi OTA once per hour costs ~0.07 mAh; BLE advertising during every 40-second wake window costs ~8 mAh/hr. Eliminating WiFi from the watch saves almost nothing — the real power budget is BLE.

BLE active (40 s/min)~8 mAh/hr
WiFi OTA (5 s/hr)~0.07 mAh/hr

BLE as internet gateway

The phone already handles all internet for the watch in the Chronos model — weather, time sync, and notifications all flow over BLE with the phone fetching data on the watch's behalf. Extending this to OTA and Health Connect requires no new WiFi infrastructure on the watch, only a companion app.

Chronos app gaps

The Chronos Android app has no Google Fit or Health Connect integration. Step data received from the watch stays siloed in the Chronos app — it does not flow into the standard Android health ecosystem. A custom companion app is required to bridge to Health Connect.

Time syncYes
NotificationsYes
WeatherYes
Health ConnectNo
OTA firmwareNo

Google Fit / Health Connect

The Google Fit REST API can accept step data from any HTTP client including an ESP32, but requires OAuth 2.0 — awkward to manage on embedded hardware. More importantly, the Fit REST API is deprecated in favour of Health Connect, which has no remote API — it is Android-local only. The correct path is watch → BLE → companion app → Health Connect.

A server-mediated approach (watch → server → Fit API) also works but inherits the same deprecation problem and adds server complexity for no benefit.