运动、限位与调平报错
本页整理移动范围、归位、限位、探针、网床和多 Z 调平相关报错。涉及接线、插头、手动机械调整时,请先断电再操作。
Move out of range
报错信息:目标坐标超出 Klipper 允许的运动范围,日志中通常会显示类似 Move out of range: X Y Z [E]。
常见原因:
- 切片机中的机器尺寸与 Klipper 配置中的
position_min/position_max不一致。 - 起始 G-code、结束 G-code、换料宏或暂停宏移动到了机器范围外。
- 使用偏斜校正、探针偏移或网床配置后,实际计算坐标变成负值或超过最大行程。
- 模型高度超过 Z 轴最大行程。
解决方法:
- 根据报错中的坐标判断是哪一个轴超出范围。
- 检查对应轴的
position_min、position_max和切片机机器尺寸。 - 检查起始、结束、暂停、换料等宏中的停靠坐标,避免停在
0,0或最大边界。 - 如果报错发生在扫床时,检查
[bed_mesh]的mesh_min、mesh_max和探针偏移。 - 保存配置并重启 Klipper 后重新测试。
Must home axis first
报错信息:轴尚未归位,不能执行当前移动命令。
常见原因:
- 开机或
FIRMWARE_RESTART后没有执行G28。 - 宏中先执行了移动命令,再执行归位命令。
- 打印暂停、恢复或取消后,机器状态被重置。
- 归位宏、探针宏或无限位归位配置异常,导致 Klipper 没有正确记录已归位状态。
解决方法:
- 手动执行
G28后再移动对应轴。 - 检查起始 G-code 和宏,确认移动命令前已经完成归位。
- 如果刚更新过 Klipper 或固件,检查归位相关宏是否仍兼容当前版本。
- 如果使用无限位归位,检查驱动电流、灵敏度和
homing_retract_dist。
Endstop still triggered after retract
报错信息:归位触发限位后,回退距离结束时限位仍然处于触发状态。
常见原因:
- 限位开关常开/常闭逻辑配置反了。
- 限位开关卡住、损坏或线序错误。
homing_retract_dist太小,回退后仍压着限位。- 无限位归位灵敏度过高,回退后仍被判断为触发。
- 驱动
enable_pin、电机方向或限位引脚配置错误,导致归位动作不正常。
解决方法:
检查限位插头、电机线序或重新插拔线束前,请完全关闭打印机并断开电源供应。通电测试时只操作网页命令和限位机械触发部位,不要触碰端子。
- 执行
QUERY_ENDSTOPS,确认未触发时为open,手动触发后为TRIGGERED。 - 如果状态相反,调整限位引脚前的
!。 - 断电后检查限位开关机械状态、线序和插头。
- 适当增加
homing_retract_dist后重新测试。 - 如果使用无限位归位,降低灵敏度并确认归位电流合适。
No trigger on endstop after full movement
报错信息:No trigger on x after full movement、No trigger on y after full movement 或类似限位未触发提示。
常见原因:
- 归位方向配置错误,电机向远离限位的方向移动。
- 限位开关未接通、插头松动或引脚配置错误。
position_endstop、position_min、position_max配置与实际行程不匹配,归位距离不够。- 无限位归位灵敏度过低,撞到机械端点后仍未被判断为触发。
- 电机线序或方向配置错误,导致轴移动方向与预期相反。
解决方法:
- 执行
QUERY_ENDSTOPS,手动按下限位,确认状态能从open变为TRIGGERED。 - 用小距离移动确认轴方向,再检查
dir_pin前的!是否需要调整。 - 确认
homing_positive_dir与限位所在方向一致。 - 检查
position_endstop、position_min、position_max是否符合实际机械行程。 - 无限位归位场景下,降低归位速度并调整 TMC 灵敏度。
探针与调平问题
检查 BLTouch、Probe、TAP、Klicky、EDDY 等探针接线、插头或线序前,请完全关闭打印机并断开电源供应。通电时仅执行查询命令或观察状态,不要插拔线束。
Probe triggered prior to movement
报错信息:在归位或探测移动开始之前,探针已经处于触发状态。
报错原因:
- 探针在上电或复位后默认状态为
TRIGGERED。 - 探针线序错误或接触不良,导致信号始终处于触发状态。
- 探针机械故障,如 BLTouch 探针卡住无法缩回。
- Z 轴已处于最低位置导致探针被压住。
解决方法:
- 执行
QUERY_PROBE在未接触热床时确认状态应为open。 - 执行
QUERY_ENDSTOPS确认限位/探针信号是否正确。 - 对于 BLTouch:
BLTOUCH_DEBUG COMMAND=pin_up确保探针缩回,再QUERY_PROBE确认。 - 检查 Z 轴当前位置,必要时先抬升 Z 轴。
- 断电后检查探针接线和
sensor_pin配置。
No trigger on probe after full movement
报错信息:探针在完整下探行程内没有触发。
常见原因:
- 探针接线、供电或引脚配置错误。
- 探针安装高度不合适,下探行程内无法触发。
- Z 轴方向、探针偏移或调平区域配置错误。
- 探针本体故障,或线束在移动时接触不良。
解决方法:
- 执行
QUERY_PROBE,手动触发探针,确认状态能正常变化。 - 断电后检查探针供电、信号线和配置引脚。
- 检查探针安装高度,确认下探前探针处于可触发范围。
- 检查
[probe]、[bed_mesh]、[z_tilt]或[quad_gantry_level]中的探测点是否超出热床。 - 如果问题只在某些位置出现,重点检查线束拖动和探针偏移。
Probe samples exceed samples_tolerance
报错信息:Probe samples exceed samples_tolerance,或日志中反复出现 Probe samples exceed tolerance. Retrying...。
常见原因:
- 探针重复性差,几次采样的 Z 高度差超过
samples_tolerance。 - 热床、龙门、喷头或探针固定不牢,探测时有晃动。
- 探针速度过快,或者下探距离/回弹距离不合适。
- 电感、涡流或压力传感器受温度漂移、电磁干扰影响。
解决方法:
- 检查探针、热端、床板和龙门结构是否固定牢靠。
- 降低
[probe]中的speed,适当增大sample_retract_dist。 - 先临时放宽
samples_tolerance测试,例如从0.01调到0.03或0.05。 - 如果使用电感/涡流探针,等待热床和喷嘴温度稳定后再调平。
- 问题只在某一区域出现时,检查该区域床面、磁贴、线束拖动和探针偏移。
Must home before probe
报错信息:Must home before probe。
常见原因:
- 还没有执行
G28就运行PROBE、BED_MESH_CALIBRATE、Z_TILT_ADJUST或QUAD_GANTRY_LEVEL。 - 宏中调用调平命令前没有保证 XY/Z 已归位。
FIRMWARE_RESTART、急停或报错恢复后,Klipper 已清除归位状态。
解决方法:
- 先执行
G28,再执行探针或调平命令。 - 在调平宏开头加入归位判断或直接加入
G28。 - 如果使用独立 Z 探针,确认
endstop_pin: probe:z_virtual_endstop和[probe]配置完整。
BLTouch failed to verify sensor state
报错信息:BLTouch failed to verify sensor state; retrying. 多次重试后报错。
常见原因:
- 盗版/克隆 BLTouch 无法通过 Klipper 内部传感器验证。
sensor_pin未配置上拉电阻(缺少^前缀)。- BLTouch 控制引脚或传感器引脚接线错误。
- 探针自检失败,红灯闪烁。
解决方法:
-
先运行
BLTOUCH_DEBUG COMMAND=pin_down、BLTOUCH_DEBUG COMMAND=touch_mode和QUERY_PROBE确认状态。 -
如果手动测试通过但自动归位/探测仍报错,在
[bltouch]中添加:pin_up_touch_mode_reports_triggered: False -
确保
sensor_pin配置了上拉电阻,如sensor_pin: ^PC4。 -
检查 BLTouch 自检是否正常:通电后探针伸缩几次,红灯常亮即为正常。
BLTouch failed to raise probe
报错信息:归位或探测后 Klipper 检测到 BLTouch 探针未成功缩回。
常见原因:
- 老版本克隆 BLTouch 无法报告探针缩回状态。
- 探针机械卡住,磁芯移位或螺丝松动。
control_pin接线或配置错误。
解决方法:
-
测试探针控制功能:
BLTOUCH_DEBUG COMMAND=pin_down和BLTOUCH_DEBUG COMMAND=pin_up。 -
如果动作正常但报错,在
[bltouch]中添加:pin_up_reports_not_triggered: False -
如果探针卡住,建议更换探针模块或联系售后,不要拆解带电设备。
horizontal_move_z can't be less than probe's z_offset
报错信息:horizontal_move_z can't be less than probe's z_offset。
常见原因:
PROBE_CALIBRATE后保存的z_offset大于调平配置中的horizontal_move_z。- 更换喷嘴、探针支架或热端后,探针安装高度变化很大。
- 多个 include 文件中重复配置了
horizontal_move_z或z_offset。
解决方法:
- 搜索所有
horizontal_move_z和z_offset,确认最终生效配置。 - 将相关调平配置中的
horizontal_move_z设置为大于探针z_offset的安全值。 - 如果
z_offset异常偏大,重新检查探针安装高度并执行PROBE_CALIBRATE。 - 保存后执行
RESTART,再重新测试BED_MESH_CALIBRATE或调平命令。
bed_mesh: cannot exceed a probe_count of 6
报错信息:bed_mesh: cannot exceed a probe_count of 6 when using lagrange interpolation。
报错原因:lagrange 插值在高采样数量下容易振荡,Klipper 限制使用该算法时单轴探测点数量不能超过 6。
解决方法:
-
如果需要
7x7、9x9或更密的网格,在[bed_mesh]中设置:algorithm: bicubic -
如果不需要密集网格,将
probe_count降到6,6或以下。 -
自适应网床由切片机或宏传入
PROBE_COUNT时,也要确认最终点数和算法匹配。 -
修改后保存并执行
RESTART。
相关配置参考:宏介绍。
bed_mesh: Unknown profile
报错信息:bed_mesh: Unknown profile [xxx] 或加载网床配置时提示找不到 profile。
常见原因:
- 起始 G-code 或宏中执行了
BED_MESH_PROFILE LOAD=xxx,但该名称从未保存。 - 执行过
BED_MESH_CLEAR或删除了自动保存区中的网床数据。 - 网床校准完成后没有执行
SAVE_CONFIG。 - profile 名称大小写或空格不一致。
解决方法:
- 执行
BED_MESH_OUTPUT或查看配置末尾自动保存区,确认已有 profile 名称。 - 如果没有需要的 profile,重新执行
BED_MESH_CALIBRATE,再执行SAVE_CONFIG。 - 修改起始 G-code 中的
BED_MESH_PROFILE LOAD=,使名称与实际保存名称一致。 - 如果每次打印前都重新扫床,可删除不必要的 profile 加载命令。
相关配置参考:宏介绍。
Z_TILT_ADJUST / QUAD_GANTRY_LEVEL 报错
报错信息:Z_TILT_ADJUST: Point X,Y not reachable with current probe offset、QUAD_GANTRY_LEVEL: Max adjustment X.XXXX exceeds limit 或龙门调平后偏差仍然过大。
常见原因:
- 探针偏移配置不正确,导致计算的探测点超出热床范围。
- 多个 Z 轴的龙门偏差超出了
max_adjust允许范围。 - Z 轴电机方向不一致,导致龙门向相反方向倾斜。
- 限位开关安装高度不一致,归位后各 Z 轴起始位置差异过大。
- 龙门机械结构松动、皮带打滑或丝杆螺母间隙过大。
解决方法:
手动调整 Z 丝杆、同步带、联轴器,或检查龙门限位安装前,请完全关闭打印机并断开电源供应。不要在电机上电保持力矩时强行旋转丝杆或同步带。
- 检查
[probe]中的x_offset、y_offset,以及[z_tilt]或[quad_gantry_level]中的points。 - 如果偏差超出
max_adjust,完全断电后手动调整龙门大致水平,再重新上电归位和执行调平。 - 执行
STEPPER_BUZZ STEPPER=stepper_z和STEPPER_BUZZ STEPPER=stepper_z1(按实际名称),确认每个 Z 电机单独运动方向一致。 - 断电后检查龙门各角限位开关安装高度是否一致,丝杆螺母、同步带松紧和联轴器是否有打滑。
- 如果只是
max_adjust限制太小,可适当增大该值,但不要超过 2-3 倍默认值。
相关配置参考:归位与方向校准指南。