aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--klippy/cartesian.py4
-rw-r--r--klippy/corexy.py4
-rw-r--r--klippy/delta.py2
-rw-r--r--klippy/homing.py12
-rw-r--r--klippy/stepper.py7
5 files changed, 18 insertions, 11 deletions
diff --git a/klippy/cartesian.py b/klippy/cartesian.py
index c22b24c5..5e73297e 100644
--- a/klippy/cartesian.py
+++ b/klippy/cartesian.py
@@ -48,7 +48,9 @@ class CartKinematics:
rpos = s.position_endstop + s.homing_retract_dist
r2pos = rpos + s.homing_retract_dist
# Initial homing
- homing_speed = s.get_homing_speed()
+ homing_speed = s.homing_speed
+ if axis == 2:
+ homing_speed = min(homing_speed, self.max_z_velocity)
homepos = [None, None, None, None]
homepos[axis] = s.position_endstop
coord = [None, None, None, None]
diff --git a/klippy/corexy.py b/klippy/corexy.py
index 3eac2e26..8ace928e 100644
--- a/klippy/corexy.py
+++ b/klippy/corexy.py
@@ -56,7 +56,9 @@ class CoreXYKinematics:
rpos = s.position_endstop + s.homing_retract_dist
r2pos = rpos + s.homing_retract_dist
# Initial homing
- homing_speed = s.get_homing_speed()
+ homing_speed = s.homing_speed
+ if axis == 2:
+ homing_speed = min(homing_speed, self.max_z_velocity)
homepos = [None, None, None, None]
homepos[axis] = s.position_endstop
coord = [None, None, None, None]
diff --git a/klippy/delta.py b/klippy/delta.py
index e2bb971a..c0e5ef28 100644
--- a/klippy/delta.py
+++ b/klippy/delta.py
@@ -112,7 +112,7 @@ class DeltaKinematics:
s = self.steppers[0] # Assume homing speed same for all steppers
self.need_home = False
# Initial homing
- homing_speed = s.get_homing_speed()
+ homing_speed = min(s.homing_speed, self.max_z_velocity)
homepos = [0., 0., self.max_z, None]
coord = list(homepos)
coord[2] = -1.5 * math.sqrt(max(self.arm2)-self.max_xy2)
diff --git a/klippy/homing.py b/klippy/homing.py
index 9f56a6e9..3a926083 100644
--- a/klippy/homing.py
+++ b/klippy/homing.py
@@ -3,7 +3,7 @@
# Copyright (C) 2016,2017 Kevin O'Connor <kevin@koconnor.net>
#
# This file may be distributed under the terms of the GNU GPLv3 license.
-import logging
+import logging, math
HOMING_STEP_DELAY = 0.00000025
ENDSTOP_SAMPLE_TIME = .000015
@@ -31,6 +31,15 @@ class Homing:
self.toolhead.move(self._fill_coord(newpos), speed)
def set_homed_position(self, pos):
self.toolhead.set_position(self._fill_coord(pos))
+ def _get_homing_speed(self, speed, endstops):
+ # Round the requested homing speed so that it is an even
+ # number of ticks per step.
+ speed = min(speed, self.toolhead.get_max_velocity()[0])
+ mcu_stepper = endstops[0][0].get_steppers()[0]
+ adjusted_freq = mcu_stepper.get_mcu().get_adjusted_freq()
+ dist_ticks = adjusted_freq * mcu_stepper.get_step_dist()
+ ticks_per_step = math.ceil(dist_ticks / speed)
+ return dist_ticks / ticks_per_step
def homing_move(self, movepos, endstops, speed):
# Start endstop checking
print_time = self.toolhead.get_last_move_time()
@@ -67,6 +76,7 @@ class Homing:
est_steps = sum([est_move_d / s.get_step_dist()
for es, n in endstops for s in es.get_steppers()])
self.toolhead.dwell(est_steps * HOMING_STEP_DELAY, check_stall=False)
+ speed = self._get_homing_speed(speed, endstops)
# Setup for retract verification
self.toolhead.get_last_move_time()
start_mcu_pos = [(s, name, s.get_mcu_position())
diff --git a/klippy/stepper.py b/klippy/stepper.py
index 109d0904..089d14dc 100644
--- a/klippy/stepper.py
+++ b/klippy/stepper.py
@@ -122,13 +122,6 @@ class PrinterHomingStepper(PrinterStepper):
self.homing_endstop_accuracy = self.homing_stepper_phases
def get_endstops(self):
return [(self.mcu_endstop, self.name)]
- def get_homing_speed(self):
- # Round the configured homing speed so that it is an even
- # number of ticks per step.
- adjusted_freq = self.mcu_stepper.get_mcu().get_adjusted_freq()
- dist_ticks = adjusted_freq * self.step_dist
- ticks_per_step = round(dist_ticks / self.homing_speed)
- return dist_ticks / ticks_per_step
def get_homed_offset(self):
if not self.homing_stepper_phases or self.need_motor_enable:
return 0.