How to use it
Add each spool with the grams on it. A new 1 kg spool holds 1,000 g. For a spool you already opened, weigh it and take off the weight of the empty spool, which the spool weight page lists for many brands. The price is optional, and with it every print gets its cost.
After each print, log the grams that your slicer showed for it. The spool loses those grams and the print goes into the history with its cost. A spool under 100 g is marked as running low, and each spool shows how long it lasts at the pace of your last two weeks.
The slicer’s grams are an estimate too, so weigh a spool now and then and press Update grams when the two disagree. Back up saves your spools and prints to a file, which Restore brings back.
Where the grams come from
Your slicer estimates the grams of a print before it starts, and that is the figure most trackers take off the spool. Bambuddy uses the estimate in the print’s 3MF file first, and falls back to the change in the AMS’s percentage when there is none. With Klipper, Moonraker sends Spoolman the filament used while the print runs, every 5 seconds by default.
A printer that reads a spool’s tag shows its own estimate, which can wander during a print. A kitchen scale gives the real figure.
Spoolman for Klipper and OctoPrint
Spoolman is a self-hosted web service under the MIT License. It keeps records of filament types, manufacturers and single spools. Its web page searches, groups and filters them by manufacturer, material and location, and designs labels with QR codes to stick on each spool. It handles several printers at once and stores its data in SQLite, PostgreSQL, MySQL or CockroachDB.
On Klipper, a [spoolman] section in moonraker.conf with the address where Spoolman runs connects the two. A macro then tells Moonraker which spool is loaded, as SET_ACTIVE_SPOOL ID=1 does in Moonraker’s own example. Fluidd, Mainsail and KlipperScreen are among the front ends that show it.
Bambuddy for Bambu Lab printers
Bambuddy is a self-hosted dashboard for Bambu Lab printers, under the AGPL-3.0 license, which talks to them over the local network in Developer Mode. Its spool inventory assigns spools to AMS slots and tracks what each print uses. You set a cost per kilogram on each spool, and a print gets its cost when it ends. It can sync its spools with Spoolman and prints spool labels in several sizes.
Its guide warns that on the H2 series and the P2S, a print started with the Print button of Bambu Studio is archived with no filament total and no cost. Starting the print from Bambuddy, or slicing in OrcaSlicer, avoids that. Its quick start asks for Developer Mode, the same local network, and Python 3.10 or newer, Docker or its Windows installer.