Using TMC2209 "sensorless homing" as a safety fallback for Z

As far as I understand the “sensorless homing” feature of TMC2209 drivers works like this:

  • stepper moves towards 0 in X or Y direction
  • TMC2209 reports back the current used by the stepper
  • when the current reaches a certain threshold is means that the stepper has reached an obstacle (the end of the axis). This would be considered the 0 position.

It works for X and Y because a high accuracy is not needed, but it’s not accurate enough for Z.

I was thinking, why don’t we use it for Z, but as a safety feature and not as endstop?
Basically set some current threshold which would not trigger when a regular probing is done, but would trigger when a toolhead/nozzle is ramming into the build plate. This would essentially prevent a lot of mechanical failures when a probe fails or coordinates are not set correctly. Or you accidentally start a print and forget to remove the previous print :slightly_smiling_face:

Surely I’m not the first to come up with this idea. Is it something that can be configured with Klipper out of the box?
Is anything preventing an implementation of this in theory?

An interested developer would need to more or less completely rewrite Klipper’s homing procedure, which is already quite complex and involved.

To prevent endstop failures one should use NC ones that open when triggered. A cable failure will open/trigger them too, preventing unwanted movement in such a case.
As Z axes have a higher transmission ratio than the other axes they also have a torque multiplier and slower speed.
Sensorless homing however needs a minimum speed to work.
If you can’t achieve this speed and then have this high torque in place you might cause more damage than you wanted to prevent with this solution.
Just my thoughts on that topic.:nerd_face:

1 Like

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.