开源改变世界!!

发展路径和愿望清单! #125

推推 grbl 2年前 (2022-10-30) 164次浏览 0个评论
关闭
chamnit 打开了这个问题 on 13 Oct 2012 · 35 条评论
关闭

发展路径和愿望清单!#125

chamnit 打开了这个问题 on 13 Oct 2012 · 35 条评论

注释

发展路径和愿望清单! #125
成员

尚尼特 评论 on 13 Oct 2012

该线程将用作提供有关开发路径的更新以及用户可以添加到愿望清单的地方。请随时为这次对话做出贡献,这样我们就可以很好地了解我们的优先事项应该是什么。

当前边缘分支的发展路径(v0.8):

  • 为 Grbl 设置添加更多功能:
    • 启动脚本:可用于设置 G 代码模式(G20)、工作坐标偏移(G10)和启动时自动归位。完全由用户配置。
    • 反转步进启用引脚的设置?也许在 config.h 中可用。我认为由于电气干扰原因,大多数启用引脚都是正常的高电平禁用。
  • 设置模式:这些设置是可选切换,在启动时默认禁用。
    • 可选停止、单块模式、块删除、自动循环启动
    • “试运行?”:技术上以搜索速率移动轴以物理测试程序而无需切割。不重要,但可能是一种 g 代码检查模式,没有任何动作。
  • G 代码状态反馈。一个特殊的“$”命令将提供 g 代码解析器模式的当前状态。主要用于 GUI,但对于直接界面仍然有用。
  • 充实实时状态报告:状态报告功能将移至其自己的模块中,以阐明其使用并简化可破解性。在大多数情况下,默认报告只会提供职位数据,但每个报告会有更多或更少数据的可配置选项。这可能包括进给速度、行号处理(可能)、缓冲区状态、运行模式等。
  • 软限制:如果启用了归位,用户可以指定他们的机器工作量限制。当g-code被发送到Grbl时,解析器会检查机器位置是否会超过这个限制。如果是这样,Grbl 将简单地报告 g 代码错误。换句话说,它会在机器实际移动该块之前就出错。

v0.9 的愿望清单:

  • Pin out of runtime commands (cycle start, feed hold, reset):这需要一个 debounce 例程,可能需要一些重构 Grbl。需要对此进行一些思考,以考虑创建一个全局系统时钟来监控运行时命令、发布状态报告和去抖动信号。
  • 轴加速度无关性:目前 Grbl 中只有一个加速度参数。为了以机器的绝对最大速率移动,每个轴都需要独立的加速度参数。计划者将需要重新考虑这一点。计划用于 v0.9。
  • 进给率倍率:这可能难以正确实施到步进模块的当前状态。将花费大量时间和精力来完成这项工作。计划用于 v0.9。
  • 慢跑模式:这将需要对 Grbl 进行一些重构,并考虑如何最好地实现这一点。如果有足够的引脚可用,可能会被固定。计划用于 v0.9。
  • 手动设置机器原点?不确定工作坐标(G54、G92)和归位功能是否需要这样做。此外,如果不启用归位,Grbl 将在启动时自动假定归位是当前位置。启用归位后,这将使软限制的用处无效。
发展路径和愿望清单! #125
贡献者

阿尔法研究 评论 on 13 Oct 2012

是否可以将#110添加到 V0.8 中?

步进锁延迟拉取请求#110
#110

发展路径和愿望清单! #125
成员作者

尚尼特 评论 on 13 Oct 2012

已经做了。它在 v0.8b 测试版下载中。:)

编辑:重新查看您在拉取请求中的内容。错过了您希望保持步进器处于启用状态的事实。因此,我将对 settings.stepper_idle_lock_time 的最大值(255)进行值检查。如果是这个值,它不会禁用步进器。否则,如果值为 0,它将执行短锁定或不锁定。应该在下一次推送中(可能在几天内。使用其他设置计算一些细节)。

发展路径和愿望清单! #125

