MCPcopy Index your code
hub / github.com/ZSWatch/ZSWatch

github.com/ZSWatch/ZSWatch @v0.8.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.8.1 ↗ · + Follow
2,663 symbols 5,232 edges 1,001 files 112 documented · 4%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

zswatch.dev

ZSWatch_logo_with_text

License discord Docs

ZSWatch v4 CNC:ed Stainless Steel (left), Clear Resin 3D print (right)

WatchDK - The ZSWatch development kit ($99) has the same nRF5340 chip and sensors as the final watch, in a larger form factor for development and debugging. Battery optional, runs off USB-C.

Order from Elecrow

Quick Start

About

Smartwatch built from scratch, both hardware and software. Built on the Zephyr™ Project RTOS, hence the name ZSWatch (Zephyr Smartwatch).

ZSWatch Development Kit promotional image

ZSWatch Development Kit (WatchDK)

https://github.com/ZSWatch/ZSWatch/assets/4318648/ec1a94fd-a682-4559-9e68-f3e5bfcbe682

Documentation

Full documentation is available at zswatch.dev:

Features

Hardware

PCB

All hardware is designed in KiCad. Hardware repos:

Hardware overview for v5 (v6 coming soon)

HR Extension Board (WIP)

The Extension PCB is a small add-on board (approximately 16.8 mm diameter) that plugs into the WatchDK headers. It is still in development and the design, BOM, and firmware support may change.

More background and progress updates: - https://zswatch.dev/blog/dk-and-hr-integration - https://zswatch.dev/blog/progress-hw-xip-usb-power - https://zswatch.dev/blog/progress-hr-fota

Key BOM highlights: - Analog Devices / Maxim MAX86141 optical AFE + ams OSRAM SFH 7016 (RGB/IR LED module) + Vishay VEMD8082 photodiodes - Analog Devices / Maxim MAX32664 biometric sensor hub - Renesas / Dialog DA7212 audio codec (speaker support) - Amphenol 101P014FB110 board-to-board connectors

Software

  • Bluetooth LE communications via the ZSWatch Companion App (iOS/Android) or GadgetBridge (Android)
  • Multiple watchfaces (dynamically switchable), showing time, date, battery, weather, steps, notifications, environmental data, and more
  • Pop-up notifications
  • Application picker with extensible app framework
  • Settings, Music control, Compass, and many more
  • Step counting, gestures, and much more

The watch also supports ESP32 watchfaces from Felix Biego. See this fork for details.

Smartphone Communication

iOS (recommended): Use the official ZSWatch Companion App on the App Store. ZSWatch also supports native Apple Notification Center Service and Apple Media Service.

Android (experimental companion app): The ZSWatch Companion App currently requires invite access. Request access via Discord or email mail@zswatch.dev. For a stable experience, use GadgetBridge.

See phone setup on zswatch.dev for details.

Enclosure/Casing

3D-printed casing with 3D-printed buttons, with an option for CNC:ed metal casing.

Getting a WatchDK or Building Your Own

For development: The WatchDK ($99) is the recommended starting point. It has the same nRF5340 SoC, sensors, and display as the final watch, with breakout headers, USB-C with SWD/UART, power measurement headers, and a debug header. Everything except battery is included. Battery is optional.

Order WatchDK from Elecrow: www.elecrow.com/zswatch-development-kit.html

For DIY builders: Head over to the hardware repos for the for ordering information. The final miniature watch hardware is still being developed.

Demos

Developing

See the Toolchain & Build Guide for environment setup, compiling, and flashing.

To learn how to write apps for ZSWatch, see Writing Apps.

Licence GPL-3.0

The main difference from MIT is that if anyone wants to build something more with this, they need to also open source their changes back to the project, which I think is fair, so everyone can benefit from those improvements. If you think this is wrong, feel free to contact me and I'm open to change the licence.

Thanks

Funding

This project is partly funded through NGI0 Commons Fund, a fund established by NLnet with financial support from the European Commission's Next Generation Internet program. Learn more at the NLnet project page.

NLnet foundation logo NGI Zero Logo

Support

PCBWay Logo SEGGER Logo

PCBWay for sponsoring the manufacturing and assembly of prototype PCBs. PCBWay is the recommended manufacturer for PCBs and assembly of ZSWatch.

Miscellaneous

Core symbols most depended-on inside this repo

memcpy
called by 54
app/lvgl_editor/preview-bin/lved-runtime.js
getPlaceValue
called by 50
app/src/ui/watchfaces/80_2_dial/zsw_watchface_80_2_dial_ui.c
lv_obj_set_name
called by 40
app/lvgl_editor/lvgl_compat.h
getPlaceValue
called by 36
app/src/ui/watchfaces/73_2_dial/zsw_watchface_73_2_dial_ui.c
getPlaceValue
called by 34
app/src/ui/watchfaces/pixel/zsw_watchface_goog_ui.c
write
called by 30
app/lvgl_editor/preview-bin/lved-runtime.js
read
called by 28
app/lvgl_editor/preview-bin/lved-runtime.js
getPlaceValue
called by 28
app/src/ui/watchfaces/79_2_dial/zsw_watchface_79_2_dial_ui.c

Shape

Function 2,086
Class 457
Method 73
Enum 47

Languages

C66%
TypeScript24%
Python6%
C++4%

Modules by API surface

app/lvgl_editor/preview-bin/lved-runtime.js600 symbols
production_test/src/production_test_runner.c49 symbols
app/src/applications/calculator/smf_calculator_thread.c48 symbols
app/src/ble/ble_comm.c40 symbols
app/src/filesystem/zsw_custom_fs.c39 symbols
app/src/ble/chronos/ble_chronos.c39 symbols
app/src/ble/ble_ancs.c39 symbols
app/src/applications/watchface/watchface_app.c32 symbols
app/src/ble/ble_ams.c31 symbols
app/drivers/display/gc9a01/buydisplay_gc9a01.c30 symbols
app/src/ble/gadgetbridge/ble_gadgetbridge.c28 symbols
app/src/applications/settings/settings_app.c27 symbols

For agents

$ claude mcp add ZSWatch \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact