aboutsummaryrefslogtreecommitdiffstats
path: root/klippy/kinematics
diff options
context:
space:
mode:
authorDmitry Butyugin <dmbutyugin@google.com>2024-07-11 20:43:21 +0200
committerGitHub <noreply@github.com>2024-07-11 14:43:21 -0400
commitc84d78f3f169bc5163d11b74837f9880b0b7dba4 (patch)
tree722fac53025245b77d8e9efaf9c6987dc7a41a96 /klippy/kinematics
parent248d3dbf8bcda69a51e3a303862bbcc64a32119d (diff)
downloadkutter-c84d78f3f169bc5163d11b74837f9880b0b7dba4.tar.gz
kutter-c84d78f3f169bc5163d11b74837f9880b0b7dba4.tar.xz
kutter-c84d78f3f169bc5163d11b74837f9880b0b7dba4.zip
extruder: Allow dynamic adjustment of pressure advance (#6635)
Signed-off-by: Dmitry Butyugin <dmbutyugin@google.com>
Diffstat (limited to 'klippy/kinematics')
-rw-r--r--klippy/kinematics/extruder.py11
1 files changed, 7 insertions, 4 deletions
diff --git a/klippy/kinematics/extruder.py b/klippy/kinematics/extruder.py
index 69240037..7fb2e7ed 100644
--- a/klippy/kinematics/extruder.py
+++ b/klippy/kinematics/extruder.py
@@ -18,7 +18,7 @@ class ExtruderStepper:
self.stepper = stepper.PrinterStepper(config)
ffi_main, ffi_lib = chelper.get_ffi()
self.sk_extruder = ffi_main.gc(ffi_lib.extruder_stepper_alloc(),
- ffi_lib.free)
+ ffi_lib.extruder_stepper_free)
self.stepper.set_stepper_kinematics(self.sk_extruder)
self.motion_queue = None
# Register commands
@@ -71,11 +71,14 @@ class ExtruderStepper:
if not pressure_advance:
new_smooth_time = 0.
toolhead = self.printer.lookup_object("toolhead")
- toolhead.note_step_generation_scan_time(new_smooth_time * .5,
- old_delay=old_smooth_time * .5)
+ if new_smooth_time != old_smooth_time:
+ toolhead.note_step_generation_scan_time(
+ new_smooth_time * .5, old_delay=old_smooth_time * .5)
ffi_main, ffi_lib = chelper.get_ffi()
espa = ffi_lib.extruder_set_pressure_advance
- espa(self.sk_extruder, pressure_advance, new_smooth_time)
+ toolhead.register_lookahead_callback(
+ lambda print_time: espa(self.sk_extruder, print_time,
+ pressure_advance, new_smooth_time))
self.pressure_advance = pressure_advance
self.pressure_advance_smooth_time = smooth_time
cmd_SET_PRESSURE_ADVANCE_help = "Set pressure advance parameters"