Skip to content

lulf/watchful

Repository files navigation

CI

Watchful

(Anagram for ulfwatch)

Real Time Async Enterprise Watch OS written in Rust!

Firmware for Pinetime based on Embassy. The goal is to provide a firmware for the PineTime that is written in Rust and can function as watch OS.

PineTime on my arm running Watchful

Features

  • Implements Nordic DFU protocol so you can update from a phone app such as nRF Connect.
  • Automatically synchronizes time with using BLE standard Current Time Service.
  • Use external flash (4MB) for firmware updates and persistence.
  • Rollback to previous firmware if reset or crashing before new firmware is validated in watch UI.
  • Can be installed from Infinitime using DFU.

Getting started

The recommended way to run Watchful is to get a PineTime Development Kit, to which you can connect a debug probe. To run Watchful, you need to download the latest S132 SoftDevice. For flashing and running with the debug probe, probe-rs is recommended.

To run Watchful:

# Installing the softdevice
probe-rs download path-to-softdevice.hex --format Hex --chip nRF52832_xxAA

# Flashing the bootloader
cd firmware/boot
cargo flash --release

# Flashing the OS
cd ../app
cargo flash --release

Updating firmware

Once you have Watchful running, you can use an app such as nRF Connect on Android or iOS using the DFU functionality with the latest release.

DANGER Reflashing your sealed PineTime from InfiniTime to Watchful

If you want to reflash your sealed PineTime to Watchful, it is possible. But there is a chance to brick your PineTime, so don't do this unless you've tried it a few times on a devkit and feel confident. Also consider the fact that once you go to Watchful, there is no way to go back at the moment.

I take no responsibilty of broken PineTimes, you are hereby warned :)

With that out of the way,