可配置的品牌。似乎 grbl 正在那里找到更多和矿石应用程序,但需要针对每个应用程序进行调整。也许这在机器控制中必须预料到。我们是否达到了 CMake 层有意义的地步?在我自己的分支中,从上游合并已经变得乏味,即使我没有做很多事情。也许 CMake 不是正确的答案,但恕我直言,一些关于可定制性没有碎片的想法是值得的。

发展路径和愿望清单! #125

如果通过可配置使您的意思是在为我的机器编译时包含特定于机器的代码,那么使用#defines 可以更容易地完成(并且对于由 config.h 控制的各种事情已经完成的方式)。

发展路径和愿望清单! #125
成员作者

尚尼特 评论 2012 年 10 月 18 日

机器特定的代码和对不同硬件的更多支持一直是一个常见的功能要求,但不幸的是,由于 Grbl 正在开发中,每次代码更新时不必支持多个平台要容易得多。将来,很可能当我们达到 v1.0 时,我们将认真开始考虑为常用硬件创建多个构建。我们使用 Arduino 是因为它无处不在且便宜,尽管它缺乏速度和内存。我不得不说它在代码效率和内存管理方面是一个很好的练习,但我敢打赌,这项工作将证明非常方便,并且让 Grbl 无需太多努力就可以高度扩展。

发展路径和愿望清单! #125

无头 SD 卡功能即将推出?

发展路径和愿望清单! #125

刀具长度补偿并支持自动刀具归零。

发展路径和愿望清单! #125

现在归位效果很好,我认为软限制是一个很好的补充。

我当时正在考虑使用我的 CNC 来制作电子电路板,我认为 CAM 程序会输出 G81 钻孔循环来为通孔组件钻孔 – 这对其他人来说也是一件好事?

+1 刀具长度补偿并支持自动刀具归零。

发展路径和愿望清单! #125

Z 轴的独立进给率也非常好!特别是对于 ShapeOko 所有者。由于 Z 轴,我的速度限制在 500 毫米/分钟,但 X 和 Y 最高可以达到 5000 毫米/分钟。

发展路径和愿望清单! #125
成员作者

尚尼特 评论 2012 年 11 月 26 日

感谢您的输入。几乎所有事情都在待办事项清单上。首先是每个轴的独立进给率和加速度,然后是进给率倍率,然后是刀具偏置。这个顺序部分是自私的,但主要是重要性顺序。:)

但是,钻孔周期没有计划。主要原因是这样的固定循环可以很容易地通过 CAM 工具转换为直接的 g 代码。稍后,我们将把 Will Winder 的 g-code 发送器引入 Grbl 组织,并开始正式支持它。如果需要,我们可以将任何固定循环直接放入该界面。

发展路径和愿望清单! #125

(友情提示)如果你这样做[在流脚本中实现固定循环,让后者将前者展开为 Grbl 本身可以处理的 G 代码原语],那么人们会觉得你没有理由不实现所有这些方式(您可能已经知道,G81 并不是唯一的固定循环)。

我个人支持任何使 Grbl 覆盖尽可能广泛的 G 代码方言的技术解决方案 :-)

发展路径和愿望清单! #125

仅供参考
https://sourceforge.net/tracker/?func=detail&aid=3589955&group_id=260483&atid=1127364
我使用 pcb2gcode,我刚刚完成了一个小补丁,它只输出 G81 中的 G0 和 G1 命令

发展路径和愿望清单! #125
成员作者

尚尼特 评论 2012 年 11 月 26 日

添加钻孔固定循环不会很难做到。这是它可能占用的宝贵闪存空间。就个人而言,我不介意有一个啄钻固定循环,但 Grbl 的最初愿景是没有任何会使事情变得过于复杂的东西。在这一点上,我们可能超出了这一点。拥有一个更强大的控制器似乎更重要。

如果我们有足够的空间,我会投票支持在 328p 版本的 Grbl 上添加一些钻孔固定循环。否则,它将不得不等到我们转向更大更好的芯片。644、128 或 ARM。我认为644就足够了。

发展路径和愿望清单! #125

+1 拥有更强大的控制器似乎更重要。

我认为功能更完整与过于复杂相反。我在 Shapeoko 论坛上看到一位用户认为他做错了什么,因为 G81 声明不起作用。我认为如果它奏效了,对他来说会更容易……所以更少的并发症:-)

还是您谈论的是代码库而不是用户体验?

关于更大更好的芯片,我想知道是否继续使用 AVR 和 Arduino,Mega 是否会成为下一个更大的“东西”——现在有人在使用带有 Grbl 的 Mega 吗?

看起来价格也没有太大不同:
Arduino Mega 30 美元到 65 美元
Seeeduino Mega 是 43 美元
8 倍闪存
4 倍内存
2 倍 eeprom
http://www.atmel.com/devices/ATMEGA2560.aspx?tab=parameters

我猜想并希望我可以把我的 grblShield 贴在 Mega 的顶部——我确实读过引脚具有相同的布局……但我不知道这是否可行?我曾经订购过 Seeeduino Mega,但我从未使用过它——我可能需要做一些测试吗?

发展路径和愿望清单! #125
成员作者

尚尼特 评论 2012 年 11 月 26 日

我的意思是代码库是的。但是,我们在组织一切方面做得很好,所以它只会让事情变得更大而不是更复杂。Grbl 最初应该是多个应用程序的 3 轴基础,但似乎一切都开始变得专业化(reprap)或进入步进库。因此,似乎不再需要该基础。

太大的一个问题是,当您使用 atmega 芯片组时,您不会获得 CPU 周期。主要是内存、闪存和引脚。大多数维修人员在他们的系统中使用 644 芯片,因为芯片成本很低,而且他们发现它有足够的空间、内存和引脚来满足他们的需要。我同意,但是没有太多的板有这个芯片。因此,128 芯片可能也是一个合乎逻辑的选择(Teensy,Seeduino Mega)。我认为 2560 Arduino Megas 对于 CNC 应用程序来说有点过头了。

对于您的 grblshield,您可能需要一个用于 Seeeduino 的适配器屏蔽,以确保引脚处于我们指定的任何分配中。它很可能会改变。

发展路径和愿望清单! #125

阅读所有提交日志看起来 0.9 接近功能完成。将一些开发合并到边缘并从边缘冻结开始并且只在 0.9 发布之前修复错误的计划是什么?

发展路径和愿望清单! #125
成员作者

尚尼特 评论 2013 年 3 月 7 日

我们还有一些工作要做。关于 dev 分支,@jgeisler0303我一直在离线讨论计划器的状态以及如何让它与进给率覆盖一起工作,并有办法保护块在某些极端情况下不被覆盖(在覆盖时更常见)。这真的很棘手而且进展缓慢,但我们正在取得进展。

还有一些其他的事情需要做,例如:

  • 使硬限制在状态方面更具可配置性
  • 更改归位例程,使其在搜索阶段和可能的定位阶段使用主步进算法。
  • 决定如何处理软限制。这可以被删除并依赖于 GUI 来完成它。主要是因为空间限制。
  • 确定一个更好的慢跑界面,但这不是高优先级。只要我们能确保它与 UGS 的方法一起工作,而不会出现覆盖规划器块的问题。
  • 当然,进给率覆盖并确定它将如何工作。

可能还有更多,但我现在不记得了。

随着我们的进行,边缘分支可能会获得越来越多的“beta 级”功能。开发分支基本上是一个审查和公开破解一些新东西并让其他人参与推动开发的地方。

发展路径和愿望清单! #125

您好,我最近一直很感兴趣地关注 GRBL。在这个讨论中,有时会提到一个单独的 GUI。您可能已经知道这一点,但我建议您查看 Zapmaker 的 GRBL Controller。

http://zapmaker.org/projects/grbl-controller-3-0/

从外观上看,它的开发非常活跃,并且在 IMO 方面有很多承诺。
它也是跨平台的。
只是我的两分钱…..
非常感谢您花时间开发 GRBL!

问候,彼得

发展路径和愿望清单! #125
成员作者

尚尼特 评论 2013 年 3 月 12 日

@peter76: 看起来很不错。感谢分享!当我有机会时,我一定会试一试。

