@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