action_raise_error aborts while the macro renders, so an M117 in the same
macro never ran and errors such as the RESUME lane check only reached the
console. messages.cfg adds _ERROR (M117, then raise in a separate macro)
and _WARN (RESPOND TYPE=error + M117); all errors and warnings use them.
PAUSE shows AFC's error as the pause reason; RESUME, CANCEL_PRINT and
PRINT_WARMUP clear the display.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
PAUSE stores the lane the print needs (AFC's next_lane during a failed
tool change, otherwise the loaded lane). RESUME stops with an error when
another lane or none is loaded; RESUME LANE_CHECK=0 skips the check.
AFC_CLEAR_ALL_MESSAGES clears AFC's whole message queue
(AFC_CLEAR_MESSAGE only removes the first message).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
_RESUME_PRINT purges 40 mm with BLOBIFIER_CHECKED (instead of the 2 mm
unretract), so the nozzle is primed, wiped and checked before going back
to the print. A failed purge check raises an error that aborts the whole
resume, AFC_RESUME's restore included, so the printer stays paused; the
next RESUME checks again. RESUME PURGE=0 skips the purge.
The purge check records a failure in _PURGE_CHECK_CFG.last_failed, since
its PAUSE has no effect while the printer is already paused.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Klipper's G10 retracts only once until a G11, and nothing sends G11 on
this printer: the G10 in PRINT_WARMUP used up the retract, so PRINT_END
never retracted and the nozzle leaked while cooling down.
- _NOZZLE_RETRACT retracts and remembers the amount in the saved
variable nozzle_retract (survives restarts, capped at 15 mm).
PRINT_END retracts 5 mm, PRINT_WARMUP 2 mm, CANCEL_PRINT 5 mm plus the
park/PAUSE retract.
- _NOZZLE_UNRETRACT in PRINT_START pushes it back over the bucket before
the wipe.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- RESUME is defined only in print/pause_resume.cfg; heat_soak.cfg's
duplicate replaced it (no unretract, no fan restore). It now runs
HEAT_SOAK_RESUME -> _RESUME_PRINT -> RESUME_BASE.
- PAUSE runs PAUSE_BASE first, then retracts and parks once (X20 Y345);
a parked flag makes resume undo only what PAUSE did.
- New _PRINT_CLEANUP shared by PRINT_END and CANCEL_PRINT: heaters incl.
iHEATER_OFF, fan, M221 S100, bdwidth off, mesh and skew cleared.
In PRINT_END it runs after RESTORE_GCODE_STATE so the flow reset sticks.
- Add CLAUDE.md and tools/effective_config.py.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Split the macro files into folders by topic (print, heating, afc,
pressure_advance, spoolman, leds, sensors); klipper-macros.cfg is the
one file printer.cfg includes. Macros moved unchanged; the effective
config is identical apart from the paths of the PA shell scripts.
- Add the modified Blobifier (Turtleblobifier for AFC) and define
[save_variables] once in save_variables.cfg instead of in both
blobifier.cfg and the PA macros (same file, bd_pa_variables.cfg).
- PRINT_WARMUP: heat to the loaded lane's temperature before the first
tool change. AFC skips heating when the loaded lane's tool number is
not in the print file's temperature list, and the unload then failed
below min_extrude_temp.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>