如何在 Marlin 软件中为 3D 打印机添加自定义物理按钮

3D打印 马林鱼 软件 马克
2021-05-14 21:16:08

我有一台带有 MKS Robin 主板 + TMC2209 的 3D 打印机。

怎么给Marlin加一段代码,比如做一个实体按键开始预热等。想用现有的主板,不想用OctoPrint。

我有 Arduino 编程的基本知识。我可以很容易地编写软件以在按下按钮时运行该功能,但我找不到如何将它集成到 Marlin 中。

1个回答

ultralcd.cpp

也许,只是也许,这篇文章来自如何向挤出机电机控制添加物理按钮?#10394可以提供帮助(重点是我的):

而不是直接在 stepper.cpp 上工作,我宁愿建议看看 LCD 控制部分,并集成准备/移动/Z 轴代码的仿真。至于可访问的引脚,也许使用任何未使用的止端器?

这是有道理的,因为它类似于 0scar 的问题需要更改的位置(即文件)。使用 Marlin 固件时,能否在插入 SD 卡时自动运行 G 代码脚本?. 这种情况下的文件是ultralcd.cpp(见我的回答)。

但是,ultralcd.cpp似乎已被删除、移动或重命名为ultralcd_st7920_u8glib_rrd_AVR.cpp. 看起来不抱希望。以前它是在第三部分bug修正,看到这个答案,并链接 ultralcd.cpp是现在死了。

键盘代码

或者,这篇文章很有帮助地建议:

这不是我们要添加的功能。但是可以通过连接 LCD 代码并遵循当前用于 KEYPAD 的技术来使用按钮进行移动。

所以,这似乎是一个有希望的起点。我不确定(目前)是哪个文件。它可能是处理 RepRapWorld 键盘的代码(见下文)。

RepRapWorld 键盘

这也很有用,RepRapWorld键盘

将其连接到 RAMPS AUX-2 端口。配置固件以使用键盘。Marlin 固件完全支持键盘。

您可以模拟(即逆向工程)这块简单的硬件(其上最复杂的 IC 只是一个移位寄存器)并使用已经内置的代码。

FWIW,这里引用了类似的声音(9 按钮)键盘,添加自定义键盘,马林鱼

但是,进一步阅读后,尚不清楚是否仍支持 RepRapWorld 键盘,请参阅功能请求:添加对 reprapworld 键盘的支持 #1142显然 RepRapWorld 没有(6 年前)支持它,也没有提供源代码,并希望 Marlin 编码人员免费支持它。

其他参考资料和链接

尽管如此,以下帖子还建议了其他可能有用的信息来源:

为了获得有关配置和故障排除帮助的最佳结果,请使用以下资源:

在向社区寻求帮助后,如果共识指向 Marlin 中的错误,那么您应该发布错误报告。

应当指出的是,作为一项规则,马林人喜欢的潜在问题进行固件论坛讨论的第一个之前的任何错误报告或功能请求提交到Github上。这是为了阻止他们的 Github 问题页面变得过于混乱。

另请注意,Tom 的 3D 论坛现已停止使用。

另请参阅Marlin/ LCD-Keypad Code Mod,尽管该线程似乎主要由哀叹软件维护和生命周期的帖子组成,然后在最后失去动力并死亡。但是,这篇文章提到了uiconfing.hor ui.h