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.

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.
-
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.
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.
-
The firmwares it grew from
InfiniTime for the interface, faces, apps and Bluetooth services; wasp-os for loadable apps and the simulator; PinetimeLite and ZephyrLabs' Watchfaces for their faces.
-
What the watch is built on
Embassy and its Bluetooth host TrouBLE; rlvgl and LVGL for drawing and widgets; embedded-graphics for the simulator; Preact for the app language; and Font Awesome and Material Icons for the icons.
-
The companion and tools
Tauri, btleplug and QuickJS for the companion; Gadgetbridge for the protocol the watch speaks; InfiniEmu for the emulator.
-
And the rest
Material for MkDocs for this website, and PINE64 for the PineTime itself.
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.