Programmable Smartwatches

Alternatives to the Apple Watch

Survey of hackable, open-source, and programmable smartwatches I could switch to from my Apple Watch — with a focus on control, customisation, voice interaction, and Philips Hue / Home Assistant integration. Covers Bangle.js 2, PineTime, LilyGO T-Watch S3, ZSWatch, Watchy, the new Pebble lineup, AsteroidOS, and niche options. Ends with my shortlist and open questions.

Why I'm looking

The Apple Watch is polished but closed. I want more control — custom apps, scriptable behaviour, direct local control of my Philips Hue bridge, ideally voice input, and freedom from the iOS/HealthKit lock-in. Battery life measured in days (not hours) would also be nice.

The trade-off I'm accepting: a rougher UI, weaker native notifications, fewer advanced health sensors (no ECG, no fall detection, no Apple-grade SpO₂), and more tinkering.

What "programmable" actually means here

Three different things are bundled under "programmable" in the wearable space:

  1. Open firmware — I can flash custom OS images (Zephyr, InfiniTime, WaspOS, PebbleOS).
  2. App SDK — I can write and side-load my own apps (JavaScript on Bangle.js, C/C++ on Zephyr, MicroPython on ESP32).
  3. Open hardware — schematics / KiCad files published so the device is repairable, modifiable, or buildable from scratch.

The watches below tick one, two, or all three of these.

The main candidates

Bangle.js 2

Fully open-source, hackable smartwatch running Espruino — so apps are written in JavaScript, flashed over Web Bluetooth from a browser. 600+ community apps, sunlight-readable always-on display, heart rate, GPS, compass, accelerometer, pedometer, touch screen. Battery life around four weeks.

Strong points: no vendor lock-in, genuinely usable out-of-the-box, easiest developer experience of the bunch for quick app hacking. Weak points: no microphone, so no on-device voice input; UI is utilitarian; iOS companion is functional but not slick.

Price: roughly £80–100 / $100–130. Available direct from the Espruino shop, Adafruit, Pimoroni.


Espruino logo

PineTime (and PineTime Pro)

Cheap, fully open-source watch from Pine64. Runs community firmwares — InfiniTime (most polished) or WaspOS (MicroPython). 1.3" touchscreen, heart rate, accelerometer, Bluetooth. Works with Android, Linux, and iOS via Gadgetbridge or similar.

The original is about $27–35 for the sealed production version. The Pro variant adds AMOLED, GPS, better sensors — still settling in release-wise.

Strong points: absurdly cheap entry into hacking, active community. Weak points: no microphone, community-driven so polish varies, feature set is modest.


Pine64 logo

LilyGO T-Watch S3

The most interesting option for my use case. ESP32-S3 based, which means Wi-Fi + Bluetooth + a real microphone and speaker built-in. Programmable in Arduino, ESP-IDF, or MicroPython. ~$30–60.

Because it has Wi-Fi and a mic, this is the one watch where I could realistically:

  • run an ESPHome voice assistant that talks to my Home Assistant
  • hit the Philips Hue bridge directly over HTTP on the local network
  • do wake-word detection on-device, or stream audio to a local Whisper/Piper pipeline

Weak points: it's a dev board in a wristable shell, not a finished consumer product. Battery ~400 mAh, so not a multi-week device. UI is whatever you build.


LilyGO logo

ZSWatch (Zephyr Smartwatch)

Completely open from the PCB up — KiCad files published, firmware is a Zephyr RTOS app. nRF5340 SoC, touchscreen, IMU, heart rate, I2S microphone for voice/audio. Dev kit around $99; the finished watch is a DIY/build-your-own project.

This is the most "hacker ethos" option. If I want to truly own every layer, this is it. Realistically it's a hobby project, not a daily driver.


ZSWatch logo

Watchy

ESP32 + e-paper. Open hardware, open software, sunlight readable, extremely low power. Not as feature-rich (no mic, no heart rate), but excellent as a minimalist, always-on watchface-as-code device. Good if I want a second "dumb but mine" watch rather than a full Apple Watch replacement.


Watchy logo

The new Pebble lineup (rePebble / Core 2 Duo / Time 2)

