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:
- Open firmware — I can flash custom OS images (Zephyr, InfiniTime, WaspOS, PebbleOS).
- App SDK — I can write and side-load my own apps (JavaScript on Bangle.js, C/C++ on Zephyr, MicroPython on ESP32).
- 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.
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.
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.
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.
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.
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.
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.
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:
- 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.
- 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