Marlin固件中Z轴归位时双倍抬升问题的分析与解决
问题背景
在Marlin固件(bugfix-2.1.x版本)中,用户报告了一个关于Z轴归位行为的异常现象。当打印机完成启动后首次执行G28归位命令时,Z轴会执行两次抬升动作,这可能导致Z轴超出预设的安全范围,特别是在床型打印机(bed-slinger)上可能造成打印头与顶部结构的碰撞。
问题现象详细描述
在标准归位流程中,打印头会按以下顺序执行动作:
- 首先向上移动一定高度(预期为Z_CLEARANCE_FOR_HOMING设置值)
- 归位X轴和Y轴
- 再次向上移动
- 最后归位Z轴
用户发现,即使未在Configuration.h中显式定义Z_CLEARANCE_FOR_HOMING(保持默认注释状态),系统仍会执行两次Z轴抬升动作,且总抬升高度超过了用户预留的安全空间。
技术分析
通过分析Marlin源代码,我们可以理解这一行为的实现机制:
-
第一次Z轴抬升发生在G28.cpp中的初始安全检查阶段,目的是确保打印头不会刮擦可能不平整的打印床或碰撞夹具
-
在完成X/Y轴归位后,系统调用home_z_safely函数,该函数会再次确保Z轴处于安全高度
-
关键参数包括:
- Z_CLEARANCE_FOR_HOMING:归位时的最小Z轴安全高度
- Z_CLEARANCE_DEPLOY_PROBE:探头部署/收回时的Z轴安全高度
- HOMING_BUMP_MM:归位时的碰撞回退距离
问题根源
经过深入调查,发现问题主要由以下因素导致:
-
参数不一致:用户设置了不同的Z_CLEARANCE_FOR_HOMING(5mm)和Z_CLEARANCE_DEPLOY_PROBE(10mm)值,这导致了额外的Z轴移动
-
默认行为:即使未显式定义Z_CLEARANCE_FOR_HOMING,系统仍会使用默认值(通常为4mm)执行安全抬升
-
归位流程设计:系统设计上确实需要两次Z轴安全检查,一次在开始归位前,一次在Z轴归位前
解决方案
针对这一问题,建议采取以下解决方案:
- 统一安全高度参数:
#define Z_CLEARANCE_FOR_HOMING 5
#define Z_CLEARANCE_DEPLOY_PROBE 5
-
合理设置物理限制:
- 确保MAX_POS与物理结构之间有足够的安全距离
- 考虑床型打印机的特殊需求,预留更多Z轴空间
-
调整归位碰撞回退距离:
#define HOMING_BUMP_MM { 3, 3, 1 } // X,Y,Z轴的归位碰撞回退距离
安全建议
对于所有Marlin用户,特别是使用床型打印机的用户,应当注意:
-
在Configuration.h中明确定义所有Z轴相关安全参数
-
确保MAX_POS设置考虑了所有安全抬升的总高度
-
首次使用新固件时,建议手动监控归位过程,确认各轴运动范围
-
对于空间受限的打印机,可以适当减小安全高度,但必须确保不会发生碰撞
总结
Marlin固件中的Z轴归位行为设计考虑了多种安全因素,但需要用户根据具体打印机配置进行适当调整。通过合理设置相关参数,可以避免双倍抬升导致的问题,同时确保打印过程的安全性和可靠性。这一问题也提醒我们,在固件配置时需要全面考虑各参数间的相互关系及其对打印机行为的影响。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0155- DDeepSeek-V4-ProDeepSeek-V4-Pro(总参数 1.6 万亿,激活 49B)面向复杂推理和高级编程任务,在代码竞赛、数学推理、Agent 工作流等场景表现优异,性能接近国际前沿闭源模型。Python00
LongCat-Video-Avatar-1.5最新开源LongCat-Video-Avatar 1.5 版本,这是一款经过升级的开源框架,专注于音频驱动人物视频生成的极致实证优化与生产级就绪能力。该版本在 LongCat-Video 基础模型之上构建,可生成高度稳定的商用级虚拟人视频,支持音频-文本转视频(AT2V)、音频-文本-图像转视频(ATI2V)以及视频续播等原生任务,并能无缝兼容单流与多流音频输入。00
auto-devAutoDev 是一个 AI 驱动的辅助编程插件。AutoDev 支持一键生成测试、代码、提交信息等,还能够与您的需求管理系统(例如Jira、Trello、Github Issue 等)直接对接。 在IDE 中,您只需简单点击,AutoDev 会根据您的需求自动为您生成代码。Kotlin03
Intern-S2-PreviewIntern-S2-Preview,这是一款高效的350亿参数科学多模态基础模型。除了常规的参数与数据规模扩展外,Intern-S2-Preview探索了任务扩展:通过提升科学任务的难度、多样性与覆盖范围,进一步释放模型能力。Python00
skillhubopenJiuwen 生态的 Skill 托管与分发开源方案,支持自建与可选 ClawHub 兼容。Python0112