开源改变世界!!

SD卡 #19

推推 grbl 2年前 (2023-01-29) 242次浏览
关闭
bdring 打开了这个问题 2018 年 8 月 9 日 · 22条评论
关闭

SD卡#19

bdring 打开了这个问题 2018 年 8 月 9 日 · 22条评论

注释

SD卡 #19
所有者

我正准备研究使用 SD 卡流式传输文件。我需要确定最佳命令格式。

我应该只模仿马林鱼的命令吗?

我想我将从一个小的功能集开始,然后在需要时添加功能。我需要哪些最基本的功能?

  • 在启动时安装(不会即时更改)
  • 列出文件
  • 选择文件
  • 运行文件
  • 获取状态(可能需要遵循 Grbl 报告风格)
SD卡 #19 bdring 添加了 增强 新功能或要求标签 2018 年 8 月 9 日
SD卡 #19

能够在文件的指定行号恢复作业将非常方便。

SD卡 #19
味三 评论了 2018 年 8 月 10 日  

Marlin SD 卡用户注意到的一件事是上传过程非常缓慢。有几个因素促成了这一点:

  • 一位(串口)SD卡接口

  • 低速串行连接(打印时没什么大不了的)

  • 低效的停止和等待协议(对于涉及的长时间延迟)

如果你走同样的路,也许你想先测试乐观的 SD 写入速度是多少。如果不够好,用户可能不得不将 SD 卡移动到计算机上以进行快速文件传输。

或者您可能已经完全排除了无线文件上传:不确定您的命令列表是否完整(因为没有提及文件传输)。

添加“跳线”值作为@DirtyEngineer建议可以通过在运行文件之前使用的临时命令来完成。

SD卡 #19
合作者
luc-github 评论了 2018 年 8 月 10 日  

串口上传速度极差,ESP32的优点是可以通过WiFi上传

SD卡 #19
所有者作者

我想我会推迟上传功能。我从来没有在重播中使用过这个功能,因为速度太慢了。115200 波特是默认值。

从行号重新启动可能会造成混淆,因为有些人使用 gcode 行号。

此外,报告功能将报告已发送的字节数/已发送的总数。你怎么知道是哪条线?很难报告行数,因为您必须在运行文件之前计算行数。

SD卡 #19

现在我看了一下,Marlin 中的 M32 命令确实包含一个可选的偏移值http://marlinfw.org/docs/gcode/M032.html

我确实同意使用这样的功能可能会有风险,但它应该只用于最终会正确使用的熟练用户:-)

SD卡 #19
所有者作者

是的……如果你跳过 G90、G21 M3 等……你就有麻烦了。

SD卡 #19
所有者作者

我启动了一个 wiki 并添加了一个建议的SD 卡系统。

我想编写一些简单快速的代码,所以我学习了所有涉及的问题。它比 Marlin 更像 Grbl,所以我不太喜欢惹恼我使用的发件人。

SD卡 #19
所有者作者

wiki 中的所有功能基本上都可以使用。

我在 SD 卡上遇到了一些奇怪的问题,当我列出文件时,我在 Windows 中对其所做的更改无法正确显示。

  • 我添加了一个名为 1.nc 的文件。当我列出文件时它没有显示,但我实际上可以使用 $F=/1.nc 从该文件运行作业
  • 我重命名了一个文件,但它始终显示旧名称。

ESP32 是否使用 Windows 不使用的隐藏表?

除此之外,它工作得很好。我开始用 gcode 发件人进行测试,看看是否有任何问题。

SD卡 #19
味三 评论了 2018 年 8 月 20 日 通过电子邮件
SD卡 #19
所有者作者

我很擅长弹射。我因为不这样做而搞砸了打印机的卡片。

我发现了一个奇怪的线索….我正在过滤 gcode 文件扩展名(.nc、.txt、.gcode)的文件。

如果我在 Windows 上查看该卡,我会看到…

1.nc
foo.txt解析测试
.nc
1.nc

这是我从 ESP32 的输出。它正在将某些内容更改为大写并且可能无法通过过滤器。(我关闭了这个转储的过滤器)

[FILE:/foo.txt SIZE:53]
[FILE:/HAD.NC SIZE:7864]
[FILE:/parsetest.nc SIZE:178]
[FILE:/1.NC SIZE:7864]

我可以修复过滤器,但发生了什么?

SD卡 #19
味三 评论了 2018 年 8 月 20 日 通过电子邮件
SD卡 #19

Windows 列表如何有两个名为 1.nc 的文件?

SD卡 #19
所有者作者

我打字的错误。这是截图

SD卡 #19

SD 库似乎不区分大小写。我更喜欢长格式,但是你如何用 SD 库强制使用 8.3?

SD卡 #19
所有者作者
培养 评论了 2018 年 8 月 20 日  

不管怎样……这已经不是问题了。我使过滤器不区分大小写,因此它显示了所有文件。SD 库不区分大小写,因此您如何发送命令并不重要。

天哪,这太酷了!

我测试了几个发件人,他们都可以处理它。有些人比其他人有更好的反馈。

  • Grbl 控制器(通过蓝牙的 Andriod):我能够让机器回家并开始 SD 卡工作。它会继续询问状态,因此您可以在作业期间查看 DRO。如果您打开详细输出,您还可以在控制台窗口中看到完成百分比,但它飞得相当快。它抑制了很多消息,因此您在列出文件时看不到输出。
  • UGS(在 Windows 上通过 USB):我能够回家并开始工作。如果打开详细输出,您可以看到 DRO 和完成百分比,甚至可以看到文件列表。
  • LaserGrbl(Windows 通过 USB):我能够回家并开始工作。它没有详细模式,因此您看不到完成百分比,但您可以看到 DRO 和文件列表。

使用所有这三个,您甚至可以关闭程序,工作继续进行。如果您尝试重新连接,某些程序会在启动时发送 grbl reset。那会扼杀工作。

明天我会尝试做一个视频。

SD卡 #19

任何分支机构都提供 SD 代码吗?我会尝试测试其中的一些但我没能找到它,所以我主要是见机行事:-)

SD卡 #19
所有者作者

我很快就创建了一个分支。事情看起来足够稳定。

这是该功能的博客文章和视频

SD卡 #19
所有者作者

分支已被推送。

顺便说一句:Sonny (Grbl Guy) 在看到我的视频后今天给我发了一封电子邮件。我们讨论了我创建的协议。

  • 他只建议对我在 SD 上报告文件的方式进行细微调整。我把空格改成了逗号。
  • 他批准了 $F 方法并将保留它用于此用途。
  • 他批准了我的蓝牙、SD 卡和 WiFi 字符 B、S&W 用于 $I {OPT:…] 响应。
SD卡 #19
合作者
luc-github 评论了 2018 年 8 月 23 日  

嗨,我刚进入 GRBL 世界时有 1 个问题:
关于 SD 命令,为什么不使用标准 SDM命令 ( https://reprap.org/wiki/G-code )?
M20 M21 M24
这是有据可查和广泛使用的(reprap – marlin,repetier,smoothieware),并且 GRBL 已经使用了一些 GCODE,也不需要在主流上为这种用法保留 $F
抱歉,如果这是一个已经回答的问题

关于 SD 文件名:SD wiki 描述 $F=\FOO.NC应该$F=/FOO.NC像这个线程和代码中描述的那样吗?

SD卡 #19
所有者作者

SD Wiki 页面已更新,谢谢

Grbl 喜欢严格遵守 G 和 M 代码的 NIST 风格。LinuxCNC 对此有很好的参考。$ 命令涵盖了 NIST 风格中未定义的内容。对于 SD 功能,我决定坚持这一点。

我的首要任务是不破坏与现有 gcode 发送器的兼容性。有了 Grbl 不太可能实现的新功能,我们在工作上有一定的灵活性。我绝对愿意对此进行讨论,但我认为将某些设置设置为 $xx=xx.x 而将某些设置设置为 Mxxx Pxxx 将会变得一团糟。

SD卡 #19
合作者

非常感谢分享和澄清,我还找到了官方参考https://ws680.nist.gov/publication/get_pdf.cfm?pub_id=823374并按照代码中的描述检查了 p20 所以我现在完全理解 M 命令用于特定目的和您的决定。

SD卡 #19
所有者作者

是的,Grbl 确实有一些特殊的“停车”功能 M 代码,默认情况下在 config.h 中禁用。

我认为如果我们坚持“尽量不破坏任何发件人”的主要计划,我们在决定如何实现新功能时会有灵活性。

我认为如果添加一个通常会放在 gcode 文件中的新功能,它可能应该是一个 M 命令。

SD卡 #19
所有者作者

现在这是主人的一部分……关闭