Klipper自动调平校准一些感想

概论

这里提供两种自动调平方式,其他的之后在补充
第一种是用接近开关当探头,使用固定z限位来定位回原

第二种是使用bltouch作为探针和定位回原用。

床网

床网参数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[bed_mesh]
speed: 200 #探针在探测点之间移动的速度
horizontal_move_z: 10 #探针在移动前上升到的距离
mesh_min: 70,50 #第一个探测的坐标,最接近原点。该坐标是相对于探针的位置的
mesh_max: 950,950 #距离原点最远的探测坐标。这不一定是探测的最后一点
probe_count: 6,6 #每个轴上要探测的点数
#mesh_pps: 3,3 #此选项指定沿x和y轴为每个线段插入多少个点
algorithm: bicubic #用于插值网格的算法
bicubic_tension: 0.2
#fade_start: 1 #开始逐步淘汰调整的Z高度。在开始淡入淡出过程之前,最好先减少几层
#fade_end: 0 #可以根据打印表面的弯曲程度来调整此值
#fade_target: 0 #可以被认为是附加的Z偏移褪色完成之后施加到整个床的

zero_reference_position: 125, 110 # 相对零点,就是热床中心位置,床网从这里展开,无不偿

床网范围配置

image

探测床网时的坐标变化

我们设置的床网范围坐标一般是指的喷头在该探测点时的坐标。
在探测床网时,如果探针和喷头不在同一个位置,则会将探针移动到我们设置的床网探测点位的位置来探测该点的偏移值,所以探床网时的实际探测范围不等于我们设置的床网范围。
image

相对零点向两边补偿

床网中的zero_reference_position: 125, 110
是相对零点,就是热床中心位置,床网从这里展开,无不偿
同一个平台采用不同的相对零点,床网形状不变,但是参考平面会发生变化
image
image

一些理解

image

探针校准

配置文件中具有 [probe] 或 [bltouch] 部分的打印机需要进行

X、Y偏移值

x偏移值为 喷嘴X坐标值 - 探针X坐标值
Y偏移值为 喷嘴Y坐标值 - 探针Y坐标值

z 偏移(z_offset)

z 偏移是探针触发时床和喷嘴之间的高度差

可以使用PROBE_CALIBRATE命令测试,或者在主界面校准z偏移
该工具会运行一次自动探测以获取探针的 z 触发位置,然后需要手动调整Z坐标以获取喷嘴碰触到热床时的 z 高度。然后将根据这些测量值计算探针的 z 偏移。

BLtouch调平配置

3dtouch构造

线圈(一圈胶带) 霍尔传感器 芯片 探针

5根线

image

2pin : sensor传感器线

白色信号线,产生电平给主板,黑色接地
因为信号线是opendrain方式工作,所以白线需要接一个上拉电阻到3V3引脚保证重复精度。
image

3pin:控制用

橙色 控制线 发pwm信号
绿色 接地
红色 接5V

配置

  1. 配置bltouh

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    [bltouch]
    sensor_pin: PB15 # 信号引脚
    control_pin:PA8 # 控制引脚
    x_offset: 25 # 探针偏移值
    y_offset: 0 # 探针偏移值
    #z_offset: 1
    speed: 10.0
    samples: 2
    samples_result: median
    sample_retract_dist: 5.0
    samples_tolerance: 0.1
    samples_tolerance_retries: 1
  2. 配置bedmesh -> mesh_min,mesh_max,probe_count

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    [bed_mesh]
    speed: 200 #探针在探测点之间移动的速度
    horizontal_move_z: 10 #探针在移动前上升到的距离
    mesh_min: 70,50 #第一个探测的坐标,最接近原点。该坐标是相对于探针的位置的
    mesh_max: 950,950 #距离原点最远的探测坐标。这不一定是探测的最后一点
    probe_count: 6,6 #每个轴上要探测的点数
    #mesh_pps: 3,3 #此选项指定沿x和y轴为每个线段插入多少个点
    algorithm: bicubic #用于插值网格的算法
    bicubic_tension: 0.2
    #fade_start: 1 #开始逐步淘汰调整的Z高度。在开始淡入淡出过程之前,最好先减少几层
    #fade_end: 0 #可以根据打印表面的弯曲程度来调整此值
    #fade_target: 0 #可以被认为是附加的Z偏移褪色完成之后施加到整个床的
  3. stepper_z字段配置

    1. endstop_pin:probe:z_virtual_endstop
    2. 删除position_endstop
    3. position_min: -5 //改成负的
  4. 增加safe_z_home安全回原

    1
    2
    3
    4
    5
    [safe_z_home]
    home_xy_position: 500,500 # Change coordinates to the center of your print bed
    speed: 50
    z_hop: 3 # Move up 10mm
    z_hop_speed: 5
  5. 床网自动加载

    1
    2
    3
    4
    [delayed_gcode bed_mesh_init]
    initial_duration: .01
    gcode:
    BED_MESH_PROFILE LOAD=default

测试bltouch

参考官网

接近开关

接线

一般都是棕正蓝负黑信号