PebbleOS is now open-source, and the revived project is shipping new hardware in 2026 — Core 2 Duo, Time 2, and so on. E-paper or memory-LCD displays, multi-day battery, thousands of watchfaces and apps, and the new models add a mic for voice notes and assistant-style features. Price ~$199–225.

This is probably the most "daily-driver-shaped" open-ish option. Not as deeply hackable as a T-Watch or ZSWatch, but the SDK is real and the community is active.


rePebble logo

OS replacement instead of new hardware: AsteroidOS

Not a watch to buy — an open-source Linux-based OS I can flash onto compatible legacy Wear OS devices (TicWatch Pro, Fossil Gen 4/5/6, Huawei Watch, LG, OPPO Watch, Polar M600). Version 2.0 expanded device support and stability.

Good route if I want to pick up a second-hand Wear OS watch cheaply and jailbreak it into something more open. Not relevant if I want a current-generation sensor stack.


AsteroidOS logo

Comparison

Watch Language(s) Mic Wi-Fi Battery Openness Daily-driver-able Price (USD)
Bangle.js 2 JavaScript No No ~4 weeks Full OSS Yes $100–130
PineTime C++ (InfiniTime), uPy No No ~1–2 weeks Full OSS Mostly $27–35
LilyGO T-Watch S3 Arduino, ESP-IDF, uPy Yes Yes ~1–2 days OSS-ish Project $30–60
ZSWatch C (Zephyr) Yes Opt. ~days Full OSS/HW No (DIY) ~$99 kit
Watchy Arduino / C++ No Yes ~1 week+ Full OSS Minimalist ~$80
Pebble Core 2 Duo Pebble SDK (C/JS) Yes No ~1 week OS open Yes $199–225
AsteroidOS (on HW) QML, C++ Varies Varies ~1–2 days OSS layer Mostly cost of used HW

Use-case fit: voice + Philips Hue

The two things I actually want beyond "programmable" are (a) talk to the watch and (b) control my Hue bridge directly.

For voice, I need a built-in microphone, which narrows the list to LilyGO T-Watch S3, ZSWatch, and the new Pebble models. T-Watch is the easiest because ESPHome already has a full voice-satellite pipeline that drops straight into Home Assistant.

For Hue control, anything with Wi-Fi (T-Watch, Watchy) can hit the Hue bridge's HTTP API directly on the LAN — no cloud round-trip, no Apple middleman. BLE-only watches (Bangle.js, PineTime, Pebble) can still control Hue, but through a phone or Home Assistant companion rather than natively from the wrist.

Cleanest architecture: any open watch + Home Assistant as the hub. Hue integrates natively in HA (even Zigbee direct, skipping the bridge). Voice commands become HA intents. The watch becomes a thin, scriptable remote.

My shortlist

Two plausible paths depending on how much polish I'm willing to give up:

  1. Bangle.js 2 as daily driver + Home Assistant for smart home. Good battery, mature app ecosystem, JS is easy. Voice would go through my phone or HA, not the wrist.
  2. LilyGO T-Watch S3 as a second/project watch. Keep the Apple Watch for health/notifications, use the T-Watch to build the voice + Hue + ESPHome rig I actually want to experiment with. Low risk, ~$50, and it teaches me whether I'd tolerate the daily-life trade-offs before committing.

Leaning towards option 2 first — buy a T-Watch S3, wire it into Home Assistant, build the voice-to-Hue pipeline. If the experience is good enough, consider Bangle.js as an actual Apple Watch replacement afterwards. Pebble Core 2 Duo is the dark horse if I decide the daily-driver polish matters more than deep hackability.

Open questions to resolve before buying

  • How well does Gadgetbridge (or equivalent) relay iMessage / iOS notifications to Bangle.js and PineTime in 2026? Last time I checked iOS was still the weak link.
  • Can the T-Watch S3 do a reasonable wake-word on-device, or does it need to stream audio to HA for Whisper?
  • Do I care about ECG / SpO₂ / fall detection enough that dropping the Apple Watch entirely is a bad idea, vs. wearing both?
  • Pebble Core 2 Duo real-world battery with mic and always-on watchface — is it still a week?
  • Any decent open-source option with actual AMOLED that isn't a dev board? (PineTime Pro is the candidate but release status keeps moving.)

⏱ 1m 12s | ~15k tokens

links

social