发展路径和愿望清单! #125

我在未来的思考部分注意到,某种反向间隙补偿是一个考虑因素,但由于它在不同情况下的工作原理而变得复杂。
我的问题 – 允许一些非常基本的反向间隙补偿有多难,当任何人需要改变方向时,它实际上只是停止所有轴,应用补偿量,然后像从静止状态一样恢复?

我问是因为我一直在构建一个 diy cnc 设置,并且它目前在 xaxis 中具有显着但可重复的反弹。如果我可以在基本情况下消除/减少它,它将更容易使用机器来加工具有更精细公差的更好零件以减少间隙。
所以我在绘制弧线时不需要复杂的补偿。从字面上看,只是在反转方向时进行补偿。
显然,最终目标应该是使用这样的功能是一个权宜之计,可以帮助您创建某些可以减少实际反弹的部分。

另外 – 感谢 GRBL,我发现它真的很容易使用,我对结果非常满意。以上只是一个愿望清单项目,可以让我自己的构建更容易一些。

发展路径和愿望清单! #125
成员作者

尚尼特 评论 2013 年 3 月 26 日

@danielwould: 安装一个非常基本的反冲补偿并不难。我已经在它应该安装的一般区域为它准备了一个占位符。尽管可能需要做一些工作才能确保正确设置方向。

主要问题是间隙补偿几乎总是会使机器在必须这样做时减速到停止。这是因为每当发生反向间隙补偿时,机器都必须对其行进方向进行近乎垂直的移动。这可能会导致这些位置出现一些不必要的驻留,这对 CNC 割炬台或 3D 打印机之类的东西可能是不利的。有很多方法可以解决这个问题,比如将移动插值低于某个容差,但这是小 Arduino 无法解决的问题,至少在闪存空间方面是这样。

虽然,即使是反冲补偿设置所需的闪存空间也可能成为交易杀手。我们正在努力推动太空天花板,所以它可能是最后安装的东西之一。如果没有,我们可能会按照编译时选项的方式做一些事情,您可以选择安装它,同时选择退出另一个功能以换取闪存空间。

发展路径和愿望清单! #125

@chamnit有趣的是,我实际上喜欢编译选项的想法,甚至只是为了我的 cnc 路由器的目的而专门针对“入门”的一次性独立版本我真的只是想剪掉一些反间隙部分。主要问题是我手工制作的组件缺乏足够的精度。我很确定,通过非常基本的间隙补偿,我可以磨出足够好的零件来升级机器,然后使软件补偿的需求无效。至少就我的目的而言,如果我的反弹低于 1 毫米,我会非常高兴 :-)
因为它是我可以在 gcode 中手动补偿,通过重新分解所有内容,所以我总是从同一个方向处理每一个切口。但这是很多手工制作的gcode..

从字面上看,如果我可以告诉 grbl 每次在 x 轴上改变方向时补偿 2mm,我相信它会给我足够的精度来铣出几个特定的​​部分(许多不同深度的直线),然后减少问题到可接受的水平。

你提到它有一个占位符,那在哪里?我正在考虑看一下 hte 代码,看看我是否可以破解一些足以解决我当前需求的东西……

发展路径和愿望清单! #125
成员作者

尚尼特 评论 2013 年 3 月 26 日

@danielwould:它位于 mc_line() 函数内的 motion_control.c 文件中。关于反冲补偿以及它应该如何在那里工作有一个相当大的评论。我可能会选择硬编码您需要的所有内容,而不是处理添加新设置并确保一切在系统内正常工作。

至于如何做到这一点,我首先要跟踪每个轴的最后行进方向,这意味着您可能需要一些持久变量。如果您检测到方向发生变化,您将插入反向间隙补偿线移动。(所有移动都以 mm 和机器坐标为单位。)您需要确保在执行反冲线时还复制并执行该 do-while 循环和 plan_buffer_line()。后冲线完成后,它应该通过第二个 do-while 循环和 plan_buff_line() 来执行目标运动,但不要忘记向该目标添加任何后冲​​距离。

