Basic Information:
Printer Model: Ender 5 S1 (Without Z Limit Switch)
MCU / Printerboard: RPI Zero 2 W
klippy.log (3.4 MB)
Hi all,
i have just setup my Ender 5 S1 with Klipper and adjusted the
printer.cfg (6.1 KB).
After a manual Bed-Leveling, i wanted to level bed with the auto leveling.
But now the second time when i click ob calibrate (directly in fluidd or via macro) the nozzle crashes into the bed and stops after the bed gets pressed down 2 cm at that point.
I think the printer is still ok but do you guys can help me with the settings i need for auto bed mesh calibration?
BR
Daniel
If that’s the most recent printer.cfg you’ve posted here, it looks like you didn’t enter SAVE_CONFG into the console when the calibrate was complete (You should have gotten a message telling you to do that).
Hi,
i cant enter save_config, when there is nothing to save.
After I start the calibration, the Print head crashes into the Bed. After the first probe, my bed is pushed down ca. 2 cm and the calibration stops.
I’m wondering why this happens.
Rereading what you’ve wrote.
Could you explicitly explain what you’ve done here? I’m not sure what you mean by a “manual Bed-Leveling” - could you please explain?
A few other things:
- Is this a genuine BL Touch or from another manufacturer?
- Before trying to the calibration with the BL Touch, did you test the operation of the BL Touch by following the instructions found here:
https://www.klipper3d.org/BLTouch.html#initial-tests
- In your
printer.cfg, you have the coordinates for your BL Touch 45mm away from the nozzle. Is this correct? I’m asking because that’s a pretty good distance - I don’t think that is the problem here but I’m curious.
You always can enter save_config - even on a freshly started system.
To the mesh min/max values. Better leave a margin of 5 mm for safety, so:
...
mesh_min = 5, 50
mesh_max = 205,205
...
Hi all,
thank you for your help.
I copied a leveling Macro from an Ender 3 S1 and it worked.
Now the Bed mesh ist working.
For those who care:
[gcode_macro BED_MESH_CALIBRATE]
rename_existing: BED_MESH_CALIBRATE_BASE
; gcode parameters
variable_parameter_AREA_START : 0,0
variable_parameter_AREA_END : 0,0
; the clearance between print area and probe area
variable_mesh_area_offset : 5.0
; number of sample per probe point
variable_probe_samples : 2
; minimum and maximum probe count
variable_min_probe_count : 3
; scale up the probe count, the vlaue should be 1.0 ~ < max/min probe count
variable_probe_count_scale_factor : 1.0
gcode:
{% if params.AREA_START and params.AREA_END %}
{% set bedMeshConfig = printer["configfile"].config["bed_mesh"] %}
{% set safe_min_x = bedMeshConfig.mesh_min.split(",")[0]|float %}
{% set safe_min_y = bedMeshConfig.mesh_min.split(",")[1]|float %}
{% set safe_max_x = bedMeshConfig.mesh_max.split(",")[0]|float %}
{% set safe_max_y = bedMeshConfig.mesh_max.split(",")[1]|float %}
{% set area_min_x = params.AREA_START.split(",")[0]|float %}
{% set area_min_y = params.AREA_START.split(",")[1]|float %}
{% set area_max_x = params.AREA_END.split(",")[0]|float %}
{% set area_max_y = params.AREA_END.split(",")[1]|float %}
{% set meshPointX = bedMeshConfig.probe_count.split(",")[0]|int %}
{% set meshPointY = bedMeshConfig.probe_count.split(",")[1]|int %}
{% set meshMaxPointX = meshPointX %}
{% set meshMaxPointY = meshPointY %}
{% if (area_min_x < area_max_x) and (area_min_y < area_max_y) %}
{% if area_min_x - mesh_area_offset >= safe_min_x %}
{% set area_min_x = area_min_x - mesh_area_offset %}
{% else %}
{% set area_min_x = safe_min_x %}
{% endif %}
{% if area_min_y - mesh_area_offset >= safe_min_y %}
{% set area_min_y = area_min_y - mesh_area_offset %}
{% else %}
{% set area_min_y = safe_min_y %}
{% endif %}
{% if area_max_x + mesh_area_offset <= safe_max_x %}
{% set area_max_x = area_max_x + mesh_area_offset %}
{% else %}
{% set area_max_x = safe_max_x %}
{% endif %}
{% if area_max_y + mesh_area_offset <= safe_max_y %}
{% set area_max_y = area_max_y + mesh_area_offset %}
{% else %}
{% set area_max_y = safe_max_y %}
{% endif %}
PRINT MSG="Set custom mesh area to ({area_min_x},{area_min_y}),({area_max_x},{area_max_y})" OUTPUT_TARGET=1
{% set meshPointX = (meshPointX * (area_max_x - area_min_x) / (safe_max_x - safe_min_x) * probe_count_scale_factor|float)|round(0)|int %}
{% if meshPointX < min_probe_count %}
{% set meshPointX = min_probe_count %}
{% endif %}
{% if meshPointX > meshMaxPointX %}
{% set meshPointX = meshMaxPointX %}
{% endif %}
{% set meshPointY = (meshPointY * (area_max_y -area_min_y ) / (safe_max_y - safe_min_y) * probe_count_scale_factor|float)|round(0)|int %}
{% if meshPointY < min_probe_count %}
{% set meshPointY = min_probe_count %}
{% endif %}
{% if meshPointY > meshMaxPointY %}
{% set meshPointY = meshMaxPointY %}
{% endif %}
PRINT MSG="Set custom mesh matrix to {meshPointX}x{meshPointY}" OUTPUT_TARGET=1
PRINT MSG="Mesh: {meshPointX}x{meshPointY}" OUTPUT_TARGET=2
BED_MESH_CALIBRATE_BASE mesh_min={area_min_x},{area_min_y} mesh_max={area_max_x},{area_max_y} probe_count={meshPointX},{meshPointY} samples={probe_samples|int}
{% else %}
PRINT MSG="Invalid custom mesh parameters, probe using default setting" OUTPUT_TARGET=1
PRINT MSG="Mesh: default" OUTPUT_TARGET=2
BED_MESH_CALIBRATE_BASE
{% endif %}
{% else %}
PRINT MSG="Invalid custom mesh parameters, probe using default setting" OUTPUT_TARGET=1
PRINT MSG="Mesh: default" OUTPUT_TARGET=2
BED_MESH_CALIBRATE_BASE
{% endif %}