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:
Kevin O'Connor 2018-09-12 22:22:37 -04:00
parent 094b9de69e
commit 390d549c0c
1 changed files with 3 additions and 2 deletions

View File

@ -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,