aboutsummaryrefslogtreecommitdiffstats
path: root/klippy/stepper.py
diff options
context:
space:
mode:
Diffstat (limited to 'klippy/stepper.py')
-rw-r--r--klippy/stepper.py8
1 files changed, 6 insertions, 2 deletions
diff --git a/klippy/stepper.py b/klippy/stepper.py
index 5a05e910..7c8438fc 100644
--- a/klippy/stepper.py
+++ b/klippy/stepper.py
@@ -15,6 +15,7 @@ class PrinterStepper:
self.inv_step_dist = 1. / self.step_dist
self.max_velocity = config.getfloat('max_velocity')
self.max_accel = config.getfloat('max_accel')
+ self.max_jerk = 0.
self.homing_speed = config.getfloat('homing_speed', 5.0)
self.homing_positive_dir = config.getboolean(
@@ -26,6 +27,8 @@ class PrinterStepper:
self.clock_ticks = None
self.need_motor_enable = True
+ def set_max_jerk(self, max_jerk):
+ self.max_jerk = max_jerk
def build_config(self):
self.clock_ticks = self.printer.mcu.get_mcu_freq()
max_error = self.config.getfloat('max_error', 0.000050)
@@ -33,9 +36,10 @@ class PrinterStepper:
step_pin = self.config.get('step_pin')
dir_pin = self.config.get('dir_pin')
- jc = 0.005 # XXX
+ jc = self.max_jerk / self.max_accel
inv_max_step_accel = self.step_dist / self.max_accel
- min_stop_interval = int((math.sqrt(inv_max_step_accel + jc**2) - jc)
+ min_stop_interval = int((math.sqrt(3.*inv_max_step_accel + jc**2)
+ - math.sqrt(inv_max_step_accel + jc**2))
* self.clock_ticks) - max_error
min_stop_interval = max(0, min_stop_interval)
mcu = self.printer.mcu