Faster Z Homing with dual endstop (switch + probe)



  • Hello

    As the title sais, I'd like to add a second endstop to speed up the homing of my Z axis for my CoreXY.
    I'm having a BLTouch probe and due to its nature and for sake of safety the homing speed is pretty slow.
    But as many of you may know, with a bigger size printer homeing Z can take quite a while, specially when you are down to 300 or 400mm on that axis.

    So my idea is, to add a regular switch to the Z axis, for fast homing to bring the bed close to the probe... lets say 10 or 15mm, and then proceed the the proper (slow) homing via probe.

    I have been searching around and checking the g-codes but didnt really find anything yet.
    I found the M577 with S3, but there is no real explanation of this option.

    Any help appreciated.



  • How fast will your CoreXY's Z axis actually move at full speed?

    Is the tiny amount of time (relative to how long any significant model takes to print) that it takes to home your Z axis really worth trying to shorten?



  • You can modify the homing speed for the BLTouch temporarily to make the initial G30 dive faster.

    M558 A1 F400			; Set single probing at faster feed rate
    G30 				; Do a single probe to home our Z axis
    M558 A10 F100			; Set multi probing at slower feed rate
    G30				; Probe again to get a more accurate position
    

    You could add a seperate switch if you wished and simply configure it in your homing macros before use and then use G30 for the probe.

    If you don't trust the BLTouch to home fast, why trust it to home slow? You should be reducing the motor current for homing moves anyway.



  • Well, my regular travel speed is at 1000mm/min, and probing speed is 100mm/min, so its noticably different.
    And I'm kind of afraight to raise the probing speed that much as idk how the probe will react to faster movements... i dont wanna crush my glass bed 🙂
    So I kind of wanted to use full speed homing to that second endstop.



  • Well with the motor currents minimized there's. It much difference between the probe or an endstop. Ideally if the current is low enough even a crash should just cause the motors to skip.

    An optical endstop could be used to allow for passing through it. But you have to ensure you're always going to be below it before homing.

    But the bltouch will behave the same even at higher speeds. It's nothing more than a switch itself.



  • @Nightreaver said in Faster Z Homing with dual endstop (switch + probe):

    Well, my regular travel speed is at 1000mm/min, and probing speed is 100mm/min, so its noticably different.
    And I'm kind of afraight to raise the probing speed that much as idk how the probe will react to faster movements... i dont wanna crush my glass bed 🙂
    So I kind of wanted to use full speed homing to that second endstop.

    I don't see any reason why you cannot initially home with the BL-Touch at 1000mm/min. Antclabs, in their own documentation, have suggested using a feed rate of 1500mm/min for the fast homing phase and 375mm/min for the slower probe.

    See: https://www.reprap.me/media/support/BLTouch-Classic1122.pdf



  • @Nightreaver You just need a switch which triggers near the top position of the bed but allows the bed to rise further, keeping the switch triggered. In homez.g, you use the switch for a first (and fast) approximation, then, you move over to the Z-probe. I’ve exactly done that with my cartesian and am very happy with this solution. It’s all in homez.g, so that macro has to be invoked whenever Z is to be homed. Here’s my homez.g - for your CoreXY, you just have to think Z upside down. And, as I don’t use a BLTouch, you will have to adjust the corresponding Gcodes accordingly.

    ; Home the Z-axis
    
    ; Z homing happens in 3 steps:
    ;	1. Move down until the Z switch triggers (if already at or below this level, this is a NOP).
    ;	2. Move up until we are well above the trigger level, then go down until the switch triggers.
    ;		This move sets Z to a well defined level above the bed (well, it's not really that precise).
    ;	3. Slowly step down to the bed surface using the analog probe.
    ; This approach ensures that we do not exceed the top end of the Z axis, which might happen if the
    ; print head was moved up before to get it out of the way. In our second step, we reach a well defined
    ; height. Then, we lower the distance to the bed and deploy the probe to perform the final adjustment.
    
    
    M400								; wait until all moves are finished
    
    G91								; relative mode
    M574 Z1 S1							; Z axis uses switch
    G1 H1 Z-400 F6000						; move Z down (if switch is not triggered) until the switch triggers
    G1 H2 Z20 F6000							; raise head 20 mm to ensure it is above the trigger level
    G1 H1 Z-25 F500							; move Z down slowly until the switch triggers
    G92 Z10								; say this height is 10 mm above a provisional 0 
    G90								; back to absolute mode
    
    M564 S0								; unlimit axes
    G1 X0 Y-10 Z0 F10000						; put head over the center of the bed (Note: compensate for probe Y offset)
    M400								; wait until all moves are finished
    
    ; set up the Z probe:
    M574 Z1 S2							; Z axis uses probe
    M558 P1 F400 T10000 H4 A9 S0.004 R0.0				; mode 1 (analog in), F=probing speed, T=travel speed, H=dive height
    								; 				A=repetitions, S=tolerance, R=recovery time
    G31 T1 P500 X0 Y9 Z2.20						; configure probe physics; P=trigger value, Z=probe offset
    
    G30								; run probe, stop when probe triggers and set Z to trigger height
    M564 H1 S1							; limit the axes
    

Log in to reply