start_print
Start printing an uploaded file on your printer. Runs pre-flight safety checks first and blocks the print, returning diagnostics if any check fails.
Instructions
Start printing a file already uploaded to the printer (file must exist on printer).
Use ``upload_file`` first, or use ``slice_and_print`` / ``run_quick_print``
to slice + upload + print in one step. Automatically runs pre-flight safety
checks before starting. If any check fails the print is blocked and the
check results are returned so the agent can diagnose and fix the issue.
Args:
file_name: Name or path of the file as shown by ``printer_files()``.
use_ams: AMS filament feeding mode (Bambu only). Tri-state:
- ``"auto"`` (default): auto-detect AMS by probing the printer.
If an AMS is connected with loaded trays, enables AMS
automatically and selects the first loaded slot if no
``ams_mapping`` is provided. Falls back to external spool
if no AMS is detected.
- ``"true"`` / ``True``: Force AMS on. Use when you know AMS
is connected.
- ``"false"`` / ``False``: Force AMS off. Use external spool.
ams_mapping: Slot mapping per extruder (Bambu only). Defaults to
``[0]`` when AMS feeding is on and ``[]`` (external spool) when
it is off. Use ``-1`` for unused positions. Check
``ams_status()`` to see which slots have filament.
timelapse: Record a timelapse video (Bambu only). Default ``False``.
bed_leveling: Run automatic bed leveling before print (Bambu only).
Default ``True``. Set ``False`` to skip for reprints (~2 min saved).
flow_cali: Run flow calibration (Bambu only). Default ``True``.
vibration_cali: Run vibration/resonance calibration (Bambu only).
Default ``True``.
layer_inspect: Enable first-layer lidar inspection pause (Bambu only).
Default ``False``.
nozzle_clog_detect: Enable nozzle clumping / blob detection by
probing (Bambu only). Default ``True``. Set ``False`` to
bypass HMS 0300-8014 errors on models that trigger false
positives (thin first-layer geometry, certain grip/case models).
Disables the A1/A1-mini eddy-current clump probe (first after
the layer-3 walls, then once per ~8 g of filament; A1 series only).
bed_type: Bed surface type (Bambu only). Default ``"auto"``.
plate_number: Plate index in multi-plate 3MF files (Bambu only).
Default ``1``.
resume_from_paused: When ``True``, the pre-flight ``printer_idle``
check accepts ``paused`` as a valid state. Use this when
starting a resume-mode 3MF (mid-print decoration swap):
the printer is paused, you upload the resume 3MF, and then
``start_print`` it with this flag. The file is treated as
a fresh print from the firmware's POV — the resume gcode
carries its own preamble (heat → safety lift → home X/Y →
travel → descend to resume Z). Default ``False``.
Auto-detected for files whose name contains ``_resume_``
(case-insensitive) or starts with ``transformed_resume`` /
``original_resume`` — these are the conventional names
produced by ``decorate_during_print`` and ``revert_mid_print``.
skip_preheat_reassert: When the file is a resume-mode 3MF, the
tool re-asserts the printer's pre-start hotend + bed targets
immediately after the MQTT start command, because Bambu's
resume 3MFs strip the M140/M190 pre-heat block (the original
print already heated the bed) and the firmware's
cool-on-new-job policy will otherwise drop the bed to 0
before the resume preamble executes. Set ``True`` to
disable this safety net. Default ``False``.
printer_name: Which printer to start the job on. Omit to start
on the default printer, which is what this did before it
could be aimed. Everything the start decides — the pre-flight
verdict, the preview token's printer, the emergency latch,
the nozzle-wear consult, the watchdog that will be watching —
follows the named machine, so upload the file to that same
printer first (``upload_file(..., printer_name=...)``).
Listed last so existing positional calls keep their meaning.
Branch on ``print_start`` — one field, three values:
- ``"started"``: the printer, asked after the command, is printing.
- ``"accepted"``: the command was sent and not refused, and the machine
has not confirmed it is running. Normal during the start-up transient
(homing, AMS load, calibration). Call ``printer_status()`` to watch.
- ``"failed"``: the printer, asked after the command, is idle or errored
— it did not take the job.
``success`` is ``False`` only for ``"failed"``.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| use_ams | No | auto | |
| bed_type | No | auto | |
| file_name | Yes | ||
| flow_cali | No | ||
| timelapse | No | ||
| ams_mapping | No | ||
| bed_leveling | No | ||
| plate_number | No | ||
| printer_name | No | ||
| layer_inspect | No | ||
| preview_token | No | ||
| vibration_cali | No | ||
| nozzle_clog_detect | No | ||
| resume_from_paused | No | ||
| skip_preheat_reassert | No |