Skip to content

A Rust firmware for the PineTime

BattleTime combines the best of the two PineTime firmwares: the polish, battery life and speed of InfiniTime, with the easy, loadable apps and desktop simulator of wasp-os.

Apps are written in Preact and TypeScript, the way you would build a web page. No Rust or embedded knowledge is needed: the compiler turns an app into bytecode the watch runs.

Using the watch Writing apps Source on GitHub

Early work. The firmware, bootloader and updates run on a real PineTime.

The digital watch face The launcher as a grid of icons

What it aims for

  • Apps in Preact, no Rust needed

    Write an app as Preact components in TypeScript, with Signals for state, and preview it in a browser. The compiler turns it into compact bytecode, so web skills are all it takes.

    How apps are written

  • Loadable apps

    Apps and watch faces install over Bluetooth from the phone, with no reflash.

  • Apps from shared parts

    Widgets, fonts and images live in the firmware and a shared library, so each app is small and light on RAM.

  • Pure Rust

    The whole firmware is Rust, down to the Bluetooth stack: TrouBLE on BattleTime's own radio controller, built on Embassy.

  • Safe updates

    A bad firmware rolls back by itself, and holding the button starts a recovery firmware.

  • Battery life

    The watch sleeps whenever it can, radio and crystal included.

  • Companion apps

    It works with Gadgetbridge and the other apps InfiniTime supports, and has a companion of its own for computers and Android.

    The companion app

Watch faces

Every face from InfiniTime, wasp-os and PinetimeLite, and the faces of ZephyrLabs' Watchfaces, ported to BattleTime's app language. All faces

Apps

The apps of both firmwares, merged where they overlap, grouped in a launcher the companion app arranges. All apps

Credits

BattleTime stands on the work of these projects and the people behind them.

Screenshots are drawn by the test suite, so they show the apps as they are now. BattleTime is free software under the GNU General Public License, version 3 or later.