Skip to content

About

Wear OS app for TinyMakerWiFi 3D printers: status on your wrist and watch face complications

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

TinyStatus

A Wear OS app that shows your TinyMakerWiFi 3D printer on your wrist and on your watch face.

TinyStatus

Time left, current layer, resin left in the vat, and a progress ring. It can watch the print in the background and buzz your wrist when the print ends or the resin runs low. The numbers can also live on your watch face as complications, so you see them without opening anything. New releases install from inside the app: Check for updates turns into Update when there is one.

Install

Download the latest APK · needs a Wear OS 4+ watch, TinyMakerWiFi firmware 0.16.2 or newer, and both on the same Wi-Fi.

TinyStatus is not on Google Play, so it goes on the watch by sideloading - once. After that it updates itself.

From your phone, no computer:

  1. Watch: Settings → About watch → Software, tap Software version five times, then in Developer options turn on ADB debugging and Wireless debugging
  2. Phone: download the APK from the link above, and install Wear Installer 2 from Google Play
  3. Watch: Wireless debugging → Pair new device shows a code
  4. Phone: in Wear Installer 2 pair with that code, choose Custom APK, pick the downloaded file, tap Install
  5. Watch: turn both debugging switches off again

From a computer: pair with adb pair, then adb install -r the APK - see INSTALL.md.

Updating: long press → APP → Check for updates. When a newer version is out, the button turns into Update 0.1.xxx - tap it.

Full guide, settings and troubleshooting: INSTALL.md

Why this repository exists

Until 2026-09-10 the code lived in the watch face repository and the releases were published under TinyMakerWifi. Both were temporary and both got in the way: a watch face has nothing to do with a printer, and TinyMakerWifi is a PlatformIO project where an Android toolchain would pollute the firmware CI, leaving the releases with no source of their own.

The history moved with the code (git subtree split), so the reasoning behind each decision came along - and in this project that reasoning is most of the value.

Things worth knowing before reading the code

The printer does not announce the end of a print. /api/status simply stops reporting busy and model goes empty. The app derives the ending itself by comparing two consecutive polls, which is why there is a whole state machine in TsPranesimas.java rather than an event handler.

The API reports no percentage - progress is computed from layer counts.

Complications never touch the network. The system asks providers every time you raise your wrist; if they fetched, every wrist-raise would become a Wi-Fi radio wake-up. They answer from cache, and freshness comes from the background watcher.

Row widths on screen are computed from the circle equation, not chosen by eye - otherwise text slides under the progress ring on a round display.

Layout

src/.../TsSaltinis.java printer list, fetching, cache, network choice
src/.../TsBusena.java /api/status fields and what they mean
src/.../TsPranesimas.java state machine; the only writer of notifications
src/.../TsSargas.java background watcher (foreground service + exact alarms)
src/.../TsKompl.java four complication data sources
src/.../TsAtnaujink.java checks GitHub for a newer release, installs it when you tap Update
MainActivity.java screen, gestures, settings windows
build.sh builds a signed APK without Gradle
ikonos.py icons (Material Symbols, Apache 2.0)
dokumentas.py builds the GIF from real watch screenshots

Building

bash build.sh

Needs a JDK and Android build-tools; no Gradle. On the first run it downloads one 700 KB Google library (wearable:2.9.0) - the complication provider base class lives there - and keeps it in libs/, which is not in git.

The signing key is not in git either. It defaults to ../keystore/vdigi.keystore and can be pointed elsewhere with WEAR_KEYSTORE. Do not change the key: an APK signed with a different one cannot be installed over an existing copy.

Notes on language

Code comments and the working notes in CLAUDE.md are in Lithuanian - that is the maintainer's working language. Everything a user reads (this file, INSTALL.md, release notes, and the app itself) is in English.

About

Wear OS app for TinyMakerWiFi 3D printers: status on your wrist and watch face complications

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages