Detailed ref on X/Y offsets BLtouch and IDEX tool head
-
Good Day all
I have been working alot on a IDEX calibration tool and I think I have been looking at it too long and starting to confuse myself. Could someone have a look at my explanation and ensure I am seeing this correctly
Primary print head, - BLtouch probe is physically located Y- and X positive (in front and to the right) of the nozzle
BLtouch offset - config.g - G31 P500 X5 Y-15 (measured with calipers)This makes my Probe offset so if the probe itself is X positive from the nozzle this makes the positive because the point we are always to ref to is the primary nozzle. Everything is ref from this center point.
Following this if the BLtouch is Y negative from the nozzle this would make the Y offset negativeQuestion below:
Now that being said, This printer has 2 different style print heads on each of the IDEX heads. The secondary print head is physically slightly X negative (secondary to the left of the primary but mounted to the Y gantry. This makes the Y tool offset negative correct?
My thinking is: what is the physical direction of the secondary nozzle based on the location of the primary nozzle. (what direction to you need to travel in the X direction to locate the secondary nozzle) this direction is negative. is this statement correct?
Can some explain to me in the same kind of terms, what are the 2 points we are measuring to find the U offset?
-
@Macgyver, I also have a hard time keeping the offset meanings (both probes and tools) correct in my brain. As such, I'm not willing to try to turn the contents of my brain into sentences at the risk of getting it backwards and making it harder for you! That said, I have a macro that probes a fixed point with each of my 2 idex nozzles and updates the tool offset based on the results of probing. Here is the macro on the off chance that it helps you visualize the offsets:
if ! exists(tools[1]) abort "idex-calibration failed, no second tool" if global.probe_block_middle == null || global.probe_block_diameter == null abort "idex-calibration failed, no probe block defined" T0 M98 P"/sys/wipe-for-probing.g" M98 P"/sys/probe-block.g" var p0 = global.last_probe_result var needs_calibration = true while var.needs_calibration && iterations < 3 T1 M98 P"/sys/wipe-for-probing.g" M98 P"/sys/probe-block.g" var p1 = global.last_probe_result var d_u = var.p0[0] - var.p1[0] var d_y = var.p0[1] - var.p1[1] var d_z = var.p0[2] - var.p1[2] if abs(var.d_u) < 0.1 && abs(var.d_y) < 0.1 set var.needs_calibration = false echo "Current offets:", tools[1].offsets[3], ",", tools[1].offsets[1], ",", tools[1].offsets[2] echo "Correction:", var.d_u, ",", var.d_y, ",", var.d_z G10 P1 U{tools[1].offsets[3] + var.d_u} Y{tools[1].offsets[1] + var.d_y} Z{tools[1].offsets[2] + var.d_z} echo "New offets:", tools[1].offsets[3], ",", tools[1].offsets[1], ",", tools[1].offsets[2]
FYI, var.p0 is the (x,y,z) position of the fixed point as probed by T0 and var.p1 is the (x,y,z) position of the same fixed point as probed by T1 and it computes the delta between the two points as p0 - p1 and then sets the tool offsets as old_offset + delta