Printer Model: Custom
MCU / Printerboard: RADDS klippy.log not needed
Describe your issue:
Hey everyone. I have a question regarding the printer.objects, specifically printer.toolhead.axis_maximum
I have an IDEX printer with the following config:
[stepper_x]
position_endstop: -97
position_min: -105
position_max: 235
[dual_carriage]
axis: x
position_endstop: 327
position_min: -3
position_max: 335
Now, when I run a macro (for parking of the tool), I expect the value of printer.toolhead.axis_maximum to reflect the value of the current tool (T0 or T1), but I get the same values no matter if T0 or T1 is active. Since printer.toolhead.extruder returns the currently active extruder, I would surely expect printer.toolhead.axis_maximum to be dependent on the ACTIVE extruder, but no matter what, printer.toolhead.axis_maximum returns 235. Is this a bug or by design?
The values I’m looking for are not listed in printer.configfile.settings.extruder either. That surely must be a bug!?
Unfortunately, that results in a Move out of range at some point during my prints.
Running latest klipper v0.11.0-14-g69f76b3b
Thanks for your reply, Eddy. I posted the same question on discord group, but (again) got zero response
Who said that?
That must have been me I cleared the log, restarted firmware and did a G28 / MOVE_TO_CALIBRATION_CAM / T1 / MOVE_TO_CALIBRATION_CAM, here’s the output: klippy.log (245.0 KB)
position_min and position max can’t be beyond the endstop positions.
In my understanding position_endstop needs to be in between the physical limits of my axis which is defined by position_min and position_max. Found this info in this post, quote It means the head can move even past the endstop for the given distance.
If I don’t add a padding to my endstop I get out-of-range warnings. It works. Not a problem so far.
What does printer.toolhead.axis_maximum refer to if not the physical limit? I am confused.
Sidenote: For now, I’m using
x_park = printer.configfile.settings.stepper_x.position_min for my left extruder T0 and
x_park = printer.configfile.config.dual_carriage.position_max for my right extruder T1.
But to me that seems wrong and workaroundish.
What a pitty I never get answers to my questions regarding klipper. Tried discord, now discourse - to no avail. I’m a big fan of Klipper Firmware, but community and support is lacking compared to other projects. Shame.
The printer.toolhead.axis_maximum is intended to be the maximum build range (irrespective of toolhead) in cartesian coordinate space. It was intended to be a useful reference for delta, polar, and similar complex kinematics where printer.configfile.xxx doesn’t provide that information.
Arguably, it is a bug that these static values don’t include the dual_carriage ranges. Someone would need to submit a PR with a fix if there is interest in resolving that.