Skip to content

K-Watch is an open-source smartwatch platform (hardware + firmware + apps) built on nRF52840 and Zephyr RTOS, featuring a Memory-in-Pixel display, sensors, and OTA-friendly architecture.

License

Notifications You must be signed in to change notification settings

SonDinh23/K-Watch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

✋ KWatch – Open Wearable Dev Kit

KWatch logo
Hackable smartwatch platform: Nordic silicon, Zephyr firmware, open hardware.

License: GPL 3.0   LinkedIn: dinhsonn

KWatch is a full-stack, open hardware kit to build a wearable that feels production-ready but stays mod-friendly. One PCB set, one Zephyr firmware, one place to script apps and demos quickly.

Table of Contents

What this repo delivers

  • Fabrication-ready hardware: KiCad sources and manufacturing files for the watch mainboard, aligned with the photo set and BOM.
  • Zephyr firmware baseline: BLE, sensors, display, haptics, and power tuned for wearables on nRF52840.
  • App hooks: An app-manager direction so you can prototype UX without forking the platform.
  • Expectations you can see: Real-build photos and PCB views to match your assembly to ours.
  • A mod-friendly platform: Keep experiments fast—swap sensors, iterate watchfaces, ship demos without redoing the core.

Platform at a glance

Layer Highlights
🛠️ Hardware nRF52840 mainboard, PMIC, external flash, baro + IMU + magnetometer + ALS, RGB LED, MIP display.
🧠 Firmware Zephyr RTOS, BLE services, gesture wake, low-power policies, haptics, display, app-manager direction.
📱 App Roadmap: companion workflows for sync, OTA, and pushing watch apps.

Hardware highlights

Firmware snapshot

  • Zephyr-based project with custom board definition in firmware/boards (K_watch).
  • Application lives in firmware/app; prj.conf captures feature toggles and power/peripheral policies.
  • Focus: BLE connectivity, low-power idle, gesture-driven wake, haptics, display pipeline, and an app-manager path for user apps.

Status & roadmap

  • Hardware: Rev v0.1 validated (see galleries). Next: refine power/PMIC tuning and add strap/closure options.
  • Firmware: Core bring-up on Zephyr complete; prioritizing display pipeline polish, haptics tuning, and app-manager ABI.
  • Companion app: Roadmap item—planned for sync, OTA, and app delivery; interim control via BLE scripts.

Repository map

  • firmware/app: Main application sources and prj.conf feature toggles.
  • firmware/boards: Board definition (K_watch) for Zephyr.
  • hardware: Schematics, layout, fabrication outputs.
  • production: Manufacturing assets and photos.
  • resources: Logos and build photos used in this README.

Quick gallery — real device

Assembly detail Assembly detail Build angle Build angle Component close-up Component close-up
Workbench Workbench shot On-wrist view On-wrist view Packaging Packaging / kit

If images do not render, open them directly from resources/image.

PCB views

Top PCB Top PCB — silkscreen & component placement Bottom PCB Bottom PCB — power plane & connectors

Fast start (Zephyr)

  1. Install Zephyr prerequisites (Python, west, CMake, ARM GCC toolchain or Zephyr SDK). See the Zephyr Getting Started guide for your OS.
  2. From repo root, initialize workspace once:
    • west init -l firmware
    • west update
  3. Export CMake package: west zephyr-export.
  4. Build: west build -b K_watch firmware/app
  5. Flash via your probe (J-Link/CDC): west flash

If you use a non-default toolchain, set ZEPHYR_TOOLCHAIN_VARIANT and GNUARMEMB_TOOLCHAIN_PATH before building.

Build/test checklist

  • ✅ Configure workspace with west init -l firmware && west update.
  • ✅ Build: west build -b K_watch firmware/app.
  • ✅ Flash: west flash (probe connected).
  • ✅ Smoke test: BLE advertises, display backlight cycles, haptic tick works, IMU responds over shell.
  • ⚠️ If power draw is high, review prj.conf low-power options and disable unused peripherals.

Writing apps

  • User apps are planned as Zephyr subsys-style modules with a small ABI. For now, keep code in firmware/app/src and guard features with Kconfig in prj.conf.
  • Prefer event-driven patterns and avoid long busy loops to keep power low and wake latency tight.

Licence

This project is licensed under the GNU GPLv3. Compared to permissive licences like MIT, GPLv3 requires that if you modify this code and distribute your version (including in commercial products), you must also release your changes under the same GPLv3 licence and provide the corresponding source code.

This way, everyone can benefit from improvements built on top of this project. If this licence causes issues for your intended use, feel free to contact me – I’m open to discussing alternatives.

Thanks

Community contributions are welcome: hardware bring-up notes, power traces, UI sketches, test logs, and app experiments all help the project move faster.

About

K-Watch is an open-source smartwatch platform (hardware + firmware + apps) built on nRF52840 and Zephyr RTOS, featuring a Memory-in-Pixel display, sensors, and OTA-friendly architecture.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages