aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--klippy/cartesian.py20
-rw-r--r--klippy/stepper.py9
2 files changed, 11 insertions, 18 deletions
diff --git a/klippy/cartesian.py b/klippy/cartesian.py
index 8be83a71..100ce220 100644
--- a/klippy/cartesian.py
+++ b/klippy/cartesian.py
@@ -21,25 +21,19 @@ class CartKinematics:
self.stepper_pos = [int(newpos[i]*self.steppers[i].inv_step_dist + 0.5)
for i in StepList]
def get_max_xy_speed(self):
- max_xy_speed = min(s.max_step_velocity*s.step_dist
- for s in self.steppers[:2])
- max_xy_accel = min(s.max_step_accel*s.step_dist
- for s in self.steppers[:2])
+ max_xy_speed = min(s.max_velocity for s in self.steppers[:2])
+ max_xy_accel = min(s.max_accel for s in self.steppers[:2])
return max_xy_speed, max_xy_accel
def get_max_speed(self, axes_d, move_d):
# Calculate max speed and accel for a given move
- velocity_factor = min(
- [self.steppers[i].max_step_velocity
- * self.steppers[i].step_dist / abs(axes_d[i])
- for i in StepList if axes_d[i]])
- accel_factor = min(
- [self.steppers[i].max_step_accel
- * self.steppers[i].step_dist / abs(axes_d[i])
- for i in StepList if axes_d[i]])
+ velocity_factor = min([self.steppers[i].max_velocity / abs(axes_d[i])
+ for i in StepList if axes_d[i]])
+ accel_factor = min([self.steppers[i].max_accel / abs(axes_d[i])
+ for i in StepList if axes_d[i]])
return velocity_factor * move_d, accel_factor * move_d
def get_max_e_speed(self):
s = self.steppers[3]
- return s.max_step_velocity*s.step_dist, s.max_step_accel*s.step_dist
+ return s.max_velocity, s.max_accel
def home(self, toolhead, axis):
# Each axis is homed independently and in order
homing_state = homing.Homing(toolhead, self.steppers) # XXX
diff --git a/klippy/stepper.py b/klippy/stepper.py
index 61faaee0..5a05e910 100644
--- a/klippy/stepper.py
+++ b/klippy/stepper.py
@@ -13,10 +13,8 @@ class PrinterStepper:
self.step_dist = config.getfloat('step_distance')
self.inv_step_dist = 1. / self.step_dist
- max_velocity = config.getfloat('max_velocity')
- self.max_step_velocity = max_velocity * self.inv_step_dist
- max_accel = config.getfloat('max_accel')
- self.max_step_accel = max_accel * self.inv_step_dist
+ self.max_velocity = config.getfloat('max_velocity')
+ self.max_accel = config.getfloat('max_accel')
self.homing_speed = config.getfloat('homing_speed', 5.0)
self.homing_positive_dir = config.getboolean(
@@ -36,7 +34,8 @@ class PrinterStepper:
step_pin = self.config.get('step_pin')
dir_pin = self.config.get('dir_pin')
jc = 0.005 # XXX
- min_stop_interval = int((math.sqrt(1./self.max_step_accel + jc**2) - jc)
+ inv_max_step_accel = self.step_dist / self.max_accel
+ min_stop_interval = int((math.sqrt(inv_max_step_accel + jc**2) - jc)
* self.clock_ticks) - max_error
min_stop_interval = max(0, min_stop_interval)
mcu = self.printer.mcu