Skip to content

PrusaLink Setup

Marko@VMHOMELAB edited this page Jun 24, 2026 · 4 revisions

PrusaLink Setup

Use PrusaLink for printers exposing the local PrusaLink HTTP API.

Requirements

  • Printer reachable from the Printbuddy host.
  • PrusaLink enabled.
  • PrusaLink username/password or API secret.
  • Optional external camera URL.

Typical URL

http://<printer-ip>/

If your printer uses a custom port, preserve it in the API URL, for example:

http://<printer-ip>:8087/

Add the printer

  1. Open Add printer.
  2. Choose Prusa as the printer type.
  3. Choose the local PrusaLink connection mode.
  4. Enter the printer IP/hostname and API URL.
  5. Enter the PrusaLink secret/password as required.
  6. Choose the closest real printer model, such as Prusa CORE One, MK4, MK4S, or XL.
  7. Add a camera URL if needed.

Printbuddy can auto-detect the working PrusaLink API/authentication mode during connection testing. Modern printers commonly use Digest authentication against /api/v1; some compatibility or older setups may use Basic/API-key style credentials or legacy X-API-Key endpoints.

Notes

PrusaLink is not Moonraker. Printbuddy must use PrusaLink-specific HTTP endpoints for job/status/file actions instead of Moonraker G-code transport.

Current Printbuddy capabilities

Printbuddy's PrusaLink support is aimed at safe local management through the printer's own HTTP API.

Supported today:

  • Connection testing against the local PrusaLink API.
  • Reading printer status, job state, progress, temperatures, and current filename where the printer exposes them.
  • Uploading ready-to-print .gcode and .bgcode files to the printer's USB storage.
  • Listing files reported by the PrusaLink file API.
  • Deleting files from the printer's USB storage through the same PrusaLink file API.
  • Starting already uploaded files through the PrusaLink file endpoint when the printer accepts the request.
  • Pause, resume, and cancel job actions where a current PrusaLink job ID is available.

For modern PrusaLink printers such as the CORE One, files are stored on the printer's USB storage. The relevant file API shape is:

/api/v1/files/usb/<file-name>.gcode

That means Printbuddy should treat PrusaLink file upload, listing, deletion, and start-print requests as USB-file operations, not as Bambu FTP/SD-card operations and not as Moonraker gcodes storage.

Uploading files to PrusaLink / CORE One

Use ready-to-print .gcode or .bgcode files.

From the printer card, use Upload. The upload dialog includes Start print after upload:

  • Unchecked: upload only.
  • Checked: upload first, then ask PrusaLink to start the uploaded file.

Large files can take a few seconds to a few minutes while the printer writes the file to USB storage. During that time, avoid retrying the same upload unless Printbuddy reports a clear failure.

Same-name upload conflicts

If the printer already has a file with the same name, Printbuddy may offer conflict choices such as:

  • Upload as copy — keep the existing file and upload the new file under a copied name.
  • Delete existing and upload — remove the existing file first, then upload the replacement.

A PrusaLink 409 Conflict during retry can mean the file already exists, is locked, or the printer still has a placeholder from a previous interrupted upload. Check the printer's USB file list before retrying repeatedly.

File Manager behavior

For PrusaLink/Core One printers, the File Manager is intentionally provider-specific:

  • Print / Start is available for supported already-uploaded files when PrusaLink accepts the request.
  • Delete is available for files exposed by the PrusaLink USB-file API.
  • Download is currently hidden for PrusaLink USB files because modern PrusaLink file download is not implemented in Printbuddy.
  • Add to Queue is hidden for Prusa printer file managers; queue/re-slice workflows are not the same as starting a ready-to-print file already stored on the printer.

Unsupported or hidden controls

PrusaLink does not currently provide Printbuddy with the same manual control surface that Moonraker/Klipper exposes.

Printbuddy therefore hides or disables these PrusaLink controls unless a real supported PrusaLink implementation is added later:

  • Manual movement / jog controls.
  • Extrusion controls.
  • Temperature-target controls.
  • Raw G-code controls.
  • Moonraker-only control panels.
  • Bambu-only print options such as AMS handling, calibration flags, and FTP behavior.
  • Bambu-style print speed control.
  • Loaded-spool assignment controls that only apply to non-Prusa provider workflows.

Clone this wiki locally