Skip to main content

Filament & Spool Inventory

O.D.I.N. provides a full filament inventory system with QR labels, AMS integration, low-stock alerts, auto-deduction on print completion, and optional Spoolman integration.


Spool Management​

Navigate to Inventory → Spools to manage your filament inventory.

Spool Fields​

FieldDescription
MaterialFilament type (PLA, PETG, ABS, ASA, TPU, PA, PC, etc.)
ColorColor name and hex value
BrandManufacturer name
Batch / Lot NumberFor tracking filament batches
Initial Weight (g)Full spool weight (filament only, no spool core)
Remaining Weight (g)Current weight remaining
Spool Core Weight (g)Empty spool weight (used to calculate remaining %)
Cost per GramFeeds into cost calculator and order P&L
Statusactive / empty / archived
Storage LocationOptional physical location label
NotesFree-text notes
PA ProfileCalibrated pressure advance value for this specific spool
Spoolman IDLink to external Spoolman instance
Low-Stock Threshold (g)Alert threshold (default: 50g)

Stat Cards​

The Spools page header shows:

  • Total active spools
  • Total weight remaining across all active spools
  • Low-stock spool count (badge)

QR Label System​

Each spool gets a unique QR code generated automatically.

Printing Labels​

  1. Go to Inventory → Spools
  2. Click the QR icon on any spool card to view its QR label
  3. Print Label — prints a single label
  4. Batch Labels — select multiple spools and print all their labels at once

Labels include: QR code, material, color, brand, and weight.

Scanning Spools​

Three scan methods are supported:

MethodHow
Camera scanClick the camera icon on the Spools page; point your device camera at the QR code
USB barcode scannerFocus the scan input field and scan — the scanner acts as a keyboard
Manual entryType the spool QR code string manually into the lookup field
Camera Scanning Requires HTTPS

The browser camera API (getUserMedia) only works over HTTPS. If O.D.I.N. is accessed over HTTP (e.g., on a local network without TLS), camera-based QR scanning will be unavailable. USB scanners and manual entry work over HTTP.

Scanning a spool opens a dialog to associate it with a printer and AMS slot.


Pressure Advance Profiles​

Each spool has a PA Profile field for storing your calibrated pressure advance value for that specific spool. This is useful when different spools of the same material require different PA calibration.

The PA profile is displayed in the spool list and detail views for quick reference when loading a spool.


Low-Stock Alerts​

Configure per-spool thresholds to receive low-stock warnings:

  • Default threshold: 50 grams
  • When remaining weight drops below threshold, an alert is dispatched via all configured channels
  • is_low_stock flag is included in spool list API responses for badge display on the UI
  • Query low-stock spools: GET /api/spools/low-stock

AMS Integration (Bambu Printers)​

For Bambu printers with AMS units:

  • RFID detection — AMS automatically reports filament type and color for RFID-chipped spools
  • Slot display — O.D.I.N. shows loaded filament colors and material types per AMS slot on printer cards
  • AMS humidity and temperature — captured at 5-minute intervals (90-day retention); the chart on the printer detail panel shows up to 7 days
  • AMS RFID re-read — trigger a filament re-scan via POST /api/printers/{id}/ams/refresh (MQTT ams_change_filament); API only, there is no UI control
  • AMS slot configuration — set material type, color hex, and K-factor per slot: PUT /api/printers/{id}/ams/{ams_id}/slots/{slot_id}

H2D External Spool Positions​

The Bambu H2D supports external spools in addition to AMS units. O.D.I.N. parses Ext-L and Ext-R spool positions from the vir_slot MQTT field and displays material, color, and remaining percentage on printer cards. H2D printers show a dual-nozzle badge and separate nozzle temperature readings (L/R).


Auto-Deduction on Print Completion​

When a print job completes, O.D.I.N. automatically deducts the filament used from the assigned spool's remaining weight. The deduction amount and a consumption_json record are stored in the print archive entry. A measured total (Bambu AMS remain % delta, Moonraker filament_used) is deducted only for single-spool prints; multi-filament prints deduct each assigned spool's sliced per-slot estimate, and a single measured total is never split across spools.

If the spool is linked to a Spoolman instance (spoolman_spool_id), the consumption is also pushed to Spoolman.


Spoolman Integration​

Link O.D.I.N. spools to an external Spoolman instance:

  1. Configure your Spoolman URL in Settings → General
  2. On any spool's edit form, set the Spoolman Spool ID field
  3. O.D.I.N. pushes consumption back to Spoolman (PUT /api/v1/spool/{id}/use) when prints complete, both for jobs completed manually and for prints the printer reports as finished

Spoolman spools can also be browsed from O.D.I.N. (read-through); they are not imported into the O.D.I.N. inventory.


Filament Drying Log​

Track drying sessions per spool (v1.2.0):

  1. Open a spool's detail view
  2. Click Log Drying Session
  3. Enter: start time, duration (hours), drying temperature
  4. Sessions are listed chronologically to track filament condition over time

CSV Export​

Export your full spool inventory:

GET /api/spools/export

The CSV includes ID, brand, name, material, color, initial/remaining weight, % remaining, status, vendor, price, storage location, notes and PA profile.

Available from Settings → System → Data Export (operator and above).


See Also​