跳到主要内容

堵料检测优化

功能说明​

FAST 1.3.8 版本对堵料检测功能进行了优化,提供了更精准的堵料检测能力和灵活的配置选项。该功能可以实时监测挤出机的出料情况,在检测到堵料或断料时自动暂停打印并提示用户。

重要提示

系统版本要求: 本功能需要 FlyOS-Fast 系统版本 大于或等于 v1.3.8 才能正常使用。


配置方法​

  • 将以下配置添加到 printer.cfg 文件中:
  • 请注意这是参考配置,具体参数可能需要根据实际情况进行调整
[filament_blockage_detection my_sensor]
switch_pin: ^PA10
extruder: extruder
distance_per_edge: 0.232
detection_length: 3
pause_on_runout: True
runout_gcode: M118 打印中堵料
insert_gcode: M118 空闲时恢复

基本参数:

参数默认值说明
switch_pin必填堵料检测传感器的引脚,^ 表示启用上拉电阻
extruderextruder关联的挤出器名称
distance_per_edge必填传感器每个脉冲对应的耗材移动距离(mm),校准后自动更新
detection_length7.0滑移距离超过此阈值(mm)且连续多次确认后判定为堵料
recovery_lengthdetection_length * 0.5滑移距离回落到该值(mm)以下时恢复为正常状态
pause_on_runout—检测到堵料时是否自动暂停打印
runout_gcode—检测到堵料时执行的 G-code
insert_gcode—检测到耗材恢复时执行的 G-code

高级参数(通常使用默认值即可):

参数默认值说明
window_lengthdetection_length * 3滑动窗口长度(mm)
retraction_min_delta0.050判定回抽运动的最小挤出位移(mm),低于此值视为静止
blockage_sample_count2连续超阈值确认次数,达到后判定堵料(1-5)
自动校准说明

distance_per_edge 参数在执行 CALIBRATE_FILAMENT_BLOCKAGE 校准命令后会自动计算最优值,并通过 SAVE_CONFIG 命令永久保存到配置文件中。初始配置时可以填写任意值,校准后会被自动覆盖。


校准步骤​

为确保检测精度,建议在使用前进行传感器校准。

步骤 1:加热喷嘴​

将喷嘴加热至正常工作温度(推荐 220℃):

M104 S220
M109 S220

步骤 2:执行校准命令​

在喷嘴达到目标温度后,执行以下校准命令:

CALIBRATE_FILAMENT_BLOCKAGE SENSOR=my_sensor TEMPERATURE=220

命令参数:

参数默认值说明
SENSOR必填传感器名称,与配置中的 [filament_blockage_detection my_sensor] 对应
TEMPERATURE必填校准时的喷嘴温度(℃)
DISTANCE30.0每轮校准的挤出长度(mm)
COUNT5校准轮数(1-20),取多轮平均值
SPEED2.0挤出速度(mm/s)
SETTLE_TIME0.375每轮挤出后等待传感器上报的安定时间(秒)
MIN_EDGES1每轮最少捕获脉冲数,低于则报错

校准过程中,系统会自动执行多轮挤出,统计每轮的编码器脉冲数,计算最优 distance_per_edge 并提示结果。

校准输出示例:

Filament blockage sensor my_sensor calibration round 1/5:
edge_count_delta: 130
implied_distance_per_edge: 0.230769 mm
...
Filament blockage sensor my_sensor calibration result:
samples: 130, 129, 131, 130, 128
average_edge_count: 129.600
calibrated_distance_per_edge: 0.231481 mm
The SAVE_CONFIG command will update the printer config file
with this parameter and restart the printer.

步骤 3:保存校准结果​

校准完成后,执行以下命令将新的 distance_per_edge 保存到配置文件并重启 Klipper:

SAVE_CONFIG

查询传感器状态​

使用 QUERY_FILAMENT_BLOCKAGE 命令可以实时查看传感器的测量数据,包括挤出长度、编码器测量距离和滑移量等关键信息。

QUERY_FILAMENT_BLOCKAGE SENSOR=my_sensor

返回字段说明:

字段说明
total_extruded_distance累计挤出机指令移动距离(mm)— 即 Klipper 命令挤出机前进的总长度
total_measured_distance累计编码器实际测量距离(mm)— 传感器实际检测到的耗材移动量
raw_measured_distance原始编码器测量距离(mm)— 未经方向判断的累计值
expected_distance自上次运动方向变化以来的预期挤出距离(mm)
measured_distance当前窗口内实际测量距离(mm)
slip_distance滑移距离(mm)— 预期距离与实际测量之差,超过 detection_length 时触发堵料判定
measured_speed当前测量速度(mm/s)
edge_count编码器累计脉冲数
pending_blockage_count当前连续超阈值确认次数,达到 blockage_sample_count 时判定堵料
in_retraction当前是否处于回抽状态(True/False)
blocked是否已判定为堵料(True/False)
printing当前是否处于打印状态(True/False)

使用场景:

  • 排查堵料误报:对比 total_extruded_distance 和 total_measured_distance,如果两者差异持续增大,说明编码器检测到的耗材移动落后于挤出指令,可能存在打滑
  • 确认传感器是否正常:在打印过程中查询 measured_speed,正常挤出时应有稳定的速度读数
  • 查看滑移趋势:slip_distance 接近 detection_length 时需注意,持续超过则暂停打印

重要提醒​

固件更新要求

升级到 FAST 1.3.8 后必须更新下位机固件,否则堵料检测功能可能无法正常工作。

请参考 固件编译说明 并按主板产品文档完成下位机固件的编译与烧录。


故障排查​

问题 1:堵料检测不触发​

可能原因:

  • 传感器未正确连接
  • switch_pin 配置错误
  • 下位机固件未更新

解决方法:

  1. 检查传感器硬件连接
  2. 确认引脚配置与实际硬件一致
  3. 更新下位机固件至最新版本

问题 2:误报堵料​

可能原因:

  • distance_per_edge 参数不准确
  • detection_length 阈值设置过小

解决方法:

  1. 重新执行校准命令
  2. 适当增加 detection_length 值(建议 3-5mm)

问题 3:校准失败​

可能原因:

  • 喷嘴温度未达到要求
  • 传感器硬件故障

解决方法:

  1. 确认喷嘴已加热至指定温度
  2. 检查传感器是否正常工作
  3. 尝试重新启动 Klipper 服务

使用建议​

  • 建议在每次更换耗材品牌或直径时重新校准传感器
  • 定期检查传感器状态,确保检测精度
  • 如长时间未使用堵料检测功能,建议重新校准后再使用

Loading...