Klipper Nozzle Collision Homing Installation
This feature requires the BD sensor firmware version (you can obtain this by sending M102 S-1, not the hardware version on the sensor) to be V1.1b, greater than V1.2b, or a version purchased after March 2024. Otherwise, you will need to use an external hardware tool (like an STlink) to flash the firmware onto the BD sensor.
When homing on soft PEI (like Whambam), do not heat the nozzle too high, as high temperatures may create holes in the PEI.
How It Works
- If the nozzle or bed stops due to a collision, the distance data measured by the BD sensor will also stop changing. The BD sensor will then quickly output a stop signal.
- The process of automatic z_offset calibration during G28 execution: It can be triggered after the nozzle touches the bed during homing—then slowly moves upward until the nozzle just leaves the bed—setting this position as the z-axis zero point.
Benefits
- Automatic z-axis offset calibration.
- You can still manually adjust the z-axis offset for different filaments.
- Overcomes temperature drift.
- Temperature drift changes the z-axis offset but does not change the range of the bed mesh height map with the BD sensor. This means the bed mesh remains the same even at different temperatures.
How to Use
- Add
collision_homingandcollision_calibrateto the [BDsensor] section.
[BDsensor]
collision_homing:0 # Set it to 1 to enable homing with nozzle collision sensing. Disable it by setting it to 0.
collision_calibrate:0 # Set it to 1 to enable auto-calibration of the BD sensor with nozzle collision sensing. Disable it by setting it to 0.
# This means we do not need to manually move the nozzle on the bed and perform a paper test before sending the calibration command M102 S-6.
- Sensitivity depends on speed; slower speeds result in higher sensitivity. Therefore, you need to adjust the Z-axis speed. The homing_speed and second_homing_speed should be in the range of 2 to 5.
The nozzle should be cleaned or heated to soften filament residue. Do not set the speed too high or too low. If the speed is too high, it may damage your hotend or print bed; if the speed is too low, it may trigger in mid-air without the nozzle actually touching the print bed.
Reference Configuration
[stepper_z]
endstop_pin: probe:z_virtual_endstop
#position_endstop: 0.0
position_max: 250
homing_speed: 5
second_homing_speed: 3
homing_retract_dist: 5
homing_retract_speed: 2
z_hop (Z-axis hop height) and homing_retract_dist (homing retract distance) should be greater than or equal to 5.
Reference Configuration
[safe_z_home]
z_hop: 5
[stepper_z]
homing_retract_dist: 5
[BDsensor]
...
speed: 3 # This speed only works for the z tilt and PROBE_ACCURACY command.
...
Reference configuration for zero_reference_position
[bed_mesh]
horizontal_move_z: 1 # 0.7~1.0mm is recommended.
zero_reference_position: 150, 160 # Set this value to the same coordinates as home_xy_position in the safe_z_home section.
....
Test Homing
Please send the G28 Z command approximately 10 times, then check whether the output data on the console is stable after each G28 Z command.
G28 Z