# zswatch/zswatch

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/zswatch-zswatch).**

3,128 stars · 280 forks · C · gpl-3.0

## Links

- GitHub: https://github.com/ZSWatch/ZSWatch
- Homepage: https://zswatch.dev
- awesome-repositories: https://awesome-repositories.com/repository/zswatch-zswatch.md

## Topics

`angle-of-arrival` `ble` `bluetooth` `display` `gc9a01a` `lvgl` `nordic-semiconductor` `nrf-connect` `nrf-connect-sdk` `nrf53` `nrf5340` `sensors` `smart-watch` `smartwatch` `zephyr` `zephyr-rtos` `zswatch`

## Description

ZSWatch is a real-time operating system for wearable devices featuring a touch display and Bluetooth Low Energy connectivity. It provides a comprehensive software suite that includes a Bluetooth LE communication stack, an embedded UI framework for round displays, and a complete firmware toolchain for compiling, flashing, and simulating wearable hardware.

The project is distinguished by its specialized wearable capabilities, such as a graphical framework for designing reactive screens and watchfaces via a visual editor. It implements a publish-subscribe messaging system to decouple hardware sensors from application logic and supports execute-in-place memory management to run program instructions directly from external flash storage.

The system covers broad capability areas including mobile integration for synchronizing notifications and media controls, biometric tracking for heart rate and physical activity, and audio processing for PCM playback and voice recording. It also includes system management tools for power distribution, remote shell access, and web-based firmware updates.

Development is supported by a toolchain that allows for target firmware compilation and the simulation of device logic and UI layouts in a native window.

## Tags

### Hardware & IoT

- [Smartwatch Development](https://awesome-repositories.com/f/hardware-iot/smartwatch-development.md) — Provides a comprehensive framework for building a custom smartwatch by integrating hardware with an RTOS and touch display.
- [BLE Device Management](https://awesome-repositories.com/f/hardware-iot/ble-device-management.md) — Manages the operation of the wearable device using Bluetooth Low Energy profiles for data synchronization.
- [Bluetooth Connectivity](https://awesome-repositories.com/f/hardware-iot/bluetooth-connectivity.md) — Establishes wireless pairing and data exchange using Bluetooth Low Energy connectivity for communication with other hardware. ([source](https://zswatch.dev/docs/intro))
- [Embedded Firmware Development](https://awesome-repositories.com/f/hardware-iot/connectivity-iot/hardware-communication/serial-device-communication/firmware-flashing/embedded-firmware-development.md) — Provides a comprehensive toolset for designing, building, and flashing binaries for wearable microcontrollers.
- [UI and Logic Simulation](https://awesome-repositories.com/f/hardware-iot/embedded-systems-debugging/ui-and-logic-simulation.md) — Verifies application behavior and UI layouts in a native window without requiring physical hardware.
- [Firmware Management](https://awesome-repositories.com/f/hardware-iot/firmware-management.md) — Provides tools for configuring and managing the lifecycle of embedded firmware via wireless, USB, and web interfaces.
- [Sensor Polling](https://awesome-repositories.com/f/hardware-iot/integration-performance/hardware-interfacing-integration/hardware-integration/device-sensors/sensor-polling.md) — Collects data from IMU, magnetometer, pressure, and light sensors via polling or interrupts. ([source](https://zswatch.dev/docs/development/architecture))
- [Wearable Data Synchronization](https://awesome-repositories.com/f/hardware-iot/wearable-data-synchronization.md) — Exchanges notifications, media controls, and health metrics between the wearable and mobile devices using BLE profiles.
- [Biometric Monitoring](https://awesome-repositories.com/f/hardware-iot/biometric-monitoring.md) — Collects and displays live heart rate data from a health sensor for real-time tracking. ([source](https://zswatch.dev/blog/dk-and-hr-integration))
- [Firmware Flashing](https://awesome-repositories.com/f/hardware-iot/connectivity-iot/hardware-communication/serial-device-communication/firmware-flashing.md) — Enables installation of binary firmware images via the WebSerial API or BLE without requiring a hardware debugger.
- [Firmware Recovery Tools](https://awesome-repositories.com/f/hardware-iot/firmware-management/firmware-recovery-tools.md) — Restores the device to a working state using a bootloader when the primary software fails. ([source](https://zswatch.dev/docs/category/firmware))
- [Firmware OTA Update Systems](https://awesome-repositories.com/f/hardware-iot/firmware-management/remote-firmware-updaters/firmware-ota-update-systems.md) — Implements a system for wirelessly deploying firmware binaries and updates to the wearable device. ([source](https://zswatch.dev/docs/category/firmware))
- [Web-Based Firmware Updaters](https://awesome-repositories.com/f/hardware-iot/firmware-management/remote-firmware-updaters/web-based-firmware-updaters.md) — Installs new firmware via the WebSerial API to recover broken software or perform wired updates through a browser. ([source](https://zswatch.dev/blog/progress-hw-xip-usb-power))
- [Hardware Power Management](https://awesome-repositories.com/f/hardware-iot/hardware-power-management.md) — Manages system power and battery distribution through a dedicated power management integrated circuit. ([source](https://cdn.jsdelivr.net/gh/zswatch/zswatch@main/README.md))
- [Activity and Gesture Tracking](https://awesome-repositories.com/f/hardware-iot/inertial-measurement-unit-interfaces/inertial-environmental-tracking/activity-and-gesture-tracking.md) — Counts steps and detects wrist gestures using integrated inertial measurement units. ([source](https://cdn.jsdelivr.net/gh/zswatch/zswatch@main/README.md))
- [Sensor Integrations](https://awesome-repositories.com/f/hardware-iot/integration-performance/hardware-interfacing-integration/hardware-integration/device-sensors/external-integrations/sensor-integrations.md) — Integrates physical sensors including IMU and heart rate monitors to provide health and activity tracking data.
- [Real-time Sensor Streaming](https://awesome-repositories.com/f/hardware-iot/integration-performance/hardware-interfacing-integration/hardware-integration/device-sensors/real-time-sensor-streaming.md) — Implements continuous streaming of heart rate measurements from a sensor to the wearable via Bluetooth. ([source](https://zswatch.dev/blog/progress-hr-fota))

### Part of an Awesome List

- [Wearable Development](https://awesome-repositories.com/f/awesome-lists/devtools/wearable-development.md) — Provides a library of components and frameworks for building applications on a wearable device platform.

### Development Tools & Productivity

- [Embedded Application Frameworks](https://awesome-repositories.com/f/development-tools-productivity/application-development-frameworks/embedded-application-frameworks.md) — Provides a dedicated graphical framework for building modular applications designed for round touch displays on portable hardware. ([source](https://zswatch.dev/docs/intro))
- [Hardware-Specific Firmware Images](https://awesome-repositories.com/f/development-tools-productivity/build-tooling/build-orchestration-logic/build-orchestration-configuration/build-configuration-systems/build-configurations/firmware-build-variants/hardware-specific-firmware-images.md) — Compiles specialized binary images tailored for specific wearable hardware boards and native simulators. ([source](https://zswatch.dev/docs/development/compiling))
- [Wearable Interface Design](https://awesome-repositories.com/f/development-tools-productivity/platforms-runtimes-language-services/development-platforms/mobile-wearable-ecosystems/wearable-interface-design.md) — Provides a dedicated graphical framework and visual editor for creating reactive screens and watchfaces for round touch displays.
- [Interval-Based Task Execution](https://awesome-repositories.com/f/development-tools-productivity/interval-based-task-execution.md) — Triggers system logic at fixed intervals using shared timer channels across multiple time scales. ([source](https://zswatch.dev/docs/development/writing_apps))
- [System Settings Managers](https://awesome-repositories.com/f/development-tools-productivity/system-settings-managers.md) — Provides an extensible framework for configuring device options and launching built-in system tools. ([source](https://cdn.jsdelivr.net/gh/zswatch/zswatch@main/README.md))

### Graphics & Multimedia

- [Watchface Rendering](https://awesome-repositories.com/f/graphics-multimedia/watchface-rendering.md) — Renders real-time data including time, date, battery status, and environmental metrics on the watch display. ([source](https://cdn.jsdelivr.net/gh/zswatch/zswatch@main/README.md))

### Mobile Development

- [Companion App Integrations](https://awesome-repositories.com/f/mobile-development/companion-app-integrations.md) — Coordinates settings and data exchange between the wearable device and a mobile platform via a dedicated companion app. ([source](https://zswatch.dev/docs/category/getting-started))
- [Wearable-to-Mobile Sync](https://awesome-repositories.com/f/mobile-development/mobile-infrastructure-security/mobile-synchronization/wearable-to-mobile-sync.md) — Synchronizes notifications, media controls, and health metrics with mobile devices using platform-specific communication profiles. ([source](https://zswatch.dev/docs/development/architecture))
- [Notification Relays](https://awesome-repositories.com/f/mobile-development/mobile-notification-managers/notification-relays.md) — Relays smartphone alerts to the watch display using platform-specific notification services. ([source](https://zswatch.dev/docs/getting-started/companion_app))

### Networking & Communication

- [BLE Communication Stacks](https://awesome-repositories.com/f/networking-communication/ble-communication-stacks.md) — Implements a messaging system that handles ANCS notifications and media controls over the BLE protocol.
- [Device Notification Bridges](https://awesome-repositories.com/f/networking-communication/device-notification-bridges.md) — Forwards system alerts and media controls from iOS devices using the Apple Notification Center Service. ([source](https://zswatch.dev/docs/getting-started/phone_setup))
- [In-Memory Publish-Subscribe Hubs](https://awesome-repositories.com/f/networking-communication/communication-platforms-services/messaging-notification-systems/messaging-services/message-broker-infrastructure/publish-subscribe-messaging/in-memory-publish-subscribe-hubs.md) — Implements an in-memory, non-blocking pub-sub hub to decouple hardware sensors from application logic. ([source](https://zswatch.dev/docs/development/architecture))
- [Event Listeners](https://awesome-repositories.com/f/networking-communication/event-listeners.md) — Provides mechanisms for intercepting and responding to system-level events and sensor broadcasts via an asynchronous bus. ([source](https://zswatch.dev/docs/development/writing_apps))
- [Typed Topic Pub-Sub](https://awesome-repositories.com/f/networking-communication/publish-subscribe-systems/typed-topic-pub-sub.md) — Implements a publish-subscribe messaging system with typed data channels to decouple hardware sensors from application logic.

### Operating Systems & Systems Programming

- [Cross-Device Notification Sync](https://awesome-repositories.com/f/operating-systems-systems-programming/cross-device-notification-sync.md) — Synchronizes pop-up alerts and media controls from mobile devices over Bluetooth Low Energy. ([source](https://cdn.jsdelivr.net/gh/zswatch/zswatch@main/README.md))
- [Real-Time Operating Systems](https://awesome-repositories.com/f/operating-systems-systems-programming/real-time-operating-systems.md) — Provides a real-time operating system with deterministic scheduling for resource-constrained wearable hardware.
- [Battery Power Optimization](https://awesome-repositories.com/f/operating-systems-systems-programming/power-management/battery-power-optimization.md) — Optimizes battery life by toggling hardware power and display modes based on user activity and system states.
- [Display Power Managers](https://awesome-repositories.com/f/operating-systems-systems-programming/system-administration-maintenance/system-power-utilities/display-power-managers.md) — Tracks user activity to transition the display and application lifecycle between active and power-saving modes. ([source](https://zswatch.dev/docs/development/architecture))
- [Peripheral Power Controllers](https://awesome-repositories.com/f/operating-systems-systems-programming/system-administration-maintenance/system-power-utilities/hardware-power-controllers/peripheral-power-controllers.md) — Toggles external flash access based on system state to minimize idle power consumption. ([source](https://zswatch.dev/blog/progress-hw-xip-usb-power))

### Testing & Quality Assurance

- [Device Logic Simulators](https://awesome-repositories.com/f/testing-quality-assurance/device-logic-simulators.md) — Allows running application logic and UI layouts in a native window to test event handling without physical hardware. ([source](https://zswatch.dev/docs/development/linux_development))
- [Hardware Functional Testing](https://awesome-repositories.com/f/testing-quality-assurance/unit-testing-frameworks/on-hardware-testing/hardware-functional-testing.md) — Includes dedicated production test firmware to verify all hardware components during the assembly process. ([source](https://zswatch.dev/blog/progress-hw-xip-usb-power))

### User Interface & Experience

- [Embedded Visualization Frameworks](https://awesome-repositories.com/f/user-interface-experience/embedded-visualization-frameworks.md) — Ships a lightweight graphical toolkit designed for rendering reactive interfaces on specialized round wearable hardware.
- [UI Design Tools](https://awesome-repositories.com/f/user-interface-experience/ui-design-tools.md) — Provides a visual editor to create reactive screens and generate rendering code for the device. ([source](https://zswatch.dev/docs/development/writing_apps))
- [Application Launch Interfaces](https://awesome-repositories.com/f/user-interface-experience/application-launch-interfaces.md) — Implements a smooth user interface for browsing and launching installed applications organized into folders. ([source](https://zswatch.dev/blog/dk-and-hr-integration))
- [Physical Button Menu Navigators](https://awesome-repositories.com/f/user-interface-experience/navigation-input-controllers/multi-device-menu-navigators/physical-button-menu-navigators.md) — Enables device control through a combination of physical buttons and touchscreen gestures. ([source](https://zswatch.dev/docs/getting-started/watchdk-quickstart))

### Data & Databases

- [In-Place Execution from Flash](https://awesome-repositories.com/f/data-databases/data-access-querying/memory-mapped-file-access/flash-memory-access/in-place-execution-from-flash.md) — Supports running program instructions directly from external flash storage to increase firmware capacity and reduce RAM usage.

### DevOps & Infrastructure

- [Task Schedulers](https://awesome-repositories.com/f/devops-infrastructure/automation-orchestration/task-execution-frameworks/task-job-management/task-schedulers/os-scheduling-simulations/task-schedulers.md) — Manages the execution order and timing of periodic logic and sensor polling using RTOS task scheduling.

### Software Engineering & Architecture

- [Interface Code Generators](https://awesome-repositories.com/f/software-engineering-architecture/compile-time-code-generation/interface-code-generators.md) — Generates device-specific rendering code from a visual editor to create interfaces for round touch displays.

### System Administration & Monitoring

- [Debug Logging Management](https://awesome-repositories.com/f/system-administration-monitoring/monitoring-and-observability/observability-platforms/log-management-systems/debug-logging-management.md) — Allows configuration of system log output transports via UART, RTT, or USB for hardware debugging. ([source](https://zswatch.dev/docs/development/compiling))