您可能需要注意的主要问题是,改变目标位置的间隙距离会使 Grbl 的内部定位系统认为它不应该出现在某个地方(即规划器、g 代码和系统位置变量不存在)同步时间更长。)但是,如果您小心并且一次只运行一个程序并在其间重置,这应该没问题。

发展路径和愿望清单! #125

我身边有几个愿望。

  • 如果在未来的版本中 grbl 保留采用 gcode 并直接执行的黑盒理念,那就太好了。
  • 简单的编码风格,易于理解和破解。
  • 轴的每一端都有单独的末端开关的可能性 – 根据移动方向处理的每个末端分开。
  • 每个开关都可以反转
  • 从这个意义上改进初始寻家,只有在 motion_control.c 中的功能才能移动电机。目前据我了解,limits.c 中存在不必要的移动控制重复;使用 mc_line 进行归位。
  • 通过 i2c 地址 0x20 或 0x38(即通过 LiquidCrystal_I2C lib)显示 20×4 文本的可能性 – 显示 pos (x,y,z)、结束开关、停止开关和当前 gcode。
  • 基于开关的操纵杆的引脚,可以通过 i2c (PCF8574A)
  • 如果速度和大小是一个问题,arduino due 听起来不错。无论如何,那些需要更多马力的人将在硬件上进行更昂贵的设置,因此与此相比,arduino due board 的定价并不是一个大问题。它现在似乎很受欢迎,我今天收到了我的。在 ebay 上还有一个稍微便宜一点的克隆,叫做“taijiuino”,售价 > 35 欧元
发展路径和愿望清单! #125
成员作者

尚尼特 评论 2013 年 4 月 10 日

@cnc4fun: 感谢输入!以下是对您的评论的一些回应。

  • 将 Grbl 保持为黑匣子,g 代码输入,运动输出,是计划,并将继续是计划。
  • 我们试图让事情尽可能简单,但大多数时候,空间和内存限制有时会阻碍写作的可读性。无论如何,我认为当 Grbl 的 ARM 版本在 ernest 开始时,我肯定会开始考虑保持模块化并更简单地根据需要添加/删除东西。
  • 正如 TO-DO 问题标签所说,限制反转正在进行中。
  • 集成到主要步进算法中的归位运动控制也在开发中。由于 328p 太慢(几乎不够快),我担心 Grbl 的步进算法将无法进行任何状态检查和分叉来解释归位循环运动,因为它必须是特殊的运动情况。我安装了“重复”作为临时解决方案,直到我可以验证它不会成为问题。从最近的一些测试来看,我认为将归位集成到步进算法中应该没问题。不过,在我这样做之前先计算出进给率。
  • 文本显示支持将不是一个选项,IMO。没有足够的空间来编写这段代码(也没有足够的备用引脚),我认为通过 GUI 或其他控制器的接口可以很好地处理这个问题。
  • 操纵杆……也许吧。还在考虑这个,但我认为这不会发生。另一方面,我认为仍然需要一个好方法让 Grbl 轻松地为接口提供便利。
  • Arduino Due 的初步工作已经离线开始。我们仍在讨论如何组织事物,我目前正在研究代码库将/可以如何随着 CPU 周期、中断级别和闪存空间的大幅改进而改变。感谢 taijiuino 的提醒!
发展路径和愿望清单! #125

很抱歉碰到一个旧线程,但如果您想帮助开发 Arduino Due,请告诉我。

发展路径和愿望清单! #125
成员作者

尚尼特 评论 2013 年 10 月 18 日

@EliteEng: 感谢提供帮助。在过去的几个月里,我被淹没了,但现在我带着一大堆待办事项清单又回来了。我目前正在研究我在另一个线程中提到的进给率覆盖和规划器优化。这些需要重大的结构代码更改,因此开始尝试转换当前代码库不会太有用。然而,还有很多其他的东西需要添加,比如 PWM 主轴、适当的慢跑、稍微修改归位程序等等。

发展路径和愿望清单! #125

