Klipper Installation Nozzle Collision Detection
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 will need to use an external hardware tool (such as an STlink) to flash the firmware into the BD Sensor.
When performing homing with a soft PEI (such as Whambam), do not overheat the nozzle, as high temperatures may leave holes on 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, and then the BD Sensor will quickly output a stop signal.
- The automatic Z-offset calibration process during execution of G28: it can be triggered after the nozzle touches the bed during homing—then slowly move upward until the nozzle just clears the bed—this position is set 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 affect the bed mesh height map range with the BD Sensor. This means the bed mesh remains the same even at different temperatures.
How to Use
- Add
collision_homing
andcollision_calibrate
to 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 detection. Disable it by setting it to 0.
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 automatic calibration of the BD Sensor using nozzle collision detection. Disable it by setting it to 0.
# that means we do not need to manually move the nozzle on the bed and do a paper test before sending the calibration command M102 S-6.
- Sensitivity depends on speed; slower speeds provide higher sensitivity. Therefore, you need to adjust the Z-axis speed. The homing_speed and second_homing_speed should be within the range of 2 to 5.
The nozzle should be cleaned or heated to soften any residual filament. 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 too low, it may trigger in the air without the nozzle actually touching the print bed.
Sample 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
The z_hop
and homing_retract_dist
should be greater than or equal to 5.
Sample 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.
...
Refer to the 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 be the same as home_xy_position that is in the safe_z_home section.
....
Test Homing
Send approximately 10 G28 Z
commands and check whether the output data on the console after each G28 Z
command is stable.
G28 Z