开源改变世界!!

二重奏支持 #500

推推 grbl 2年前 (2023-02-04) 142次浏览
关闭
keyz182 打开了这个问题 2018 年 7 月 9 日 · 23条评论
关闭

二重奏支持#500

keyz182 打开了这个问题 2018 年 7 月 9 日 · 23条评论

评论

二重奏支持 #500

需要做什么才能为 LaserWeb添加对Duet的支持?我愿意试一试,但不太确定从哪里开始。

二重奏支持 #500
成员
开胃菜 评论了 2018 年 7 月 10 日  

有两个要求。

首先是 lw.comm-server 可以检测到二重奏固件。二重奏固件是否在连接时发送固件识别字符串,或者是否可以使用串行命令查询?

第二个是如何使用 gcode 设置激光功率的方式。支持激光的固件应该接受 S 值作为 G1-G4 命令的参数。这是雕刻的理想选择。像 marlin 这样的其他固件确实需要一个单独的激光功率 gcode 行(如 M4 S128),这需要一些时间,因此会大大减慢雕刻速度。Duet 固件接受哪种类型的 gcode?

二重奏支持 #500
作者

首先是 lw.comm-server 可以检测到二重奏固件。二重奏固件是否在连接时发送固件识别字符串,或者是否可以使用串行命令查询?

是的,它确实。下面的输出(来自 OctoPrint)。

Connecting to: /dev/ttyACM0
Changing monitoring state from 'Offline' to 'Opening serial port'
Connected to: Serial<id=0x6b46a210, open=True>(port='/dev/ttyACM0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=10.0, xonxoff=False, rtscts=False, dsrdtr=False), starting monitor
Starting baud rate detection
Changing monitoring state from 'Opening serial port' to 'Detecting baudrate'
Trying baudrate: 115200
Send: N0 M110 N0*125
Connection closed, closing down monitor
Recv: ok
Changing monitoring state from 'Detecting baudrate' to 'Operational'
Send: N0 M110 N0*125
Recv: ok
Send: N1 M115*39
Recv: FIRMWARE_NAME: RepRapFirmware for Duet 2 WiFi/Ethernet FIRMWARE_VERSION: 2.01beta1(RTOS) ELECTRONICS: Duet WiFi 1.02 or later FIRMWARE_DATE: 2018-06-23b1
Recv: ok
Send: M21
Recv: SDHC card mounted in slot 0, capacity 3.98Gb
Recv: ok
Send: M105
Recv: ok
Send: M105
Recv: ok

这是有关 Duet 固件激光模式的文档

M452:选择激光打印机模式
参数

  • Pnnn用于控制激光器的逻辑引脚号
  • Rnnn全激光功率对应的M3命令中S参数的值,默认255
  • Fnnn用于驱动激光器的 PWM 频率

例子

  • M452 P2 R255 F200 ; 使用加热器 2(E1 加热器)输出引脚切换到激光模式以控制激光

切换到激光模式。这种模式可以处理激光针,并确保激光仅在 G1 移动期间激活,如果激光已启用或 E 正在增加。G0 移动永远不应该启用激光。M3/M5 可用于启用/禁用移动激光。P 参数的逻辑引脚号与 M42 和 M208 命令的定义相同。如果使用加热器或风扇输出来控制激光器,则必须先禁用相应的加热器(参见 M307)或风扇(参见 M106)。

二重奏支持 #500
作者

接下来,似乎 Duet 在 G1 上使用 S 参数进行停止检查,在 G2/G3 上不存在,并且在 G4 中用于以秒为单位的等待时间。

S参数在其他固件上有什么作用?它只是设置强度(例如 S0-255 或 S0-1)还是更简单的开关?

如果例如“在 E 增加时激活激光”不够好,我可以考虑向固件添加对类似参数的支持(尽管它必须是与 S 不同的字母)。

二重奏支持 #500
作者

似乎在 reprapfirmware 的 2.0.2 中支持 G1 上的 S 参数,所以这就是排序。我将看看 lw.comm-server 中需要什么。

二重奏支持 #500

@keyz182,感谢您发起这次对话!我是 Duet 创作者之一,@FabCreator让我进入这个话题。我不熟悉 Laserweb,但它显然是很多人用于激光切割/CNC 的工具,如果它支持 Duet,那将非常酷。为了更快和更可靠的操作,如果 Laserweb 支持“发送到 Duet”选项,那么整个文件可以存储并从 Duet 的板载 SD 卡读取。

@cprezzi如果拥有 Duet 可以帮助您更好地支持它,请随时给我发邮件 info@duet3d.com

二重奏支持 #500
成员

LaserWeb 还不支持将文件发送到控制器的 sd 卡,因为我们一直想成为一个“实时”前端,而不是另一个 gcode 发送器。这对于数控铣削和长矢量激光切割尤为重要。在我看来,前端应该能够立即暂停/恢复/停止作业(无需等待队列中的命令)并实时更改进给和激光功率,就像我们可以对 Grbl 所做的那样。

当然,我愿意支持 Duet 作为更高级的控制器之一。有“只是”两个主要要求:

  1. 我们需要一种检测固件的方法。M115 查询/响应似乎没问题。
  2. 对于快速激光雕刻,PWM 值应在 G1-G3 命令中(如 G1 X100 Y0 S100)。

如果 gcode“方言”接近 grbl 或 smoothieware,它可能会很快实现。有一个 Duet 进行测试显然会加快这个过程;)

二重奏支持 #500

因此,首先看第二部分,在 Duet 上运行的 RepRapFirmware (RRF) 的最新测试版在固件处于激光模式时实现了“S”电源开关。当人们测试 Beta 时,我们将看到情况如何。

