Basic Information:
 Printer Model: Prototype
 MCU / Printerboard: Manta M8P V2
 Host / SBC CM4
 klippy.log None
Describe your issue:
Hi! I’m developing a new machine with an IDEX system and I’d like to achieve the following:
I’ve installed piezo sensors on both toolheads, so I can probe any axis with either tool. At a minimum, I want to measure the Z-offset between the two nozzles: probe Z with T0, then probe Z with T1, compute the difference, and apply it via SET_GCODE_OFFSET Z_ADJUST=... for multi-material prints. Ideally, I’d like to extend this process to X/Y alignment as well.
However, since piezo readings depend on how well they’re mounted, I don’t fully trust them for absolute Z homing. Therefore, I’d like to home Z using a separate, more reliable sensor (inductive, BLTouch, etc.), and after homing, perform Z probing with the piezos to calculate the inter-tool offsets.
I’ve seen that the Lynxter machines have a system for automatic dual XYZ nozzle calibration (I don’t know which firmware they use), but my goal would be to create something similar in Klipper to automatically calibrate the XYZ offsets between both toolheads.
Questions:
- Is there a native or recommended way in Klipper to:
- Probe Z with T0andT1to automatically determine and apply their Z-offset?
- Optionally do something similar for X/Y offsets?
- If not, which part of the configuration or code (homing, probe, macros, etc.) would be best to modify to implement this? I can modify Klipper’s source code directly if needed; I’m not limited to macros-only approaches.
- Can Klipper home Z with one sensor and then perform piezo-based probing for calibration?
Intended workflow (Z only, for now):
- Home Z using a conventional sensor (inductive/BLTouch/etc.).
- Probe Z with T0using the piezo to get its offset relative to Z=0.
- Probe Z with T1using the piezo to get its offset relative toT0.
- Apply the result using SET_GCODE_OFFSET Z_ADJUST=....
The final goal is to develop a dual-tool XYZ calibration system similar in concept to the one used by Lynxter printers, but implemented within Klipper.
Thanks
