diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2020-02-20 11:32:38 -0500 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2020-02-20 11:41:35 -0500 |
commit | e03f75e7583bd510cc06908fe38b8f676a09f6d3 (patch) | |
tree | 4f081d578ec3199d317b46bea758ef1d22adcee2 /klippy/extras/tmc.py | |
parent | 15f21be5ec83733706328dbf2b6870332056e3ff (diff) | |
download | kutter-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>
Diffstat (limited to 'klippy/extras/tmc.py')
-rw-r--r-- | klippy/extras/tmc.py | 44 |
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) |