Filament Tracker Get in touch

Runs on your own hardware

Filament Tracker

Weigh it, label it, scan it. Always know which spool has enough left for the next print.

Anyone with a 3D printer and a shelf of half-used spools.

PLA Orange

#3F9A1C07
954.6 g · on shelf

1. Weigh

Add a spool · 5 of 6 · PLA Orange, 1000 g when full

1,231.6 g steady

empty spool = 1,231.6 − 1,000.0 = 231.6 g

The spool’s empty weight is worked out from this, so later weighings know how much filament is left.

2. Label

PLA#3F9A1C07

Orange

1000 g · 2026-09-28

Stick on the label, then scan it. Waiting for FT1-K7QMZ…

Code 128, because the NETUM scanner reads 1D codes only. The barcode above is a real one for FT1-K7QMZXHD4WTBR3NPLE6A.

3. Check out

Checked out · going into the printer

  1. A1PLA:FFFFFFFFWhite
  2. A2PLA:FF6A13FF#3F9A1C07
  3. A3PETG:8E9089FFGray
  4. A4empty

The P1S reports PLA:FF6A13FF in A2. Only one checked-out spool is orange PLA, so the station matches A2 to it without asking. When a print ends, the slicer’s estimate (here 41.3 g) comes off that spool.

4. Return

Return & weigh · put the spool on the scale

1,186.2 g steady

1,186.2 − 231.6 empty spool = 954.6 g left

The slicer said 41.3 g. The scale says 45.4 g. The scale’s number is the one kept.

One spool from the shelf to the printer and back. An illustration with made-up readings that runs in your browser; the label layout, token format, AMS report and slot matching follow Filament Tracker’s code.

What it does

Know how much filament is left on every spool.

It runs as a server plus one Tauri app that works both as a Windows desktop app and as a touchscreen station on a Raspberry Pi next to the printer. The station talks to a barcode scanner, a Bluetooth label printer and a serial scale, and updates itself over the air with signed releases.

  1. 01

    Works with a barcode scanner, a Bluetooth label printer and an RS-232 scale

  2. 02

    Watches a Bambu P1S and matches AMS slots to spools automatically

  3. 03

    Check-in and check-out with an audit log and snapshot restore

  4. 04

    Signed over-the-air updates for the Raspberry Pi station

On the bench

Built around the hardware on my shelf.

The station is a Raspberry Pi with a 7-inch touchscreen that boots straight into the app. The same Tauri app runs on Windows. Each device below is the model it was written for.

  1. 01

    NETUM NT-1228BC

    A 1D barcode scanner, through its 2.4 GHz receiver or Bluetooth. Scanning a label opens that spool.

  2. 02

    JADENS JD268BT

    A Bluetooth thermal label printer. The station prints the label right after the first weighing.

  3. 03

    U.S. Solid USS-DBS61-50

    A 5 kg × 0.01 g balance on an RS-232-to-USB cable. The station reads it directly and waits for a steady reading.

  4. 04

    Bambu P1S

    Followed over the network, read only. It never controls the printer.

The rules

The numbers have to add up.

Mass is stored as whole milligrams, so nothing drifts. A reweigh that comes out heavier than the last one is held until someone gives a reason. If two stations check out the same spool at once, one wins and the other is told to refresh. Every change goes into an audit log, and the station backs itself up once a day and keeps the last 14.

# what's left, every time
remaining = gross − empty spool

# the empty spool, at registration
empty spool = first weighing − filament when full

# a reweigh is one of
consumption · noise · discrepancy (needs a reason)

Specification

What it’s built with, and when.

Pulled from the repository each time this site is built.

State
In development
Discipline
Applications
Shape
Installed software
Started
Sep 2026
Last change
Oct 2026
Commits
76
  • Rust
  • Axum
  • SQLite
  • Tauri 2
  • Svelte 5
  • Raspberry Pi
  • Rust 57%
  • Svelte 29%
  • TypeScript 7%
  • Shell 3%

Next

Get Filament Tracker

Ask about availability, a build for your platform, or a license.

This site isn't finished. Anything on it may still change, and none of it is binding until the site is live.