Developer reports Claude Code wrote smartwatch firmware in three days
In a first-person account, developer cyberdinn says Claude Code using Opus 5.5 wrote Kronograf, MIT-licensed firmware for the LilyGO T-Watch 2020 V1, in three days. The project includes three watch faces, 13 apps, Bluetooth iPhone notifications, a network toolbox, a macOS simulator and free prebuilt binaries. The developer says they supplied the brief, architecture and stage-by-stage decisions, and handled wrist testing. The process used staged builds, device checks and host testing. Physical tasks remained necessary: the developer reports a loose micro-USB connector, battery-sleep bugs diagnosed through serial logs, and wrist-raise thresholds that still require tuning.
The account documents a coding agent doing substantive embedded-software work while showing that staged testing, hardware diagnosis and on-device judgment remained necessary.
| Project: Kronograf, an open-source (MIT) firmware for the LilyGO T-Watch 2020 V1, an ESP32 watch with a 240×240 screen. Three faces (an aviator chronograph, Back to the Future "time circuits", night), 13 apps, iPhone notifications over Bluetooth, a network toolbox, and a macOS simulator. It is free: prebuilt binaries in the releases, and the simulator runs on a Mac without the watch. How Claude helped: Claude Code (Opus 5.5) wrote the code. My part was the brief, the architecture and the decisions at each stage, and testing on the wrist. What made it work: - A structured brief first (a north star, hardware, stages 0 to 9), then one stage at a time: built, flashed, checked on the watch before the next one. - A simulator that compiles the same UI. Claude could render headless screenshots (--shot) and check its own UI work without the watch. - Two running logs in the repo: DECISIONS.md (56 decisions, each with the reason) and BLOCKERS.md (what broke, what was tried). - Plain C for the data parts, tested on the host: the ANCS notification protocol (iPhone notification), a streamed protobuf parser for a ~1 MB transit feed, time zones (checked against the C library on twelve zones over two years), sun and moon. What still needed a human: - Anything physical. The micro-USB connector on my unit drops out mid-flash; we moved to OTA updates and resumable block flashing. - Bugs that only exist on battery. USB prevents light sleep, so the first sleep on battery froze the watch: a watchdog left armed, then an interrupt storm. Both were tracked down from serial logs and fixed, with me holding the watch. - Judgement calls on the wrist: wrist-raise thresholds still need tuning. https://github.com/storagebits/kronograf submitted by /u/cyberdinn [link] [comments] |
#Claude Code#Claude Opus 5.5#Kronograf#LilyGO T-Watch 2020 V1#ESP32#Anthropic