delta: Fix maximum halt velocity calculation
If an arm is nearly parallel to the bed then that tower's carriage may have a velocity up to 3 times greater than the toolhead's maximum velocity (relative to the print). Take that into account when calculating the stepper's maximum halt velocity. This fixes some rare "No next step" shutdowns on delta printers. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
This commit is contained in:
parent
094b9de69e
commit
390d549c0c
|
@ -50,9 +50,10 @@ class DeltaKinematics:
|
||||||
self.max_z_velocity = config.getfloat(
|
self.max_z_velocity = config.getfloat(
|
||||||
'max_z_velocity', self.max_velocity,
|
'max_z_velocity', self.max_velocity,
|
||||||
above=0., maxval=self.max_velocity)
|
above=0., maxval=self.max_velocity)
|
||||||
max_halt_velocity = toolhead.get_max_axis_halt()
|
max_halt_velocity = toolhead.get_max_axis_halt() * SLOW_RATIO
|
||||||
|
max_halt_accel = self.max_accel * SLOW_RATIO
|
||||||
for rail in self.rails:
|
for rail in self.rails:
|
||||||
rail.set_max_jerk(max_halt_velocity, self.max_accel)
|
rail.set_max_jerk(max_halt_velocity, max_halt_accel)
|
||||||
# Determine tower locations in cartesian space
|
# Determine tower locations in cartesian space
|
||||||
self.angles = [sconfig.getfloat('angle', angle)
|
self.angles = [sconfig.getfloat('angle', angle)
|
||||||
for sconfig, angle in zip(stepper_configs,
|
for sconfig, angle in zip(stepper_configs,
|
||||||
|
|
Loading…
Reference in New Issue