顺便说一句,我会注意到,如果 GRBL 旨在成为类似于 Mach3 或 LinuxCNC 的 Gcode 处理器替代/解决方案,则需要为反弹提供规定。举个例子,我正在研究一个 RongFu RF-40 转换,它有大约 0.160″ 的反向间隙,这是不可调节的。我还没有找到任何可以输出带有反向间隙补偿的 gcode 的软件,因为所有 CAM 程序都假设gcode 处理器处理它。最后,似乎没有程序可用于发布处理 gcode 并添加反冲。我很难在这里做什么。看起来我要么 a) 将更多的 $$ 投入到控制器中它可以与 linuxCNC/Mach3 一起使用,编写一个插件来处理使用 pycam 之类的反冲,编写一个独立的 gcode 处理器,或者在最坏的情况下手动编辑文件。无论如何,如果我能得到一两个关于在哪里介绍在 GRBL 中处理它的代码的指针,我愿意编写代码。它不应该太难(著名的遗言……)。

发展路径和愿望清单! #125
成员作者

尚尼特 评论 2014 年 4 月 10 日

@austinblanco: 哇。0.160″ 的反弹是令人惊讶的,而且很多。如果你想在更好的控制器上花费更多的美元,我会考虑用它来修复反弹。你必须对你的机器做一些事情来降低这种情况到千分之几英寸。

另外,请记住 Grbl 不是 v1.0,这意味着可能会在这里和那里缺少一些东西,例如反冲补偿。但是,就此而言,询问一些 GUI 开发人员(如 UGS)是否可以将反冲补偿添加到他们的流媒体并实时更新它们并没有什么坏处。

发展路径和愿望清单! #125

只是想跟进这件事。我在 X 轴和 Y 轴上都工作过,并且间隙低于 0.020″。仍在尝试在凸轮生成 prog 和 grbl 之间找到解决方案 – 有一个名为“nolash”的解决方案似乎是我正在寻找的因为 – 还没有开始工作。无论如何 – 除了这个打嗝 – grbl 太棒了!

发展路径和愿望清单! #125

我希望看到对 z 轴触摸板的支持。是否正在考虑将其用于将来的版本?

发展路径和愿望清单! #125

我注意到您没有使用 GitHub 的发布功能。这很容易使用,我认为这将是有益的。现在 GitHub 上有什么版本?我想获得 v0.8c 并将其加载到我的 Arduino IDE 中。

发展路径和愿望清单! #125
成员作者

尚尼特 评论 2014 年 5 月 8 日

@Scott216:通过 G38.2 进行探测已安装在开发分支上,并且已用于在 Nomad883 GUI (kickstarter)中通过触摸板设置刀具长度偏移。我敢肯定,当源代码固化后,其他 GUI 也会这样做。开发分支通常工作正常,节省了几个小错误。在我完成测试后,它将进行一次巨大的 g 代码解析器大修。我们不会很快直接支持刀具长度偏移,因为它需要大量的支持代码和更多的 EEPROM 存储来保留所有这些信息。无论如何,这更适合 GUI。

不确定 Github 的发布功能是什么,但 Github 似乎总是在引入我不知道的新事物。主/稳定版本是 v0.8c。单击主页底部附近的链接。如果您选择使用开发分支 v0.9d,则必须自己从源代码构建。

发展路径和愿望清单! #125

感谢您提供有关探测的信息。关于版本,如果您查看页面顶部附近的 GRBL 描述下的主页,您会看到“0 个版本”链接。单击它,您可以拍摄当前提交的快照并创建一个版本。您可以将其命名为 v0.8c。

发展路径和愿望清单! #125

如果我在我的 uno 上安装 dev 分支,我将如何使用带有触摸板的探测功能?

发展路径和愿望清单! #125
 
添加标题文本添加粗体文本,<Ctrl+b>添加斜体文本,<Ctrl+i>
添加引号,<Ctrl+Shift+.>添加代码,<Ctrl+e>添加链接,<Ctrl+k>
添加项目符号列表,<Ctrl+Shift+8>添加编号列表,<Ctrl+Shift+7>添加任务列表,<Ctrl+Shift+l>
喜欢 (0)

您必须 登录 才能发表评论!