Embedded software engineer Jakob Krantz created a smartwatch design as an open sourced hardware and software project called ZSWatch. The full name is Zephyr Smartwatch, which runs the Zephyr real-time operating system
Inside ZSWatch's 3D-printed case is a four-layer circular PCB measuring 36mm. On that PCB is an u-blox ANNA-B402 module that contains a Nordic nRF52833 BLE SoC. The sensor package includes an accelerometer, pulse oximeter, and heart rate monitor. In addition, there is a haptic vibration motor, battery management circuit, an eight-megabyte flash, and three push buttons for navigation.
Below the PCB is a 220 mAh LiPo battery. And above the PCB is a 1.28-inch 240x240 IPS TFT circular display. A sapphire crystal glass protects the TFT (and everything below it.)
ZSWatch connects to a dock through pogo pins. The connections provide power and break out the SWD pins for the nRF SoC.
Currently, the watch's face displays the type of information you would expect in a smartwatch. For example, it shows the current time, date, battery life, weather, and step counter. While Krantz did include the pulse oximeter and heart-rate sensor, its firmware still needs to be fully implemented. For example, ZSWatch samples data from the heart rate sensor but does not calculate anything with it.
Support with Android phones comes through an app called GadgetBridge. For compatibility, ZSWatch emulates an already-supported smartwatch. With this connection, ZSWatch and GadgetBridge work together for activities like notifications.
Krantz open sourced both the software (firmware) and hardware design for ZSWatch. However, the recommendation is to wait for version 2.0 before building one. The newer version fixes a few known issues. For example, the new version uses a u-blox NORA-B10 with the nRF5340 SoC, which fixes a BLE pairing issue. It also adds a touch screen!
Visit the ZSWatch GitHub repo to download the mechanical CAD files, KiCad design, and app code. You can also watch the project to see when version 2.0 becomes available.