Klipper Nozzle Collision Homing
This feature requires the BD sensor firmware version (you can obtain this version by sending M102 S-1, not the hardware version on the sensor) to be V1.1b, greater than V1.2b, or purchased after March 2024; otherwise, you need to use an external hardware tool (such as STlink) to flash the firmware into the BD sensor.
When performing homing operations on soft PEI (such as Whambam), do not heat the nozzle excessively, as high temperatures may leave holes in the PEI.
How it works
- If the nozzle or bed surface stops due to collision, the distance data measured by the BD sensor will also stop changing, and then the BD sensor will quickly output a stop signal.
- The process of automatic z_offset calibration when executing G28: it can trigger after the nozzle touches the bed surface during the homing process — then slowly move upward until the nozzle just leaves the bed surface — set this position as the Z-axis zero point.
Benefits
- Auto z-axis offset calibration.
- You can still manually adjust the z-axis offset for different filaments.
- Overcome 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 is the same even if the temperature is different.
How to use
- Add
collision_homingandcollision_calibrateto the [BDsensor] section.
[BDsensor]
collision_homing:0 # set it 1 to enable homing with nozzle collision sensing. disable it by setting 0. # Set it to 1 to enable homing with nozzle collision sensing. Set it to 0 to disable this function.
collision_calibrate:0 # set it 1 to enable auto calibrate BDsensor with nozzle collision sensing. disable it by setting 0. # Set it to 1 to enable auto calibration of the BD sensor with nozzle collision sensing. Set it to 0 to disable this function.
# that means we do not need to manual move the nozzle on the bed and do paper test before sending calibrate command M102 S-6. # This means we do not need to manually move the nozzle on the bed and perform the paper test before sending the calibrate command M102 S-6.
- Sensitivity depends on speed; the slower the speed, the higher the sensitivity, so you need to adjust the Z-axis speed. 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. Please 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 will trigger in the 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 and homing_retract_dist should be set to 5 or greater.
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. # This speed only works for the z tilt and PROBE_ACCURACY command.
...
Reference configuration zero_reference_position
[bed_mesh]
horizontal_move_z:1 # 0.7~1.0mm is recommended # It is recommended to use 0.7~1.0mm.
zero_reference_position: 150, 160 # Set this value to be the same as home_xy_position that is in the section # 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 if the output data on the console after each G28 Z command is stable.
G28 Z