From 8e5a4cafe8b3c22a64cd0887334d073ede0cbe98 Mon Sep 17 00:00:00 2001 From: Timofey Titovets Date: Mon, 2 Feb 2026 01:45:11 +0100 Subject: [PATCH] temperature_probe: use tap for calibration Signed-off-by: Timofey Titovets --- klippy/extras/temperature_probe.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/klippy/extras/temperature_probe.py b/klippy/extras/temperature_probe.py index f47c4e848..d047bf2a1 100644 --- a/klippy/extras/temperature_probe.py +++ b/klippy/extras/temperature_probe.py @@ -120,6 +120,7 @@ class TemperatureProbe: self.last_temp_read_time = 0. self.last_measurement = (0., 99999999., 0.,) # Calibration State + self._method = "manual" self.cal_helper = None self.next_auto_temp = 99999999. self.target_temp = 0 @@ -348,7 +349,20 @@ class TemperatureProbe: cmd_TEMPERATURE_PROBE_CALIBRATE_help = ( "Calibrate probe temperature drift compensation" ) + def _auto_probe(self, gcmd): + fo_params = dict(gcmd.get_command_parameters()) + fo_params['METHOD'] = self._method + gcode = self.printer.lookup_object('gcode') + fo_gcmd = gcode.create_gcode_command("PROBE", "PROBE", fo_params) + pprobe = self.printer.lookup_object("probe") + probe_session = pprobe.start_probe_session(fo_gcmd) + probe_session.run_probe(fo_gcmd) + pos = probe_session.pull_probed_results()[0] + probe_session.end_probe_session() + mpresult = manual_probe.ProbeResult(*pos) + self._manual_probe_finalize(mpresult) def cmd_TEMPERATURE_PROBE_CALIBRATE(self, gcmd): + self._method = gcmd.get('METHOD', 'manual').lower() if self.cal_helper is None: raise gcmd.error( "No calibration helper registered for [%s]" @@ -411,6 +425,9 @@ class TemperatureProbe: # Capture start position and begin initial probe toolhead = self.printer.lookup_object("toolhead") self.start_pos = toolhead.get_position()[:2] + if self._method != "manual": + self._auto_probe(gcmd) + return manual_probe.ManualProbeHelper( self.printer, gcmd, self._manual_probe_finalize ) @@ -433,6 +450,9 @@ class TemperatureProbe: curpos[2] = start_z toolhead.manual_move(curpos, probe_speed) self.gcode.register_command("ABORT", None) + if self._method != "manual": + self._auto_probe(gcmd) + return manual_probe.ManualProbeHelper( self.printer, gcmd, self._manual_probe_finalize )