Skip to content

Printer Fleet

PrintStudio supports three printer protocols — Moonraker/Klipper, OctoPrint, and Bambu Lab — plus laser cutters. Each printer is registered with a machine type that determines which SKUs it can produce.

TypeExamplesProtocolNotes
fdm_largeBambu X1C, Voron 2.4, Kobra MaxBambu MQTT or MoonrakerHigh-volume FDM
fdm_standardPrusa MK4, Ender 3 ProOctoPrint or MoonrakerGeneral-purpose FDM
resinElegoo Saturn, Phrozen SonicMoonraker (Klipper)High-detail resin
laserGlowforge Pro, xTool P2LAN APIEngraving and cutting

Use the Setup Wizard for first-run configuration. It auto-discovers printers on your LAN.

Terminal window
curl -X POST http://localhost:8787/api/printers \
-H "Content-Type: application/json" \
-H "X-API-Key: your-api-key" \
-d '{
"name": "Voron 2.4 #1",
"type": "moonraker",
"machineType": "fdm_large",
"baseUrl": "http://192.168.1.100:7125",
"apiKey": "",
"buildVolume": { "x": 350, "y": 350, "z": 350 }
}'

Go to Dashboard → Printers → Add Printer. Fill in the connection details and click Test Connection before saving.

The router assigns queued jobs to printers based on:

  1. Machine type compatibility — job’s required machine type must match
  2. Printer availability — must be Online + Idle
  3. Build volume — job’s bounding box must fit on the build plate
  4. Material — printer must have the required filament loaded (if inventory tracking is enabled)
  5. Margin score — among eligible printers, prefer the one that maximises margin-per-hour

You can pin a job to a specific printer by setting preferredPrinterId on the job, which bypasses margin scoring.

Bambu printers use an MQTT-based LAN API. Requirements:

  1. Enable LAN-only mode in printer settings (Network → LAN Only Mode)
  2. Note the access code shown in the printer’s network settings
  3. Find the printer’s device serial number (sticker on back or in Bambu Studio)
Terminal window
# Add to .env for each Bambu printer
BAMBU_PRINTER_IP=192.168.1.50
BAMBU_PRINTER_SN=01P00A123456789
BAMBU_ACCESS_CODE=12345678

The Bambu adapter in packages/integrations/adapters/bambu handles the MQTT protocol automatically.

See the full Moonraker Integration page for setup details. The basics:

Terminal window
MOONRAKER_URL=http://192.168.1.100:7125
MOONRAKER_API_KEY= # optional; omit for trusted network

Moonraker printers support the full feature set: file upload, print control, temperature monitoring, emergency stop, and webcam.

To take a printer offline for maintenance without cancelling queued jobs:

Terminal window
# Via API
curl -X POST http://localhost:8787/api/printers/{id}/maintenance \
-H "X-API-Key: your-api-key"

Jobs assigned to a printer in maintenance are automatically re-queued and routed to the next eligible machine.

The AutoPilot polls all registered printers every 30 seconds. If a printer stops responding:

  1. The printer’s status changes to Offline
  2. Any active job on that printer enters the failed state
  3. The AutoPilot retries job routing up to maxRetries times (default: 3)
  4. After retries are exhausted, the operator is notified via OpenClaw and email