注释
如果能支持马林鱼就好了 |
添加了新问题#1081 |
嗨,Marlin 的支持情况如何?我希望我了解 Java,这样我就可以提供帮助,因为我确实需要 RAMPS 1.4 上的 Marlin 支持。我已经尝试过带有 Arduino Uno 的普通旧 GRBL,它很糟糕,一直崩溃,需要 PITA 校准等。带有 RAMPS 的 Mega 上的 Marlin 非常完美,但找到 ag 代码发送器几乎是不可能的。您还知道在此期间可以使用的任何方法吗?顺便说一句,继续努力,这个软件是我想使用的软件,一旦工作,我将唯一使用它。 干杯,丹 |
进展缓慢… 下周我可能会花几个小时来处理它。但是要使所有功能都到位需要大量工作。 |
我完全理解,如果我的工作不是忙得不可开交,我会学习 Java 并尝试帮忙,但不幸的是,我生产硬件的截止日期很短,而且作为唯一的硬件开发人员,这让人不知所措:( 顺便说一下,干得好,喜欢你到目前为止所做的一切,而且我的迷你激光雕刻机非常棒! 担 |
我已经完成了使 UGS 与 Marlin 一起工作所需的非常简单的版本。 https://github.com/andy-hnq/Universal-G-Code-Sender/tree/marlin 据我所知,主要挑战(除了我在 Marlin 和 UGS 都是新手之外)似乎是……
什么有效?
什么不起作用或不稳定?
我在用什么?
使用风险自负。没有保修! |
太棒了,我会尝试腾出一些时间来看看。 我也试图让这个工作。但正如您所提到的,实时命令会非常有用。另外,我无法使机器坐标或工作坐标偏移起作用。 |
干杯。我没有尝试处理机器与工作坐标。目前,无论您连接时切割器所在的位置是 0,0,所以我只是从我所在的位置开始,或者慢跑到我想去的地方,然后断开连接并重新连接到零坐标。原油我知道,但它对我有用。 |
在阅读了更多关于 Marlin 的命令缓冲区的信息后,我尝试进行更改以将未完成的命令限制为 10 个,以尝试使其在不处于单步模式时不那么不稳定。 我以为这已经解决了。我的测试工作没有做出任何明显的捷径动作……或者我是这么认为的。 跑了几次后发现有一个动作看起来不太对,我终于设法在错误的行为中抓住了它。它在单步模式下没有同样的问题。 所以看起来有所改善,但仍然不对。它现在缺少更少的步骤,但还没有修复。 我还弄乱了 git 分支,所以不得不重新创建它。 |
我刚刚提交了一个提交。 我尝试了对非单步命令丢失的更多调试,并添加了一些日志记录来检查发生了什么。 我确认我的 10 个未完成命令限制似乎按预期工作。我已经更改它,以便它不再弯曲通信器类暂停语义,但这不是问题的原因。 我发现 M108 命令被错误地发送了两次并修复了它。 我还注意到第一个跳过的命令是在 M108 之前发送的,因此我更改了通信器,以便在发送 M0 时立即暂停发送。 我的测试工作现在在遇到问题之前走得更远,但它不仅跳过了一个动作,而且似乎也弄乱了坐标位置——几乎就像移动发生了一样……除了它没有发生,所以终点被丢失移动的距离,但 M114 在作业结束时报告 0,0。 我的测试工作在单步模式下仍然可以正常工作。 |
很高兴在这方面取得进展 – 我很乐意为我的 Trinus 放弃 OctoPrint(我在擦除出厂固件后将 Marlin 放在上面)。 很乐意帮助测试打印。 |
干杯。如果您乐于使用“mvn package”从源代码构建,那么您就可以开始了。 我的机器是一台 CNC 铣床,在 X 和 Y 上只有步进器,没有别的,所以打印机是完全不同的野兽。 目前,我认为非单步不稳定主要与 M0/M108 暂停/恢复有关。我打算尝试进行更改,让 UGS 等待活动命令列表耗尽,然后再发送它在 g 代码脚本中找到的 M0,但还没有时间尝试。 |
我又尝试解决丢失的动作问题。恐怕没有快乐。 我的 UGS 分支现在延迟发送 M0,直到活动命令列表为空。 我的测试工作在开始附近有一个 M0,在结束附近有一个 – 这些提示我在开始时降低切割器并在结束时将其升高。我原以为是第二个 M0 的提前发送导致了问题,但似乎不是 – 我从脚本中取出了第二个,但没有任何区别。它似乎是导致问题的第一个 M0(如果没有 M0 命令,则工作正常)。 无奈之下,我尝试禁用 EMERGENCY_PARSER 并重新刷新 Arduino。这导致它抱怨 M0 未被识别。UGS 仍然发送 M0 和 M108,作业运行正常(实际上我对 M0 处理的更改意味着 UGS 正在实施暂停而不是 Marlin)。 我现在不知道如何让 M0 暂停/恢复在不处于单步模式下并且在 Marlin 构建中启用 EMERGENCY_PARSER 时可靠地工作。 |
要使这个 UGS 工作,需要在 Marlin 中实施的最少命令/行为是什么? |
我想这取决于你的机器和你想做的工作。我无法为每个人回答这个问题,但我仍在使用我的分支,它对我来说工作得很好,但我的设置非常简单 – 仅 X 和 Y 步进器,仅“经典 UI”。自从我上一篇文章以来,我没有在这方面做更多的事情,但如果有人在等待一些容易做的事情,那么请这样说,我会试一试。我无法测试我的工厂不能做的东西(例如限位开关) |
抱歉,刚刚重新阅读了您的问题,发现您问的是 Marlin 更改而不是 UGS 更改。总的来说,问题似乎是 Marlin 在异步行为方面并不那么强大,例如能够在移动过程中找出当前坐标,在移动过程中暂停或能够可靠地排队一堆命令并在队列中工作,最终结果与一次发送一个命令一样。我绝对不是马林鱼专家,所以很可能我只是做错了。如果是这样,那么建设性的意见将非常受欢迎:) |
感谢回复。我不是 Marlin 专家,但我为特殊项目修改了几次。如果你能给我一个新行为和/或命令的规范,我会看看我是否可以实现它们。按重要性列出它们。我过去添加了紧急代码。 |
我要求“更好”的支持,而不是完美的。我不是 Marlin 或 CNC 方面的专家。 |
所以就命令而言,这可能是一个很好的起点 (com.willwinder.universalgcodesender.GrblUtils) …
这些是带有 GRBL 的单字节“命令”,可以立即工作,而不管控制器是忙还是闲。在 Marlin 中,这些命令不一定需要相同……只要有一种方法可以做同样的事情。 在优先级方面,我会说状态、暂停/恢复然后重置。我从未使用过其他两个 AFAIK。 正如我在上面的线程中所说的那样,我无法正常工作的另一件事是可靠地排队和执行多个命令的能力。对于我自己的机器来说,一次发送一个命令并不会降低它的工作效率,甚至不会减慢速度,据我所知。我认为排队多个命令的能力是有原因的……所以知道需要这个的“用例”会很好。 |
I’ll look at the status command and see what’s returned. Pause and resume will be trickier. The machine will need to decelerate and
|
功能要求
添加对 Marlin 控制器的支持:http: //marlinfw.org/
它可能不是 CNC 机器的第一个替代品,因为它主要专注于 3D 打印。但固件支持用于控制主轴或激光器的命令。Marlin 社区很大,他们的控制器随处可见,也可以在普通的 Arduino Mega 上运行。可能是 DIY 黑客的绝佳选择。
需要实现这些功能: