Hi I found and identified what I consider a bug with using manual_steppers. Pertinent config and macro info below, then the issue. It is really not something the klippy.log would have, so no real need to upload it.
As configured in my printer.cfg:
[include macros.cfg]
[manual_stepper stepper_u]
step_pin: EBB_000:PD0
dir_pin: EBB_000:PD1
enable_pin: !EBB_000:PD2
#endstop_pin: EBB_000:PB6
microsteps: 16
rotation_distance: 40
endstop_pin: !PB10
As configured in my macros.cfg:
[gcode_macro HOME_U]
gcode:
# we tell klipper stepper_u is at position zero, then we move to an impossible negitive distance to home
MANUAL_STEPPER STEPPER=stepper_u SET_POSITION=0 # We give it a starting point
MANUAL_STEPPER STEPPER=stepper_u ENABLE=1 MOVE=3 SPEED=5 # If it is already touching the endstop, we move it up to make sure it is not.
MANUAL_STEPPER STEPPER=stepper_u ENABLE=1 MOVE=-200 SPEED=50 STOP_ON_ENDSTOP=1 #Here we tell U to move to a negitive position well beyond the endstop to ensure we hit it, then we stop. Fast moving.
MANUAL_STEPPER STEPPER=stepper_u SET_POSITION=0 # We are at the endstop, and that is positon zero, so we set it again.
# below is an attempt to increase endstops accuracy.
MANUAL_STEPPER STEPPER=stepper_u MOVE=3 SPEED=5 # We move up off of the endstop slowly.
MANUAL_STEPPER STEPPER=stepper_u SET_POSITION=0 # We are homing so we set the possion to zero again.
MANUAL_STEPPER STEPPER=stepper_u ENABLE=1 MOVE=-200 SPEED=5 STOP_ON_ENDSTOP=1 # Here we tell U to move to a negitive position well beyond the endstop to ensure we hit it, then we stop. Fast slowly.
MANUAL_STEPPER STEPPER=stepper_u SET_POSITION=0 # We are at the endstop, and that is positon zero, so we set it again.
This is were the bug is:
MANUAL_STEPPER STEPPER=stepper_u ENABLE=1 MOVE=-200 SPEED=50 STOP_ON_ENDSTOP=1
Even if the endstop was hit at lets say -10, you will still have to wait for the time it would take to go the entire -200. If we are telling it to stop at the endstop, then it will stop and move no father anyway, so it should just exit the move at that point and continue executing.
If I set the speed to SPEED=100, it is almost undetectable, but I really do not want that stage moving that fast, ever. 50 is really too fast as well. I tested it multiple times, and I am sure what that is the reason for the long pause. If you would like a video o f it, please just let me know and I will provide it. If you use my macro, you will see the delay I am describing easily.
System info: