cd /news/artificial-intelligence/hacking-with-claude-on-a-27-smart-wa… · home topics artificial-intelligence article
[ARTICLE · art-104609] src=mikekasberg.com ↗ pub= topic=artificial-intelligence verified=true sentiment=↑ positive

Hacking with Claude on a $27 Smart Watch

A software engineer used AI coding assistants, including Claude and open-weights models like Kimi K3 and DeepSeek v4 Pro, to build a custom Casio-style watch face for the $27 PineTime smart watch, publishing the code on GitHub. The project, which involved cloning the InfiniSim repo and iterating with sub-agents, produced a working prototype despite hardware limitations such as a 10-minute Bluetooth transfer time for the 240x240 background image.

read5 min views4 publishedAug 20, 2026
Hacking with Claude on a $27 Smart Watch
Image: source

Husband. Father. Software engineer. Ubuntu Linux user.

The Pine Time is a $27 smart watch that runs open source firmware. I’ve had one sitting in the back of a drawer for a year or two. When I saw @steveruizok’s Tweet about hacking on ESP32 devices with Claude, I found some inspiration to pull my PineTime out of the drawer and see what Claude might be capable of!

if you know what a "coding agent" is then go buy this or something very similar (not sponsored but they're on amazon, pi hut, ali, all over)

— Steve Ruiz (@steveruizok)[pic.twitter.com/iPvHxBiltf][July 25, 2026]

I knew I wanted to start by building a watch face because the default watch faces that come with the watch are pretty plain and boring. I’d also recently seen @levelsio’s Tweet about building a custom Casio watch face for is Apple Watch.

⌚ Made a CASIO watch face for my Apple Watch

— @levelsio (@levelsio) You can import the 2nd pic into Widgy to install it to your Apple Watch[https://t.co/KGWBTBBzRB][pic.twitter.com/BBf1iZo9kV][April 15, 2023]

I wondered if I could build something similar for the PineTime (with a little help from Claude). As it turns out, the PineTime is a great watch for hacking with Claude!

Although I’ve been saying “Claude”, I actually did most of the work in OpenCode with some of my favorite open weights models. Kimi K3 & K2.6, and DeepSeek v4 Pro & Flash. I started by cloning the

[InfiniSim](https://github.com/InfiniTimeOrg/InfiniSim) repo (which has a git
submodule for [InfiniTime](https://github.com/InfiniTimeOrg/InfiniTime), and

asked Claude to get a build working. It was quick and easy on Ubuntu! Then I got pretty ambitious: I gave Claude the photo from @levelsio’s Tweet, and asked Claude to replicate the watch face, copying the code from an existing InfiniTime watch face as a starting point. And I asked it to orchestrate and use sub-agents as needed for well-scoped development tasks.

It built a pretty good rough approximation, but it was very rough. It seemed to just guess at text sizing and positioning, which led to things being sort of in the right spot but overlapping each other and unreadable. Still, it was a good starting point that we could iterate on. I think Fable would have probably been able to finish the work and get it pixel-perfect without supervision, if I gave it a feedback loop to screenshot the simulator. But since I was doing this with open weight models on OpenCode, on a limited budget, I opted to save some tokens by getting a little more involved myself, and gave it specific feedback with isolated tasks and concrete next steps. I fixed one thing at a time – getting each text element right before moving on to the next one.

I noticed we were spending a lot of effort trying to build some static parts of the screen, and realized that might not be necessary. I wondered if I could just make a fullscreen background image with all the static parts, so we only had to program the dynamic parts of the screen. We tried this, and it worked on the simulator! After installing the firmware on a real watch, I found that we were pushing the limits of what this little watch was capable of. It took about 10 minutes to transfer the 240x240 image over bluetooth to install it on the device, and it takes 1-2 seconds to refresh the whole screen when you swipe. The watch can’t hold this whole image in memory at once; it has to stream it from the file system. But that’s totally fine for a watch face I built in a couple hours! I might come back at some point to build more of the background in code, so it can update instantly. But for today, I’m happy with my working prototype!

I pushed all my code up to GitHub, and you’re welcome to use it directly, or use it as a starting point for your own project if you want. I also had Claude summarize the things we learned along the way into an AGENTS.md. That should help you get started quickly, and avoid some of the hurdles that I ran into, if you want to try this with your own watch!

I loved working on this project with an AI! The low-stakes environment (not production code at my day job) makes me feel like I can try whatever I want and iterate quickly, and it’s really rewarding to work on firmware for a physical device that I can hold and use when I’m done building it! I couple years ago when I bought this PineTime, I ran out of time and motivation to learn how to work in the InfiniTime codebase, and the watch sat in a drawer for a couple years. But today, I was able to build a new watch face in a few hours, and had fun doing it! The future is bright!

👋 Hi, I'm Mike! I'm a husband, I'm a father, and I'm a staff software engineer at Strava. I use Ubuntu Linux daily at work and at home. And I enjoy writing about Linux, open source, programming, 3D printing, tech, and other random topics. I'd love to have you follow me on X or LinkedIn to show your support and see when I write new content!

I run this blog in my spare time. There's no need to pay to access any of the content on this site, but if you find my content useful and would like to show your support, buying me a coffee is a small gesture to let me know what you like and encourage me to write more great content!

── more in #artificial-intelligence 4 stories · sorted by recency
salesforce.com · · #artificial-intelligence
Slack Code
── more on @pinetime 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/hacking-with-claude-…] indexed:0 read:5min 2026-08-20 ·