- LANE_CALIBRATE_PA: when a calibration will run, assign the lane's spool
again (SET_SPOOL_ID) so AFC reads the Spoolman temperature now; AFC
only reads it at spool assignment and Klipper start (TPU calibrated at
210C after Spoolman was set to 230C). The calibration moved to
_LANE_CALIBRATE_PA_RUN, rendered after the refresh.
- bdp_guard: an emergency stop during PA_CALIBRATE leaves the sensor in
PA mode (FIRMWARE_RESTART does not reset it). When arming, read the
mode register and switch the sensor back to probe mode with a fresh
baseline before watching it.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The guard's timer read the sensor while G28 ran; bdpressure.py writes the
probe mode at every homing move, and Klipper allows only one I2C request
at a time per device: KeyError ('i2c_response', 1), Klipper shut down
during HOME. The guard now wraps the sensor's i2c in a reactor mutex at
connect; bdpressure and bdpressure_check (now looks up sensor.i2c at
every use) go through it too.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- 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>