开源改变世界

功能请求:将可重置的灯丝计数器添加到 EEPROM 中 #924

推推 grbl 2年前 (2023-02-06) 172次浏览
关闭
nicolas-rambaud 打开了这个问题 2014 年 5 月 19 日 · 28条评论
关闭

功能请求:将可重置的灯丝计数器添加到 EEPROM 中#924

nicolas-rambaud 打开了这个问题 2014 年 5 月 19 日 · 28条评论

评论

功能请求:将可重置的灯丝计数器添加到 EEPROM 中 #924

你好,
我认为添加一个可从 LCD 访问的“已用灯丝长度”计数器以及数据将被累积到 EEPROM 中的计数器可能是一个很酷的功能。
一些 LCD/GCode 命令/菜单可以按用户意愿重置灯丝计数器。

像这样,我们可以像 DaVinci 3D 打印机一样了解我们的线轴上还剩下多少米。
有时我们并不清楚我们是否有足够的灯丝来打印一个大的或小的塑料部件。

对我来说,最简单的方法是只计算所用灯丝的长度,并在打印结束时或打印中止后将其加起来。用户将通过计算或使用 1 个完整的塑料线轴后知道 3mm/2.85mm/1.75mm 线轴上有多少米。
基于此,他将大致知道他自己的线轴上还剩下多少米。

请告诉我你的想法。

功能请求:将可重置的灯丝计数器添加到 EEPROM 中 #924
贡献者

想法很好,但是:

  1. 这应该在假脱机中而不是在打印机中实现;如此缺口的线轴。这方面的工作正在进行中。请参阅 UFID。
  2. 打印机不知道灯丝直径,这使得它有点棘手/不准确。您不能假设每个人都有 1.75 毫米的挤出机,也不能假设每个 3 毫米的灯丝正好是 3 毫米。如果它是 2.90mm,那么您的计算将毫无价值……
功能请求:将可重置的灯丝计数器添加到 EEPROM 中 #924
贡献者

UFID 项目旨在允许的众多事情之一是跟踪灯丝使用情况,并且“(可重复使用的)EEPROM 需要连接到线轴才能实现此功能。

@nothinman可以使用用于 E 值的任何单位来跟踪灯丝直径。目前,这通常是长度(有些灯丝按长度出售,但大多数是按质量),但 UFID(也对灯丝直径进行编码)将要求 E 值以体积为单位(立方毫米),现在支持通过使用 M200 设置灯丝直径。

功能请求:将可重置的灯丝计数器添加到 EEPROM 中 #924
贡献者作者

你好,你是对的非常有趣的项目。我会很期待的。

也感谢您关于灯丝直径的评论,我想我们
需要将其设置为固件中的变量并使用
LCD/EEPROM(如用于床补偿的 Z 偏移参数)或通过
重新编程不是固件的固件来更新它当您
经常更改灯丝类型/直径时,那个友好的用户。

