diff options
Diffstat (limited to 'klippy/extras')
-rw-r--r-- | klippy/extras/endstop_phase.py | 4 | ||||
-rw-r--r-- | klippy/extras/homing.py | 10 | ||||
-rw-r--r-- | klippy/extras/manual_stepper.py | 2 | ||||
-rw-r--r-- | klippy/extras/probe.py | 3 |
4 files changed, 14 insertions, 5 deletions
diff --git a/klippy/extras/endstop_phase.py b/klippy/extras/endstop_phase.py index 2c7468bc..689ec4fa 100644 --- a/klippy/extras/endstop_phase.py +++ b/klippy/extras/endstop_phase.py @@ -52,7 +52,7 @@ class PhaseCalc: class EndstopPhase: def __init__(self, config): self.printer = config.get_printer() - self.name = config.get_name().split()[1] + self.name = " ".join(config.get_name().split()[1:]) # Obtain step_distance and microsteps from stepper config section sconfig = config.getsection(self.name) rotation_dist, steps_per_rotation = stepper.parse_step_distance(sconfig) @@ -118,7 +118,7 @@ class EndstopPhase: return delta * self.step_dist def handle_home_rails_end(self, homing_state, rails): for rail in rails: - stepper = rail.get_steppers()[0] + stepper = rail.get_endstops()[0][0].get_steppers()[0] if stepper.get_name() == self.name: trig_mcu_pos = homing_state.get_trigger_position(self.name) align = self.align_endstop(rail) diff --git a/klippy/extras/homing.py b/klippy/extras/homing.py index add209ec..723648c1 100644 --- a/klippy/extras/homing.py +++ b/klippy/extras/homing.py @@ -45,7 +45,7 @@ class StepperPosition: class HomingMove: def __init__(self, printer, endstops, toolhead=None): self.printer = printer - self.endstops = endstops + self.endstops = [es for es in endstops if es[0].get_steppers()] if toolhead is None: toolhead = printer.lookup_object('toolhead') self.toolhead = toolhead @@ -71,7 +71,9 @@ class HomingMove: sname = stepper.get_name() kin_spos[sname] += offsets.get(sname, 0) * stepper.get_step_dist() thpos = self.toolhead.get_position() - return list(kin.calc_position(kin_spos))[:3] + thpos[3:] + cpos = kin.calc_position(kin_spos) + return [cp if cp is not None else tp + for cp, tp in zip(cpos, thpos[:3])] + thpos[3:] def homing_move(self, movepos, speed, probe_pos=False, triggered=True, check_triggered=True): # Notify start of homing/probing move @@ -233,6 +235,10 @@ class Homing: for s in kin.get_steppers()} newpos = kin.calc_position(kin_spos) for axis in force_axes: + if newpos[axis] is None: + raise self.printer.command_error( + "Cannot determine position of toolhead on " + "axis %s after homing" % "xyz"[axis]) homepos[axis] = newpos[axis] self.toolhead.set_position(homepos) diff --git a/klippy/extras/manual_stepper.py b/klippy/extras/manual_stepper.py index 1465590d..c15ce235 100644 --- a/klippy/extras/manual_stepper.py +++ b/klippy/extras/manual_stepper.py @@ -11,7 +11,7 @@ class ManualStepper: self.printer = config.get_printer() if config.get('endstop_pin', None) is not None: self.can_home = True - self.rail = stepper.PrinterRail( + self.rail = stepper.LookupRail( config, need_position_minmax=False, default_position_endstop=0.) self.steppers = self.rail.get_steppers() else: diff --git a/klippy/extras/probe.py b/klippy/extras/probe.py index c919b983..64d5f855 100644 --- a/klippy/extras/probe.py +++ b/klippy/extras/probe.py @@ -177,6 +177,9 @@ def lookup_minimum_z(config): if config.has_section('stepper_z'): zconfig = config.getsection('stepper_z') return zconfig.getfloat('position_min', 0., note_valid=False) + elif config.has_section('carriage z'): + zconfig = config.getsection('carriage z') + return zconfig.getfloat('position_min', 0., note_valid=False) pconfig = config.getsection('printer') return pconfig.getfloat('minimum_z_position', 0., note_valid=False) |