mirror of
https://github.com/Klipper3d/klipper.git
synced 2025-07-13 09:48:00 -06:00
itersolve: Implement a step+dir+step filter
Some stepper motor drivers do not respond well to rapid "step + direction change + step" events. In particular, it is believed this can cause "over current" events on the tmc2208 drivers when they are in "stealthchop" mode. Detect these events and remove them from the generated step times. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
This commit is contained in:
parent
8f8c1e2c58
commit
c9cb462f90
3 changed files with 85 additions and 8 deletions
|
@ -1,6 +1,6 @@
|
|||
# Code for coordinating events on the printer toolhead
|
||||
#
|
||||
# Copyright (C) 2016-2019 Kevin O'Connor <kevin@koconnor.net>
|
||||
# Copyright (C) 2016-2020 Kevin O'Connor <kevin@koconnor.net>
|
||||
#
|
||||
# This file may be distributed under the terms of the GNU GPLv3 license.
|
||||
import math, logging, importlib
|
||||
|
@ -183,6 +183,7 @@ class MoveQueue:
|
|||
|
||||
MIN_KIN_TIME = 0.100
|
||||
MOVE_BATCH_TIME = 0.500
|
||||
SDS_CHECK_TIME = 0.001 # step+dir+step filter in itersolve.c
|
||||
|
||||
DRIP_SEGMENT_TIME = 0.050
|
||||
DRIP_TIME = 0.100
|
||||
|
@ -236,7 +237,7 @@ class ToolHead:
|
|||
self.print_stall = 0
|
||||
self.drip_completion = None
|
||||
# Kinematic step generation scan window time tracking
|
||||
self.kin_flush_delay = 0.
|
||||
self.kin_flush_delay = SDS_CHECK_TIME
|
||||
self.kin_flush_times = []
|
||||
self.last_kin_flush_time = self.last_kin_move_time = 0.
|
||||
# Setup iterative solver
|
||||
|
@ -512,7 +513,7 @@ class ToolHead:
|
|||
self.kin_flush_times.pop(self.kin_flush_times.index(old_delay))
|
||||
if delay:
|
||||
self.kin_flush_times.append(delay)
|
||||
new_delay = max(self.kin_flush_times + [0.])
|
||||
new_delay = max(self.kin_flush_times + [SDS_CHECK_TIME])
|
||||
self.kin_flush_delay = new_delay
|
||||
def register_lookahead_callback(self, callback):
|
||||
last_move = self.move_queue.get_last()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue