I’m looking to do a bit of hacking on my printer, and before I get started I would like to understand the protections that klipper provide. If I request a move to a coordinate that is out of range on an axis, klipper will helpfully refuse with a Move out of range
error.
If instead I were to request many tiny moves at high feedrate, so that things are travelling at max speed towards the end of an axis, will that trigger any safety limits or am I likely to crash into the end of the axis?
It does not matter if the limit is exceeded by one big move or many small movements.
I understand that any move to an out of bounds coordinate would get rejected. What I’m after is more like if the printer is going too fast to stop on time before hitting the end of the axis (ie, the last full speed move being to the highest coordinate that is still in bounds).
Klipper does not execute commands that would take it from the current position to an out of range condition.
It is possible that it will crash into the end of the axis.
Klipper is not a safety system. It is not safety certified, and should not be used in any situations where risk of injury exists or where potential damage is not acceptable to the user.
If you have a high feed rate, that might be significant inertia. Stopping such movement cannot occur immediately. Klipper will stop commanding movement, but this may not be enough to stop the existing axis movement.
It would be suggested that you configure your Klipper limits to be some distance within the physical constraints of your axis movement to further reduce the likelihood of a physical collision.
IMO this should not be a major concern. Klipper does not execute commands that would take it beyond the limits. The safety condition is checked before starting the movement.
This means you cannot create a situation where you take the whole distance to build up speed and Klipper tries to break like 1 µm before you crash into the wall.
If you start a movement like 1 µm before the limit, then you typically do not get the velocity build up that inertia is a risk.
Agree to @Sineos.
If you want to go, for example, x_max + 0.01
, Klipper inhibits the movement.
If you want to go x_max - 0.01
at full speed, Klipper de-accelerates the movement just in time.
I think that’s the answer I was looking for. Thank you!
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.