UNA analog face
August 2026
AnalogFace is a custom watch face I wrote for the UNA Watch using the UNA Watch SDK. It runs as an app on the watch's 240×240 reflective memory LCD — a screen with only four levels per colour channel, which is why the dial is drawn in flat, high-contrast shapes rather than gradients.
The face itself is simple: large hour numerals around the outside, hollow hour and minute hands with red accent stripes, and concentric teal rings around a black centre. The complications in the middle are the things I actually want at a glance — the month, a big day-of-week and date, today's step count, and a battery dot that goes from green to yellow to red.
The bottom of the dial is a readout that cycles through pages: next sunrise or sunset (computed on the watch from the last GPS fix), altitude, heart rate, SpO2, ambient temperature and GPS speed. Each page only powers its sensor while it is showing, so the face is easy on the battery.
As with SleepVue, I built this with OpenCode driving the Kimi 3 model — from setting up the toolchain and SDK to writing the face itself and generating all of the graphics and icons. Total AI credit cost: $45.44.
Buttons
- Top right — stopwatch: start, stop, clear. While it runs the hour hand hides and the minute hand becomes the chrono sweep, with the elapsed time on a black badge.
- Top left — shows a black background behind the bottom readout for five seconds so it can be read past the hands; press again within that window to cycle to the next page.
- Bottom right — exit the app.
Under the hood
- C++ on the UNA SDK, with the dial drawn in TouchGFX
- Two processes: a service that owns the clock, stopwatch, sun-event math and sensor subscriptions, and a GUI that renders the dial and arbitrates what the bottom slot shows
- Sunrise and sunset use the NOAA solar equations against a GPS fix persisted on the watch
- Built with CMake and the ST ARM GCC toolchain, packed into a
.uappand copied onto the watch over USB