jakkra / ZSWatch

ZSWatch - the Open Source Zephyr™ based Smartwatch, including both HW and FW.
https://forms.gle/G48Sm5zDe9aCaYtT9
GNU General Public License v3.0
2.18k stars 178 forks source link
angle-of-arrival ble bluetooth display gc9a01a lvgl nordic-semiconductor nrf-connect nrf-connect-sdk nrf52 nrf53 nrf5340 sensors smart-watch smartwatch zephyr zephyr-rtos zswatch

ZSWatch_gh_banner

[![License](https://img.shields.io/badge/License-GPL%203.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![discord](https://img.shields.io/badge/chat-discord-blue?logo=discord&logoColor=white)](https://discord.gg/8XfNBmDfbY)

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



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


UI and features

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

Watch my presentation at Zephyr Developer Summit 2023

Building or getting one

Some things are still in progress:

I'll also build a few initial kits (assembled) for those who don't want or can build ZSWatch themselves.
In addition to assembled ZSWatch and dock you will get the following compared to if you build it yourself:

If you are interested in a kit, or want to get notified when the missing parts above are resolved, fill in your mail here (Google form) and I'll send a reminder when it's ready.

Or if you want to get notified for releases and when the missing parts are finished simply press the Watch button (next to Fork and Star) -> Custom -> Releases and you will see in your feed when it's officially released.

Table of content ZSWatch

Hardware features

Charger/Dock

Option with and without onboard SEGGER J-Link OB debugger.
As the debugger requires a license, this will only be availible as part of a kit.

See more at https://github.com/jakkra/ZSWatch-Dock

Enclosure/Casing

3D printed casing with 3D printed buttons, option CNC:able casing in metal.

Software Features

Features and progress

There are almost endless of posiblities for features that could be implemented, see here for full progress and in GitHub issues.

Watchfaces

https://github.com/jakkra/ZSWatch/assets/4318648/13e43401-1c00-40ab-866f-e6518e61940d

Smartphone communication

Android phone communication

Fortunately there is a great Android app called GadgetBridge which handles everything needed on the phone side, such as notifications management, music control and so much more... The ZSWatch right now pretends to be one of the supported Smart Watches in Gadgetbridge, following the same API as it does. In future there may be a point adding native support, we'll see.

Demo of doing HTTP requests over BLE through Gadgetbridge.

https://github.com/jakkra/ZSWatch/assets/4318648/12d6e754-ceb3-4efd-9a75-d207aaeb0e82

Pairing

iOS device communication

Apple exposes Apple Notification Center Service GATT server which handles notifications management on the phone side, music control is done in the same fashion using Apple Media Service... The ZSWatch communicates straight to the iOS with no extra Apps.

Pairing

PCB

A 4 layer board which measures 38mm in diameter designed in KiCad.
More info here: https://github.com/jakkra/ZSWatch-HW

Environment, Compiling and running the code

See GETTING_STARTED.md

Writing apps for the Application Manager

See Wiki page about apps

Other tools

Licence GPL-3.0

Main difference from MIT is now that if anyone want to build something more with this, then they need to also open source their changes back to the project, which I thinks is fair. This is so everyone can benefit from those improvements. If you think this is wrong for some reason feel free to contact me, I'm open to change the LICENCE.

Thanks

SEGGER for supporting with SEGGER-OB licenses which makes the dock a fully functional programmer and debugger for ZSWatch. Thanks to this the project will be much more approchable for persons without a J-Link debugger, letting them have full development and debugging capabilites.