堵料检测优化
功能说明
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 | 必填 | 堵料检测传感器的引脚,^ 表示启用上拉电阻 |
extruder | extruder | 关联的挤出器名称 |
distance_per_edge | 必填 | 传感器每个脉冲对应的耗材移动距离(mm),校准后自动更新 |
detection_length | 7.0 | 滑移距离超过此阈值(mm)且连续多次确认后判定为堵料 |
recovery_length | detection_length * 0.5 | 滑移距离回落到该值(mm)以下时恢复为正常状态 |
pause_on_runout | — | 检测到堵料时是否自动暂停打印 |
runout_gcode | — | 检测到堵料时执行的 G-code |
insert_gcode | — | 检测到耗材恢复时执行的 G-code |
高级参数(通常使用默认值即可):
| 参数 | 默认值 | 说明 |
|---|---|---|
window_length | detection_length * 3 | 滑动窗口长度(mm) |
retraction_min_delta | 0.050 | 判定回抽运动的最小挤出位移(mm),低于此值视为静止 |
blockage_sample_count | 2 | 连续超阈值确认次数,达到后判定堵料(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 | 必填 | 校准时的喷嘴温度(℃) |
DISTANCE | 30.0 | 每轮校准的挤出长度(mm) |
COUNT | 5 | 校准轮数(1-20),取多轮平均值 |
SPEED | 2.0 | 挤出速度(mm/s) |
SETTLE_TIME | 0.375 | 每轮挤出后等待传感器上报的安定时间(秒) |
MIN_EDGES | 1 | 每轮最少捕获脉冲数,低于则报错 |
校准过程中,系统会自动执行多轮挤出,统计每轮的编码器脉冲数,计算最优 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配置错误- 下位机固件未更新
解决方法:
- 检查传感器硬件连接
- 确认引脚配置与实际硬件一致
- 更新下位机固件至最新版本
问题 2:误报堵料
可能原因:
distance_per_edge参数不准确detection_length阈值设置过小
解决方法:
- 重新执行校准命令
- 适当增加
detection_length值(建议 3-5mm)
问题 3:校准失败
可能原因:
- 喷嘴温度未达到要求
- 传感器硬件故障
解决方法:
- 确认喷嘴已加热至指定温度
- 检查传感器是否正常工作
- 尝试重新启动 Klipper 服务
使用建议
- 建议在每次更换耗材品牌或直径时重新校准传感器
- 定期检查传感器状态,确保检测精度
- 如长时间未使用堵料检测功能,建议重新校准后再使用
Loading...