Introduce PIN_PROBE for Enhanced Multi-Probe Compatibility #6663

I found an interesting pull request on github. With the introduction of eddy probe, it would be nice to have the ability to work with multiple probes. I’ve copy and pasted the pull request below: Introduce PIN_PROBE for Enhanced Multi-Probe Compatibility by menelike · Pull Request #6663 · Klipper3d/klipper (github.com)

Overview:

This PR introduces the PIN_PROBE, a new feature modeled after the existing PROBE functionality. The primary motivation is to support advanced calibration techniques by integrating tools like the klicky probe with the klipper_z_calibration and the eddy probe.

Rationale:

The eddy probe excels in fast and precise BED_MESH_CALIBRATE but falls short in homing precision and z_offset determination at critical points, such as the bed center, compared to the klicky probe. This discrepancy becomes significant on different PEI sheet coatings which affect scanning results. Furthermore, the eddy probe requires recalibration following nozzle changes and involves a cumbersome thermal drift compensation process.

This PR aims to leverage the klicky probe’s high accuracy for critical measurements and the eddy probe’s rapid scanning capabilities, thus offering an optimal calibration experience.

Technical Implementation:

Currently, this PR serves as a proof of concept (POC) and lacks documentation and tests. The implementation borrows heavily (e.g. copy/paste and therefore repetitive code) from probe.py, with modifications primarily in command registration and naming conventions, e.g., QUERY_PIN_PROBE PROBE=klicky.

Proposed Changes for Discussion:

  1. Refactoring Shared Logic: Integrate probe_name as a parameter in relevant classes within probe.py to address the current limitation of configuring only one probe.
  2. Command Registration: Replace register_command with register_mux_command in probe.py. For backward compatibility, a default parameter could mimic the behavior of the existing QUERY_PROBE command.
  3. Enhancing Multi-Probe Support: We should consider architectural changes to make Klipper compatible with multiple probes simultaneously, which presents a challenge given the current design where the probe instance is singular and fixed.

Link to Counterpart Implementation:
Counterpart on klipper_z_calibration

Conclusion:

This dual-probe approach promises to significantly enhance the calibration precision (makes thermal drift compensation obsolete) and operational flexibility of Klipper setups.

Moved to feature requests

Ah - sorry. you’re right - i picked the wrong category.