Noureddine RAMDI / ZSWatch: open-source smartwatch firmware and hardware built on Zephyr RTOS

Created Tue, 05 May 2026 13:37:39 +0000 Modified Sat, 23 May 2026 20:41:27 +0000

ZSWatch/ZSWatch

ZSWatch offers a rare glimpse into building a complete smartwatch platform from the ground up — hardware, firmware, and companion apps all open source. Using Nordic’s dual-core nRF5340 SoC, it tackles the challenges of sensor fusion, real-time responsiveness, and BLE communication in a resource-constrained embedded environment.

a complete open-source smartwatch platform with zephyr and nordic nrf5340

ZSWatch is a fully open-source project encompassing both hardware and firmware for a smartwatch. The hardware designs are provided as KiCad PCB files, targeting a 38 mm diameter round watch PCB with a 240x240 round touchscreen display. The core processing unit is Nordic Semiconductor’s nRF5340, a 128 MHz dual-core SoC with 512 KB of RAM and 1 MB of flash storage.

The firmware runs on Zephyr RTOS, an open-source real-time operating system designed for microcontrollers. This choice brings a mature, modular, and community-supported RTOS foundation that helps manage concurrency, device drivers, and power management.

On the sensor side, ZSWatch integrates a BMI270 IMU for motion sensing, BMP581 pressure sensor for altitude and weather-related data, LIS2MDLTR magnetometer for compass capabilities, and an I2S microphone. External storage is provided by a 64 MB flash chip. The watch communicates over Bluetooth Low Energy (BLE) to companion apps on iOS and Android, or to the open-source GadgetBridge app.

A notable aspect is the availability of a $99 WatchDK development kit. This dev kit uses the same SoC and sensors but comes in a larger form factor, making debugging and development more accessible.

The project is licensed under GPL-3.0 and partially funded by the EU’s NGI0 Commons Fund, emphasizing its open-source and community-driven nature.

firmware architecture and modular design under zephyr

Under the hood, the firmware leverages Zephyr RTOS’s multi-threading and device driver model to handle sensor data acquisition, BLE stack management, and user interface. The dual-core nRF5340 allows one core to focus on high-priority real-time tasks like sensor polling and BLE communication, while the other handles less time-critical operations.

The codebase is structured to keep sensor drivers modular and decoupled, which is important given the variety of sensors and their different communication protocols (SPI, I2C, I2S). Zephyr’s hardware abstraction layers help in this regard, but integrating multiple sensors with real-time constraints on a constrained MCU still requires careful engineering.

The BLE implementation supports communication with both proprietary companion apps and the open-source GadgetBridge, which broadens the ecosystem and reduces vendor lock-in.

One tradeoff is the resource constraints: 512 KB RAM and 1 MB flash limit how complex the UI and app framework can be. The firmware balances this by offloading some tasks to the companion apps and using external flash for data storage.

The code quality appears solid, following Zephyr’s conventions and making use of its infrastructure for device tree configurations, logging, and power management. This helps keep the firmware maintainable and extensible.

explore the project: documentation, hardware, and firmware resources

The repository provides comprehensive KiCad PCB files for the watch hardware, including both the main watch PCB and an extension PCB of about 16.8 mm diameter. These are useful for anyone interested in hardware hacking or manufacturing their own.

The firmware source is organized under Zephyr’s build system, with clear separation of board definitions, sensor drivers, BLE stack configuration, and application logic.

Documentation covers hardware specs (display, sensors, SoC), firmware architecture, and instructions for building and flashing the firmware to the devices, including the WatchDK.

The companion apps are open source but maintained separately, with links provided.

Since no explicit installation or quickstart commands are in the README analysis, the best approach to try out ZSWatch is to clone the repo, familiarize yourself with the Zephyr build system setup, and use the provided hardware or WatchDK dev kit for flashing and debugging.

verdict: a solid resource for embedded developers in wearables and zephyr rtOS

ZSWatch is a valuable project for embedded engineers interested in wearables, real-time operating systems, and BLE communication. It demonstrates how to structure firmware around Zephyr RTOS for a complex sensor suite on a constrained dual-core MCU.

The open hardware designs add a practical dimension for those wanting to understand or build smartwatch hardware, not just firmware.

The tradeoff is the hardware specificity and complexity — it requires familiarity with embedded systems development, Zephyr, and Nordic SoCs. Casual hobbyists without development kits or prior embedded experience may find the barrier to entry high.

That said, the project is well maintained, uses industry-grade tools and RTOS, and includes a development kit priced competitively at $99, which is a rare find in open-source smartwatch projects.

If you’re building or researching wearable firmware stacks, sensor integration, or BLE device development, ZSWatch provides a transparent, production-level codebase worth understanding and contributing to.


→ GitHub Repo: ZSWatch/ZSWatch ⭐ 3,219 · C