在运行Marlin Firmware 时,是否可以在插入 SD 卡时自动运行G 代码脚本/系列命令?
我正在使用基于 ATmega 2560 的板和带有 SD 卡插槽的 rerap 折扣 LCD 控制器在 3D 打印机板上运行 Marlin。我想在不需要添加另一台计算机/板的情况下执行此操作,因此来自运行 Marlin 固件的板。
在运行Marlin Firmware 时,是否可以在插入 SD 卡时自动运行G 代码脚本/系列命令?
我正在使用基于 ATmega 2560 的板和带有 SD 卡插槽的 rerap 折扣 LCD 控制器在 3D 打印机板上运行 Marlin。我想在不需要添加另一台计算机/板的情况下执行此操作,因此来自运行 Marlin 固件的板。
我不完全确定这是否是您所追求的,或者它是否可以工作,但是从 关于打印机开启时从 SD 卡打印的这篇文章
虽然 auto#.g 不需要 LCD 控制器,但如果您有 LCD 控制器,您可以使用该
MENU_ADDAUTOSTART
选项添加一个菜单命令,该命令将在需要时运行 auto0.g、auto1.g、auto2.g。
这篇(最终)帖子最终关闭了该线程,因此它似乎回答了 OP 的问题 - 但是,它是否会回答您的问题是另一回事。
Marlin 论坛上的这篇文章复制了您的问题,并询问了将 SD 卡完全插入到已开机的打印机上的问题。
收到了答复,显然可以通过更改以下代码来实现ultralcd.ccp
:
在 Marlin 的当前程序代码中,插入 SD 卡时似乎没有自动打印。
您可以考虑在此处提出功能请求:[ github.com ]
我认为在 Marlin 中实现“card.autoprintfile()”函数不需要太多工作。在我看来,对这样一个函数的调用可能会发生在第 5172 行之后:
else LCD_MESSAGEPGM(MSG_SD_INSERTED);
在文件中
ultralcd.ccp
Marlin 的 GitHub 上提出了后续功能请求,请参阅[FR] 使用 Marlin 固件时,能否在插入 SD 卡时自动运行 G 代码脚本?
然而,从这个回复看来,一个功能请求已经在等待中:
我不赞成将其作为一般特征。我们已经有一个功能请求,能够运行自定义 G 代码以响应各种事件,其中 SD 卡插入是这些事件之一。该功能会满足您的需求吗?
但是,到目前为止,我还没有指向此其他功能请求的链接。会及时更新。
顺便说一句,在可能值得一提的是,SDFat 相关代码可能是编码的地方,看看是否删除了 SD 卡,如何标记和重新启动?,尽管在查看了 Marlin 代码库后,特别是SdFatUtils.cpp
,这似乎是一个红鲱鱼。
我不知道你想达到什么目的。
正如@typo 提到的,有类似的功能会在打印机启动时触发:https : //github.com/MarlinFirmware/Marlin/wiki/Autostart
我在 Marlin 的源代码中发现,您可以启用从菜单触发的自动启动功能。只需MENU_ADDAUTOSTART
在Configuration_adv.h 中启用。
如果您确实需要在插入 sd 卡后启动的 g 代码,那么您必须自己调整 marlin 源代码。我建议更改文件cardreader.cpp。插入 SD 卡后,您必须在那里触发自动启动程序。