aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2020-02-20 11:32:38 -0500
committerKevin O'Connor <kevin@koconnor.net>2020-02-20 11:41:35 -0500
commite03f75e7583bd510cc06908fe38b8f676a09f6d3 (patch)
tree4f081d578ec3199d317b46bea758ef1d22adcee2
parent15f21be5ec83733706328dbf2b6870332056e3ff (diff)
downloadkutter-e03f75e7583bd510cc06908fe38b8f676a09f6d3.tar.gz
kutter-e03f75e7583bd510cc06908fe38b8f676a09f6d3.tar.xz
kutter-e03f75e7583bd510cc06908fe38b8f676a09f6d3.zip
tmc: Revert incorrect changes to TPWMTHRS setting
It's not valid to set the TPWMTHRS in a "klippy:connect" event handler because the TMCVirtualPinHelper and TMCCommandHelper classes were expecting that field to be set during the config reading phase. Revert "tmc: Fix typo preventing stealthchop threshold from being set" This reverts commit 7d76067ff9efaf75808b05f768dfef4295251ede. Revert "tmc: Query the stepper step_distance from the stepper object" This reverts commit 67b285224952749583d7bb3af3eb6397f63b492e. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
-rw-r--r--klippy/extras/tmc.py44
1 files changed, 18 insertions, 26 deletions
diff --git a/klippy/extras/tmc.py b/klippy/extras/tmc.py
index cead9e4a..2bbd841c 100644
--- a/klippy/extras/tmc.py
+++ b/klippy/extras/tmc.py
@@ -273,29 +273,21 @@ class TMCMicrostepHelper:
return (1023 - mscnt) >> self.fields.get_field("MRES")
# Helper to configure "stealthchop" mode
-class TMCStealthchopHelper:
- def __init__(self, config, mcu_tmc, tmc_freq):
- self.name = config.get_name()
- self.fields = fields = mcu_tmc.get_fields()
- self.tmc_freq = tmc_freq
- printer = config.get_printer()
- self.force_move = printer.try_load_module(config, "force_move")
- en_pwm_mode = False
- self.velocity = config.getfloat('stealthchop_threshold', 0., minval=0.)
- if self.velocity:
- printer.register_event_handler("klippy:connect",
- self.handle_connect)
- en_pwm_mode = True
- reg = fields.lookup_register("en_pwm_mode", None)
- if reg is not None:
- fields.set_field("en_pwm_mode", en_pwm_mode)
- else:
- # TMC2208 uses en_spreadCycle
- fields.set_field("en_spreadCycle", not en_pwm_mode)
- def handle_connect(self):
- stepper_name = " ".join(self.name.split()[1:])
- stepper = self.force_move.lookup_stepper(stepper_name)
- step_dist = stepper.get_step_dist()
- step_dist_256 = step_dist / (1 << self.fields.get_field("MRES"))
- threshold = int(self.tmc_freq * step_dist_256 / self.velocity + .5)
- self.fields.set_field("TPWMTHRS", max(0, min(0xfffff, threshold)))
+def TMCStealthchopHelper(config, mcu_tmc, tmc_freq):
+ fields = mcu_tmc.get_fields()
+ en_pwm_mode = False
+ velocity = config.getfloat('stealthchop_threshold', 0., minval=0.)
+ if velocity:
+ stepper_name = " ".join(config.get_name().split()[1:])
+ stepper_config = config.getsection(stepper_name)
+ step_dist = stepper_config.getfloat('step_distance')
+ step_dist_256 = step_dist / (1 << fields.get_field("MRES"))
+ threshold = int(tmc_freq * step_dist_256 / velocity + .5)
+ fields.set_field("TPWMTHRS", max(0, min(0xfffff, threshold)))
+ en_pwm_mode = True
+ reg = fields.lookup_register("en_pwm_mode", None)
+ if reg is not None:
+ fields.set_field("en_pwm_mode", en_pwm_mode)
+ else:
+ # TMC2208 uses en_spreadCycle
+ fields.set_field("en_spreadCycle", not en_pwm_mode)