配置

  1. stepper_z字段

    1. position_min: -3 改成负的
  2. 增加safe_z_home安全回原字段

    1
    2
    3
    4
    5
    [safe_z_home]
    home_xy_position: 500,500 # Change coordinates to the center of your print bed
    speed: 50
    z_hop: 3 # Move up 10mm
    z_hop_speed: 5
  3. 配置probe字段 -> pin,xoffset,yoffset

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    [probe]
    ## 感应探头
    ## 这个调查不用于Z高度,只有四龙门水准
    ## NPN型和PNP型接近开关类型可以设置跳线
    pin:PB14 # 信号接口
    x_offset: 47 # X轴-传感器相对喷嘴偏移量
    y_offset: 1 # Y轴-传感器相对喷嘴偏移量
    #z_offset: 0 # Z轴-传感器相对喷嘴偏移量
    speed: 8 # 调平速度
    samples: 3 # 采样次数
    samples_result: median # 取值方式(默认median-中位数)
    sample_retract_dist: 8.0 # 调平回缩距离
    samples_tolerance: 0.01 # 采样公差(注意过小的值可能造成采样次数增加)
    samples_tolerance_retries: 3 # 超公差重试次数
  4. 床网 -> 床网大小mesh_min,mesh_max,, zero_reference_position: 195,232 床网的相对零点设成和safe_z_home坐标一致

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    [bed_mesh]
    speed: 50 #探针在探测点之间移动的速度
    horizontal_move_z: 10 #探针在移动前上升到的距离
    mesh_min: 77,31 #第一个探测的坐标,最接近原点。该坐标是相对于探针的位置的
    mesh_max: 437,466 #距离原点最远的探测坐标。这不一定是探测的最后一点
    probe_count: 7,7 #每个轴上要探测的点数
    #mesh_pps: 3,3 #此选项指定沿x和y轴为每个线段插入多少个点
    algorithm: bicubic #用于插值网格的算法
    bicubic_tension: 0.2
    zero_reference_position: 195,232
    fade_start: 1 #开始逐步淘汰调整的Z高度。在开始淡入淡出过程之前,最好先减少几层
    fade_end: 10 #可以根据打印表面的弯曲程度来调整此值
    fade_target: 0 #可以被认为是附加的Z偏移褪色完成之后施加到整个床的

  5. 床网自动加载

    1
    2
    3
    4
    5
    [delayed_gcode bed_mesh_init]
    initial_duration: .01
    gcode:
    BED_MESH_PROFILE LOAD=default

无探针校准床网

今天试了一下,不用探针也可以完成床网的校准。
首先配置好床网参数

  1. 设置床网参数

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    [bed_mesh]
    speed: 200 #探针在探测点之间移动的速度
    horizontal_move_z: 10 #探针在移动前上升到的距离
    mesh_min: 15,15 #第一个探测的坐标,最接近原点。该坐标是相对于探针的位置的
    mesh_max: 290,285 #距离原点最远的探测坐标。这不一定是探测的最后一点
    probe_count: 3,3 #每个轴上要探测的点数
    #mesh_pps: 3,3 #此选项指定沿x和y轴为每个线段插入多少个点
    algorithm: bicubic #用于插值网格的算法
    bicubic_tension: 0.2
    fade_start: 1 #开始逐步淘汰调整的Z高度。在开始淡入淡出过程之前,最好先减少几层
    fade_end: 10 #可以根据打印表面的弯曲程度来调整此值
    fade_target: 0 #可以被认为是附加的Z偏移褪色完成之后施加到整个床的
  2. stepper_Z字段里的position_min: 属性。安装你限位开关的类型不同填。我这里用的微动填position_min: -1

  3. 配置一下安全回原

    1
    2
    3
    4
    5
    [safe_z_home]
    home_xy_position: 165,160 # Change coordinates to the center of your print bed
    speed: 50
    z_hop: 2 # Move up 2mm
    z_hop_speed: 5
  4. 检查有没有probe , bltouch。参数,都删除掉

  5. 使用以以下命令探测床网(或者直接在屏幕上点校准床网)
    BED_MESH_CALIBRATE PROFILE=<name> METHOD=[manual | automatic]

  6. 默认加载网格

    1
    2
    3
    4
    [delayed_gcode bed_mesh_init]
    initial_duration: .01
    gcode:
    BED_MESH_PROFILE LOAD=default

问题与解决

Option ‘z offset’ in section ‘bltouch’ must have minimum of 0.0

image
产生的原因
使用z偏移校准时,喷头和平台的距离还有大概3mm就点击完成

解决方法
进入网页,打开printer.cfg文件,搜索z_offset
找到下图的字段,并更改
床网数据,z偏移数据都保存在下图字段中。
image

Probe triggered prior to movement。

探头在移动过程中触发,换个接近开关。

打印时床网在正常工作但是一边一直没法粘住平台

看了一下床网,长这样,起伏太大了。加点到100个没有改善。
image

使用PROBE_CALIBRATE命令测试了能粘住的区域和粘不住区域的zoffset。发现偏差0.4mm。根据官网描述最大z_offset 和最小z_offset 之间的差值应该小于25微米(.025mm)。所以目前推测是x轴斜了导致的,但是感觉又不太像。

手动修改床网值

如果探针探测的床网值不够准确,我们可以手动修改床网值来微调床网。

  1. 利用下图坐标系,找到床网不准点对应的探测点坐标。
    image

  2. 更改床网值
    床网值在klipper中一般存储在priter.cfg的最下面。
    image
    数值+0.1,平台打印时就会下降0.1
    数值-0.1,平台打印时就会上升0.1。
    一次调0.1左右就好。