De : nothinman [ mailto:notifications@github.com ]
Envoyé : lundi 2014 年 5 月 19 日 16:57
À : ErikZalm/Marlin
Cc : Nicolas Rambaud
Objet : Re: [Marlin] Feature Request : Add a resetable filament counter
into EEPROM ( #924 )

想法很好,但是:

  1. 这应该在假脱机中而不是在打印机中实现;如此缺口
    的线轴。这方面的工作正在进行中。请参阅 UFID。
  2. 打印机不知道灯丝直径,这使得它有点棘手/
    不准确。您不能假设每个人都有 1.75 毫米的挤出机,或者每
    根 3 毫米的灯丝正好是 3 毫米。如果它是 2.90mm,那么您的计算将
    一文不值…


直接回复此电子邮件或在 GitHub 上查看它
https://github.com/ErikZalm/Marlin/issues/924#issuecomment-43514579
。[图片:图片支持 par l’expéditeur。]

功能请求:将可重置的灯丝计数器添加到 EEPROM 中 #924
贡献者

@whosawhatsis我打算用完全不同的东西来回答,但当我想到它时,我明白了你的意思。标准 E 值是使用的原丝的毫米数,与直径无关,但这正是我们想要的。所以我收回我之前说过的话——是的,计算这个应该很容易。但我认为这不应该存储在打印机的 EEPROM 中。我觉得这个信息应该回给host,然后hosts存储起来。那是因为如果您更换灯丝,您将如何重置计数器?您将如何恢复计数器?我知道这是可行的,但我认为它不应该在固件中。固件应该只计算使用的灯丝并报告回来。

功能请求:将可重置的灯丝计数器添加到 EEPROM 中 #924 boelle 将此 添加到 功能请求第 4 轮里程碑 2015 年 3 月 23 日
功能请求:将可重置的灯丝计数器添加到 EEPROM 中 #924

Marlin 中已通过全局变量提供打印期间使用的耗材总量

当前位置[E_AXIS]

然而,切片器(例如 slic3r 和 Cura)会每隔一段时间插入一个 G92 E0 gcode,目的是防止 current_position[E_AXIS] 值溢出(或舍入错误)。Slic3r 非常规律地插入一个 G92,而 Cura 仅在总灯丝数超过 9999 毫米时才插入一个 G92。

通过使用 current_position[E_AXIS] 并在收到 G92 时将该值添加到总计,很容易保持准确的灯丝消耗总量。我已经在我自己的固件版本中对此进行了修改,并且运行良好。每当收到 G28(假设新打印开始)时,也可以将使用的总灯丝重置为零(或存储)

case 92: // G92
  if (!code_seen(axis_codes[E_AXIS])) st_synchronize();
  for (int8_t i=0; i < NUM_AXIS; i++) {
    if (code_seen(axis_codes[i])) {
      if (i == E_AXIS) {
        Total_E[E_AXIS] = Total_E[E_AXIS] + current_position[E_AXIS]; // update running total
        current_position[i] = code_value();
        Total_E[E_AXIS] = Total_E[E_AXIS] - code_value(); // if value is <> 0
        plan_set_e_position(current_position[E_AXIS]);
      }
    }

在确定完成打印需要多长时间时,总耗材使用值也非常有用。事实证明,在整个打印过程中,灯丝的使用率相当恒定。通过推断随时间使用的灯丝与所需的灯丝总量,可以合理准确地估计完成打印所需的时间。

功能请求:将可重置的灯丝计数器添加到 EEPROM 中 #924
成员

我喜欢!当打印完成时,该值可以与总打印时间一起显示。无论如何,当前的完成线太长了。

功能请求:将可重置的灯丝计数器添加到 EEPROM 中 #924

@thinkyhead为了能够使用消耗的灯丝计算完成时间,Marlin 还需要知道所需的灯丝总量。我认为在印刷早期将需要 M gcode 来执行此操作。总灯丝可以通过扫描 SD 卡上的打印 gcode 文件来计算 – 但这是一项相当复杂的任务。

功能请求:将可重置的灯丝计数器添加到 EEPROM 中 #924
成员

@Ziggy2013之前有人建议预扫描 GCode,但当然你只能通过 SD 打印来做到这一点。一些切片器将在 GCode 的注释中包含总灯丝体积。在固件中,获得测量值的唯一可靠方法是在打印过程中将所有值相加并在最后显示最终值。通过查看经过的总时间并将其除以完成的百分比,可以在整个打印过程中估算打印时间。

功能请求:将可重置的灯丝计数器添加到 EEPROM 中 #924

@thinkyhead绝对同意 – 跟踪消耗的灯丝的唯一可靠方法是在打印过程中将其加起来 – 执行此操作的大部分功能已经存在。

使用“完成百分比”(即读取的 SD 卡文件的百分比与文件长度的百分比)估计打印时间非常不准确并且在实践中实际上没有用。

然而,消耗的灯丝与所需的灯丝总量相比,作为打印完成时间的预测指标要准确得多。

功能请求:将可重置的灯丝计数器添加到 EEPROM 中 #924
成员

我同意时间估计几乎毫无意义。但我个人一直试图在脑海中这样做,如果固件帮我做了,我不介意。

功能请求:将可重置的灯丝计数器添加到 EEPROM 中 #924

使用随时间消耗的灯丝与所需的灯丝可以估算出在 1-2 小时的打印过程中大约 5 分钟内完成的时间,并且如果进给率在打印过程中向上/向下变化,则可以补偿/调整时间估算值。

在我的设置中,我添加了一个 M gcode M601 Fxxxxx,它告诉固件所需的总灯丝 xxxx。完成的时间估计然后变得非常准确和有用。这适用于基于 PC 和 SD 的打印。也许我应该为此提出一个单独的功能请求。

无论如何,计算消耗的灯丝总量将是一个很好的开始。

功能请求:将可重置的灯丝计数器添加到 EEPROM 中 #924
成员

@Ziggy2013我确实喜欢拥有可以预先传达此类信息的 GCode 的想法。当然,使用它取决于主机软件,或者至少是切片器。而且,我认为许多主机喜欢在监视打印时自己执行此操作。

功能请求:将可重置的灯丝计数器添加到 EEPROM 中 #924

@thinkyhead设置所需灯丝总数的 M 代码非常容易实现。但是我不知道应该使用的标准 M 代码。我决定使用 M601,因为它与 M600“换灯丝”有关系

M601 Ex Fyyyy ; E = 挤出机 #,需要 yyyy 长丝。

另一种选择是将 extruder# 和 filament 所需的参数添加到现有的 M 代码中

M701 ; 加载灯丝

IMO 应该告诉打印机完成打印需要每个挤出机的灯丝数量。可能还应告知要使用哪种类型/颜色的灯丝。未来打印机可能会使用的所有信息。

功能请求:将可重置的灯丝计数器添加到 EEPROM 中 #924
成员

好吧,公平地说,Marlin 在使用 gcode 方面有很多自由。是M851标准吗?不,但它用作设置 Z 探针偏移的默认代码。所以我们可以有点创意。也许有一个标准的 gcode 用于向机器人发送“信息”。我将浏览 RepRap wiki 上的 GCode 文档,看看是否有这样的东西……

功能请求:将可重置的灯丝计数器添加到 EEPROM 中 #924
贡献者

喜欢 (0)