- HOME always homes Z with Beacon contact and recalibrates, also when the
printer is already homed (home_method_when_homed = proximity used the
model of an earlier print without touching the bed). PRINT_START homes
Z again after QGL, before the brush takes the nozzle below Z0.
- _Z_CHECK: after the soak, compare Klipper's Z with a BEACON_QUERY
reading at Z3 over the bed centre and stop the print above 1 mm.
Warns and continues when BEACON_QUERY leaves no new
printer.beacon.last_sample.
- Nozzle guard (extras/bdp_guard.py, print/nozzle_guard.cfg): reads the
bd_pressure force over I2C every 20 ms while armed and, in stop mode,
shuts Klipper down on a touch. Armed for HOME X/Y, QGL, Z homing, brush,
mesh and the Z check; starts in log mode to collect peaks per phase.
- Chamber prints: load and purge the first tool before the chamber heats
(_LOAD_FOR_CHAMBER replaces _UNLOAD_FOR_CHAMBER). A cut unload leaves a
piece of PLA in the extruder that softened in the hot chamber and jammed
the ASA load.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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>
- bd_pa_spoolman.cfg renames AFC's SET_SPOOL_ID, so klipper-macros.cfg
must be included after [include AFC/*.cfg]; the README said otherwise.
- install.sh links scripts/ as ~/printer_data/config/klipper-macros-scripts
so the scripts can be edited in Mainsail/Fluidd.
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>
Macros as they run on the printer (Voron 2.4 + AFC Box Turtle +
Blobifier + Beacon + bd_pressure + bdwidth + iHeater), the Klipper
modules they need (xy_drift, bdwidth_status, bdpressure_check), MCU
firmware update scripts, install.sh with Moonraker update manager
support, and READMEs.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>