Skip to content

Filename Based Spool Tracking

Marko@VMHOMELAB edited this page Jul 20, 2026 · 1 revision

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

Why this fallback exists

PrusaLink

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 / Centauri Carbon

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.

Filename format

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

Important formatting rules

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.

PrusaSlicer setup

In PrusaSlicer:

  1. Enable Expert mode.

  2. Go to Print Settings.

  3. Open Output options.

  4. Find the output filename format setting.

  5. 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.

OrcaSlicer setup

In OrcaSlicer:

  1. Open the print profile / process settings.

  2. Under Process, go to the Others tab.

  3. Find Filename format.

  4. 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.

Assign the loaded spool before printing

The filename tells Printbuddy how much filament was used. Printbuddy still needs to know which spool should be deducted.

Before starting the print:

  1. Go to the printer card or inventory assignment view.
  2. Assign the active spool as the printer's loaded spool.
  3. For non-AMS / single-spool providers, use the external or loaded spool slot.
  4. 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.

Full example workflow

  1. In the slicer, set the filename format to:

    {input_filename_base}_fw{total_weight}_tc{total_cost}.gcode
    
  2. Slice/export the model.

  3. Confirm the exported filename contains real values:

    wall_hook_fw12.73_tc0.32.gcode
    
  4. Assign the correct loaded spool in Printbuddy.

  5. Upload/start the file through Printbuddy or the printer workflow.

  6. When the print completes, Printbuddy reads the filename metadata and applies it to the archive and loaded spool usage.

Troubleshooting

The archive does not show filament usage

Check that the filename ends with the fallback suffix:

_fw12.73_tc0.32.gcode

or:

_fw12.73_tc0.32.bgcode

Spool usage was not deducted

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.

The filename contains units

Use plain numbers only:

_fw12.73_tc0.32

Do not use:

_fw12.73g_tc0.32eur

The suffix is not at the end

Good:

part_fw12.73_tc0.32.gcode

Bad:

part_fw12.73_tc0.32_final.gcode

Short version

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.

Clone this wiki locally