为了降低高速光栅化的 gcode 数据速率,我们正在考虑的进一步改进是允许“S”开关成为一定长度的数组,例如

G1 X1 Y1 ;从 X1 Y1
G1 X2.6 S0.0:0.5:0.4:0.4:0.4:0.4:0.4:0.4:0.4:0.4:0.4:0.4:0.5:0.0开始

这将绘制一条 1.6 毫米的线,具有 16 个均匀间隔的强度阶梯,有效地每毫米 10 个强度级别。这会将文件所需的数据速率降低 16 倍。选择 16 作为可管理的数字,但使用其他数字可能更好。

二重奏支持 #500
成员

这听起来很有希望。我总是建议添加“像素线”命令以减少光栅雕刻的开销。

二重奏支持 #500
成员

您是否还根据 x/y 加速度和减速度调整激光 pwm(如 M4 模式下的 Grbl)?

二重奏支持 #500

@cprezzi给我发邮件至bonne@fabcreator.com,我将为您组织一个董事会。:)

二重奏支持 #500

我检查了一下,很明显,基于加速的功率降低尚未在此 Beta 中实现,但会在 Beta 进入实际版本之前实现。

二重奏支持 #500
成员

@FabCreator谢谢你的提议。托尼已经告诉他会为我组织一个 v1.03 板:)

二重奏支持 #500
创客 评论了 2018 年 8 月 16 日  

@cprezzi即使文件直接运行,有没有办法发送实时命令?对于长文件,USB 不够可靠,因此创建一个发送到将是对 LW 的一个很好的补充。我认为这没有被进一步探索的主要原因是因为 smoothie 在这方面无法可靠地读写。(这是在 LW3 和 peter 一起回来的)

以下是我可以找到的有关该主题的主题,可能会有所帮助。
LaserWeb/deprecated-LaserWeb3#16
LaserWeb/deprecated-LaserWeb3#138
LaserWeb/deprecated-LaserWeb3#171(未添加的原因丢失在已删除的 G+ 帖子中。)

二重奏支持 #500
成员

@FabCreator如果在 SD 作业执行期间接受“实时”命令,则取决于固件。我认为 RepRapFirmware 有一些实时命令(如暂停/恢复)可以在作业运行时使用。@T3P3: 是否正确(也通过 USB)?

我们还讨论了通过以太网 (LAN/WLAN) 连接 Duet,就像 DuetWebControl 与固件对话一样。

我认为仅添加“send2SD”功能是不够的。当文件名已经存在时会发生什么?我认为我们需要实现整个 SD 支持(dir、cd、存储文件、读取文件、删除文件)。

二重奏支持 #500

@cprezzi是的,一些命令没有被缓冲以允许更快的暂停/恢复。

如果您通过 HTTP 访问 Duet,那么执行文件处理的命令已经在 API 中。

二重奏支持 #500

期待看到这方面的进展。
最近升级为二重奏,希望很快能看到支持。(所以我不必为激光和打印而安装两块板)

二重奏支持 #500
成员
开胃菜 评论了 2018 年 9 月 8 日  

我已经在lw.comm-server中实现了Duet的USB串口通信,并合并到master分支。SD 功能也已在服务器中实现,API 已扩展,仅前端部分仍然缺失。

二重奏支持 #500
作者

@cprezzi前端需要什么?我可以看看并尝试实现所需的内容,但可能需要一些指导。

二重奏支持 #500
成员
开胃菜 评论了 2018 年 10 月 8 日  

@keyz182前端需要一个选项来管理 SD 卡内容(列出文件夹、cd、上传或删除文件)。就像一个迷你文件浏览器。

二重奏支持 #500
作者

好的,直接使用 USB 是否需要任何东西(即像其他板一样使用它)?

二重奏支持 #500
成员

不,USB 连接由编译到 exe 中的 NodeJS 服务器(lw.comm-server)处理。客户端(前端)必须在 websocket 连接上使用服务器 API(如https://github.com/LaserWeb/lw.comm-server/wiki/API-(for-client-communication)中所述。

您可以在https://github.com/LaserWeb/LaserWeb4/blob/dev-es6/src/components/com.js中找到当前的机器控制前端。最好是添加一个“管理 SD”按钮和带有文件资源管理器的弹出对话框,以便在 SD 卡中导航,能够创建/删除文件夹和上传/删除文件。

二重奏支持 #500
翅驴 评论了 2019 年 1 月 15 日  

关于 gcode 的快速问题。我知道 Smoothie 和 Grbl 彼此之间存在细微差别。自从从 Smoothie 转向 Duet 之后,我发现很多东西在结构上都与从头开始有所不同。

固件类型之间是否存在任何 gcode 问题,或者这些问题是否包含在原始假设中?(我知道我已经看到关于设计决策和假设的多次讨论,Duet 是否有任何破坏交易的因素?)(除了可以在设置中添加到 gcode 的前/后 gcode 添加之外)

最重要的是,由于前端控制尚未被任何人实施,是否存在手动保存(smoothie)gcode 并通过 DWC 上传并从 SD 卡运行的问题?
使用简单的激光填充,除了 G0/G1 命令之外,我没有看到任何东西,只要 Duet 跟踪相同的 S 参数(我需要深入研究)一切都应该有效吗?

(还有自 6 月以来为 Windows 安装编译的更新的二进制文件,其中包括您的后端更改?)

二重奏支持 #500
成员

@Wingeddonkey我认为您最好在 RepRapFirmware 论坛上询问 gcode 详细信息中的差异。

据我了解,RepRapFirmware 中的 gcode 解释应该非常接近 Smoothieware,因此手动保存 gcode 并上传到 SD 卡执行应该可以。

最新的二进制文件始终发布在https://github.com/LaserWeb/LaserWeb4-Binaries/releases上。