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:
- Refactoring Shared Logic: Integrate
probe_name
as a parameter in relevant classes withinprobe.py
to address the current limitation of configuring only one probe. - Command Registration: Replace
register_command
withregister_mux_command
inprobe.py
. For backward compatibility, a default parameter could mimic the behavior of the existingQUERY_PROBE
command. - 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: