开源改变世界!!

绕过 GBRL 检查的问题 #207

推推 grbl 2年前 (2023-01-26) 176次浏览
关闭
marcwolf1960 打开了这个问题 2017 年 12 月 11 日 · 5 条评论
关闭

绕过 GBRL 检查的问题#207

marcwolf1960 打开了这个问题 2017 年 12 月 11 日 · 5 条评论

注释

绕过 GBRL 检查的问题 #207

嗨伙计。
我有一台 GCode 激光打印机,我正在修改 LaserGBRL 代码以与它对话。
我遇到的一个问题是试图跟踪系统如何验证它正在与 GBRL 雕刻师交谈并绕过它。
我已经能够使用 ESP 模拟器进行测试,并且我对它生成的 GCode 很满意。

任何建议
非常感谢您的时间
戴夫

绕过 GBRL 检查的问题 #207

嗨@mar​​cwolf1960

你需要一台运行 grbl 的机器。LaserGRBL 在启动时使用诸如重置 grbl 之类的命令来了解其版本并发送“$$”以了解其配置,从而适应您在机器上拥有的特定 grbl 版本。缺少这些将使 LaserGRBL 像在“兼容模式”下一样工作,您只能将其用作 gcode 生成器。

希望它有所帮助

绕过 GBRL 检查的问题 #207
所有者
阿尔基皮塔 评论了 2017 年 12 月 11 日  

你好@marcwolf1960

LaserGRBL 与 grbl 交谈,发送每个 gcode 行并接收来自 grbl 的响应。gcode 命令的响应可能是“ok”或“error”。

与此同时,LaserGRBL 不断查询 grbl 状态,每 tot 毫秒发送一次“查询位置”命令。这是在ThreadTX()中完成的。查询位置命令导致 grbl 回复实时状态字符串。

GrblCore.cs 中的函数ThreadRX()管理来自 grbl 的所有响应。这包括接收 ok/error 和实时状态响应(以及其他消息)。

由 grbl 发送的实时状态字符串,传输当前位置和 grbl 控制器的状态。
这个字符串看起来像<Idle|WPos:0.000,0.000,0.000|Bf:15,128|FS:0,0|WCO:0.000,0.000,0.000>
这个字符串包含不同的字段,由’|’分隔 字符。第一个字段包含 grbl 控制器的状态(在本例中为Idle)。

MacStatus 枚举显示 grbl 控制器的所有可能状态。

整个 LaserGRBL 界面对不同的 MacStatus 启用/禁用按钮做出反应。
即文件只能在Idle时流式传输,停止按钮仅在Run等时启用。

要伪造/欺骗 LaserGRBL 已连接,您应该在连接时调用SetStatus() passingMacStatus.Idle添加SetStatus(MacStatus.Idle);作为OpenCom()try block的最后一行

绕过 GBRL 检查的问题 #207
所有者

您可以分叉您自己的 LaserGRBL 版本并修改它以与您的雕刻师一起使用。
我猜你的雕刻机不是由 grbl 管理的……它使用什么样的控制器?

绕过 GBRL 检查的问题 #207

非常感谢 Arkypita。我一直在跟踪代码,但一直被各种线程所困扰。

我有一个使用 Marlin 2.0 和 MKS 1.4 板的 TEVO Black Widow。我修改了固件,所以我可以使用 M3、M4 和 M5 的普通 GCode 来驱动激光和小型 CNC 头。
不幸的是,我没有找到本地输出 GCode 的 CNC/雕刻程序。他们都使用 GBRL。
我尝试更改我的 MKS 1.4 上的固件并将其“变砖”。我加载的 HEX 没有引导程序。但是我能够通过 ISP 程序员恢复它。
如果我能找到一些我可以修改的 decemt GBRL 固件,那么我就不会遇到用 XLoader 交换 HEX 图像的问题。

非常感谢
戴夫

绕过 GBRL 检查的问题 #207
所有者

你知道 laserGRBL 可以导出(文件->保存程序)它自己生成的 g 代码文件吗?