-
-
Notifications
You must be signed in to change notification settings - Fork 3
Filename Based Spool Tracking
Filename-based spool tracking is a fallback for printers or providers that do not reliably expose filament usage through their API.
Printbuddy normally prefers real printer/file metadata. When that metadata is missing or incomplete, Printbuddy can read the estimated filament weight and total cost from the exported G-code filename instead.
This is useful for direct printer-storage prints, especially with:
- PrusaLink direct prints
- Elegoo CC1 / Centauri Carbon direct prints
- Workflows where the printer starts a file that already lives on the printer
PrusaLink theoretically supports spool tracking through the PrusaLink API because the API can expose file metadata.
The problem is that stock PrusaLink firmware currently does not reliably output the required filament-weight variable. Printbuddy can query the metadata path, but if the needed value is not populated, there is nothing reliable to deduct from the loaded spool.
The filename fallback solves that by letting the slicer write the estimate into the filename before the file reaches the printer.
Elegoo CC1 can theoretically expose print estimate data through printer-side file information, but this is not reliable enough yet to claim full provider-based spool tracking support.
The filename fallback works for CC1 as well. If the exported filename includes the filament weight and total cost, Printbuddy can use that as the fallback estimate.
The filename must include these two parts near the end of the file name:
fw{total_weight}
tc{total_cost}
Recommended suffix:
_fw{total_weight}_tc{total_cost}
Example generated filename:
wall_hook_fw12.73_tc0.32.gcode
Printbuddy reads that as:
fw12.73 = 12.73 g filament used
tc0.32 = 0.32 total filament cost
The suffix must be directly before the file extension:
{name}_fw{total_weight}_tc{total_cost}.gcode
{name}_fw{total_weight}_tc{total_cost}.bgcode
Good examples:
part_fw12.73_tc0.32.gcode
part-name_fw12.73_tc0.32.bgcode
G43X_+5RND_EXTS_fw12.7325_tc0.323407.gcode
Do not include units or currency symbols inside the values.
Bad examples:
part_fw12.73g_tc0.32eur.gcode
part_filament12.73_cost0.32.gcode
part_fw12.73_tc0.32_final.gcode
Keep the fw...tc... suffix directly before .gcode or .bgcode.
In PrusaSlicer:
-
Enable Expert mode.
-
Go to Print Settings.
-
Open Output options.
-
Find the output filename format setting.
-
Edit the filename so it includes:
fw{total_weight} tc{total_cost}
Recommended filename format:
{input_filename_base}_fw{total_weight}_tc{total_cost}.bgcode
Or, when exporting classic G-code:
{input_filename_base}_fw{total_weight}_tc{total_cost}.gcode
Example generated filename:
gearbox_cover_fw18.42_tc0.46.bgcode
When this file is printed through PrusaLink, Printbuddy first tries the PrusaLink metadata API. If the stock firmware does not provide usable filament-weight metadata, Printbuddy falls back to the fw...tc... values in the filename.
In OrcaSlicer:
-
Open the print profile / process settings.
-
Under Process, go to the Others tab.
-
Find Filename format.
-
Edit the filename format so it includes:
fw{total_weight} tc{total_cost}
Recommended filename format:
{input_filename_base}_fw{total_weight}_tc{total_cost}.gcode
You can also keep your existing filename fields and append the Printbuddy suffix before the extension.
Example:
{input_filename_base}_{printer_model}_fw{total_weight}_tc{total_cost}.gcode
Example generated filename:
phone_stand_Elegoo_Centauri_Carbon_fw36.55_tc0.91.gcode
For CC1 / Centauri Carbon workflows, this gives Printbuddy a reliable fallback when the printer-side estimate lookup does not return usable data.
The filename tells Printbuddy how much filament was used. Printbuddy still needs to know which spool should be deducted.
Before starting the print:
- Go to the printer card or inventory assignment view.
- Assign the active spool as the printer's loaded spool.
- For non-AMS / single-spool providers, use the external or loaded spool slot.
- Start the print.
If no loaded spool is assigned, Printbuddy may still enrich the archive with filament usage, but it cannot deduct usage from a specific spool.
-
In the slicer, set the filename format to:
{input_filename_base}_fw{total_weight}_tc{total_cost}.gcode -
Slice/export the model.
-
Confirm the exported filename contains real values:
wall_hook_fw12.73_tc0.32.gcode -
Assign the correct loaded spool in Printbuddy.
-
Upload/start the file through Printbuddy or the printer workflow.
-
When the print completes, Printbuddy reads the filename metadata and applies it to the archive and loaded spool usage.
Check that the filename ends with the fallback suffix:
_fw12.73_tc0.32.gcode
or:
_fw12.73_tc0.32.bgcode
Check that the correct loaded spool was assigned before the print completed.
The filename fallback provides the usage amount, but Printbuddy still needs a loaded spool assignment target.
Use plain numbers only:
_fw12.73_tc0.32
Do not use:
_fw12.73g_tc0.32eur
Good:
part_fw12.73_tc0.32.gcode
Bad:
part_fw12.73_tc0.32_final.gcode
Use this filename pattern:
{name}_fw{total_weight}_tc{total_cost}.gcode
Example:
mount_fw24.8_tc0.62.gcode
Then assign the correct loaded spool before printing. Printbuddy will use the filename as a fallback when the printer API does not provide reliable filament usage metadata.
- Add a Printer
- Bambu Lab Setup
- Klipper / Moonraker Setup
- PrusaLink Setup
- Camera Setup
- Network & Firewall
- Dashboard
- Print Archive
- Printer Management
- Farm Command Center
- Notify integration with Live Activities
- Inventory & Spool Creation
- Filename-Based Spool Tracking
- Virtual Printer
- Queue / Review / Proxy Modes
- Backups