diff options
Diffstat (limited to 'docs/Multi_MCU_Homing.md')
-rw-r--r-- | docs/Multi_MCU_Homing.md | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/docs/Multi_MCU_Homing.md b/docs/Multi_MCU_Homing.md new file mode 100644 index 00000000..22d2508e --- /dev/null +++ b/docs/Multi_MCU_Homing.md @@ -0,0 +1,42 @@ +# Multiple Micro-controller Homing and Probing + +Klipper supports a mechanism for homing with an endstop attached to +one micro-controller while its stepper motors are on a different +micro-controller. This support is referred to as "multi-mcu +homing". This feature is also used when a Z probe is on a different +micro-controller than the Z stepper motors. + +This feature can be useful to simplify wiring, as it may be more +convenient to attach an endstop or probe to a closer micro-controller. +However, using this feature may result in "overshoot" of the stepper +motors during homing and probing operations. + +The overshoot occurs due to possible message transmission delays +between the micro-controller monitoring the endstop and the +micro-controllers moving the stepper motors. The Klipper code is +designed to limit this delay to no more than 25ms. (When multi-mcu +homing is activated, the micro-controllers send periodic status +messages and check that corresponding status messages are received +within 25ms.) + +So, for example, if homing at 10mm/s then it is possible for an +overshoot of up to 0.250mm (10mm/s * .025s == 0.250mm). Care should be +taken when configuring multi-mcu homing to account for this type of +overshoot. Using slower homing or probing speeds can reduce the +overshoot. + +Stepper motor overshoot should not adversely impact the precision of +the homing and probing procedure. The Klipper code will detect the +overshoot and account for it in its calculations. However, it is +important that the hardware design is capable of handling overshoot +without causing damage to the machine. + +Should Klipper detect a communication issue between micro-controllers +during multi-mcu homing then it will raise a "Communication timeout +during homing" error. + +Note that an axis with multiple steppers (eg, `stepper_z` and +`stepper_z1`) need to be on the same micro-controller in order to use +multi-mcu homing. For example, if an endstop is on a separate +micro-controller from `stepper_z` then `stepper_z1` must be on the +same micro-controller as `stepper_z`. |