开源改变世界

SDRamps 轮盘赌 #198

推推 grbl 3年前 (2023-02-05) 210次浏览
关闭
tenaciousRas 打开了这个问题 2012 年 7 月 20 日 · 30条评论
关闭

SDRamps 轮盘赌#198

tenaciousRas 打开了这个问题 2012 年 7 月 20 日 · 30条评论

评论

SDRamps 轮盘赌 #198

预期:使用 Pronterface 从 SD 卡启动打印。每次我发送从 SD 卡打印的命令时,当我从我的电脑上断开 USB 线时,打印应该会继续。

实际情况:当我们从 PC 上拔下 USB 线时,我们从 PC 启动的 SD 打印中有相当一部分会停止……这让人想起俄罗斯轮盘赌。

它可能是我们的打印机,特别是 MEGA,因为它的 RAMPS 12v 电源有问题。然而,我们已经解决了这个问题,并成功地从 SD 卡打印了很多次。这个问题似乎是随机定时的,我有理由怀疑它可能与 ACK 序列有关。换句话说,如果我们在 ACK 序列中间移除 USB 线,固件会在 SD 打印期间失败吗?如果是这样,那就可以解释尝试复制的困难了。

SDRamps 轮盘赌 #198

再次见证了这一点。这次我注意到当这个问题发生时拔下电源线时 Arduino 会重置,这在频率上似乎是随机的。Arduino 重置很明显,因为指示灯在其上闪烁并且 RAMPS。我们的 Arduino 有问题吗?我们知道它在通过 USB 移除时有电,但我们也知道它存在上述问题。

我已经尝试在 Pronterface 之外重现此行为,例如在 Arduino IDE 中,或者通常只是在连接时观察 Arduino USB 驱动程序的状态,然后断开连接。到目前为止还无法在 Pronterface 之外重现。

SDRamps 轮盘赌 #198

另一种解释可能是:Arduino 的典型过流行为是重置。因此,我们所描述的电源问题可能是错误的。

SDRamps 轮盘赌 #198

Gen6 Electronics 也是如此。

SDRamps 轮盘赌 #198
贡献者

再多的固件修复也无法解决电气问题。很可能您的 5V 电源电压下降导致 Arduino 触发掉电。尝试在 RAMPS 上的 5V 线上添加一个大电容器。

SDRamps 轮盘赌 #198

谢谢你的信息。,我知道我的描述很长,但你读了吗?

证据似乎指向固件问题。由于我没有编写代码,因此了解一些潜在的罪魁祸首可能在架构和/或实现中的位置会很有帮助。我有大约 4 年的数十种语言的编程经验。

这是一个潜在的候选人:Marlin.cpp lines 205-222 — enqueCommand()?我仍在弄清楚 SDCard 命令在 SDPrint 期间如何排队,w/r/t 它们在正常打印期间如何排队。

SDRamps 轮盘赌 #198

谢谢@ahmetcemturan——验证了?!

SDRamps 轮盘赌 #198
贡献者

主循环尝试从串口读取命令,如果串口没有命令,则继续查找是否要读取SD卡。

我有大约 6 到 7 年的嵌入式系统编程经验,通常当人们说“罪魁祸首必须是软件!”时。它以我和示波器结束,显示硬件出现故障。我并不是说它必须是硬件,我只是说这是一种可能性。特别是“有时有效,有时无效”

它也可能是 SD 卡线路上的故障,而不是 Arduino 重置。(与 SD 卡插入导致 UltiPanel 的 LCD 线路出现故障相同)

SDRamps 轮盘赌 #198

谢啦。听起来很难根除。2560 的主机控制器是 ATmega16U2 或 ATmega8U2,具体取决于版本。我想查看 16u2/8u2 数据表,看看是否有任何信息说明在查询时发生断开连接事件时会发生什么——或者这种情况是否真的可行。对此有任何见解吗?

SDRamps 轮盘赌 #198
贡献者

如果是数据线故障,那么您将需要一个示波器。一个好的。您不会在数据表中找到任何内容。断开 USB 电源可能会在某处产生高频脉冲,这可能(通过 EMI)与数据线相互作用。这很复杂,我在这方面的经验很少。
高频脉冲可能来自功率调节器或其周围的其他部件。由于 SD 卡非常敏感(它们必须如此才能获得高速),我认为这是一种非常可能的情况。

(免责声明:我不是电气工程师。我专注于软件/​​硬件交互,所以我对双方都有所了解)

SDRamps 轮盘赌 #198

检查这个
不连接 USB 线!
在 Reprap 的 GND 和 PC 的 USB 线之间放置一个 DC 功率计,然后读取 DC 值。
在展位 GND 之间制作相同的 whis AC,检查值。
你有超过 1V DC 或 1V AC 你有一个 GND Loop。

硬件杀手

SDRamps 轮盘赌 #198

@Hardwarekiller是一个巨魔,显然喜欢下放可能合法(或不合法)的错误报告。忽略巨魔!在我看来,用户可能是一家小公司的人。

SDRamps 轮盘赌 #198

@tenaciousRas
我不是公司的用户,也不是巨魔!
你的帖子是浪费!

Wy在论坛这里诽谤他们就这样用户没有它也只有一个原因,你是个什么样的人!我认为他们应该道歉并收回!

硬件杀手

SDRamps 轮盘赌 #198

我道歉,你不是巨魔。你能提供一张图来帮助我理解你认为我应该在 10 小时前发布的评论中尝试什么吗?

SDRamps 轮盘赌 #198

我想知道这是否有帮助。

Arduino 在连接到 USB 电缆时设计为重置回其引导加载程序。会不会是当你用电拉出电缆时,它会断开连接,然后在某些情况下重新连接?这可以解释你的错误显然是随机的。

如果是这种情况,您可以添加一个电容器来禁用自动复位

http://arduino.cc/playground/Main/DisablingAutoResetOnSerialConnection

我一定会试一试。

SDRamps 轮盘赌 #198

@Justblair感谢您的贡献。自上周以来,我一直想提供更多信息的更新。您的解释对我来说最有意义,因为 USB 连接的引导加载程序的心跳必须保持在每 30 毫秒以内,而且我观察到的情况可能存在一些电气相互作用。我最近更换了我的 MEGA,并且在断言问题是否仍然存在方面保持中立。我目前的用例避免了这个问题:我获得了用于打印的专用计算机并且不再拉 USB 线。如果我的专用机器坏了,我会担心自动打印会再次像轮盘赌一样。我认为您需要运行 50-100 次自动打印才能看到 1 次以上。我认为这份报告不值得立即采取行动。

SDRamps 轮盘赌 #198

如果您想完全避免这个问题,请使用 20×4 LCD 字符显示器和旋转编码器。然后您可以避免将 USB 电缆靠近打印机,因为它会真正自主运行。如果您不使用 printrun,您也可以更快地将草图加载到 SD 上。

SDRamps 轮盘赌 #198

在这种情况下,您对 LCD 面板的推荐会带来额外费用,更不用说每种解决方法都有其自身的负担。例如,每当我必须伸手进入我的控制板以移除 SDCard 以将文件加载到其上时,我都在冒着不犯错误并拉动某些东西的风险,或者我已经将自己从静电积聚中接地在我这样做之前。

我的观点是,没有一种解决方法是好的。

我刚刚在一组完全不同的机器上再次看到这个问题——打印机、MCU 和计算机/控制器。似乎固件和/或硬件可疑。我想知道其他人是否可以重现此问题。

SDRamps 轮盘赌 #198
贡献者

您正在寻找一个免费的商业级解决方案来解决您的问题。祝你好运。

(像 UltiController 这样的旋转编码器+LCD+SD 解决方案创造了奇迹:https ://shop.ultimaker.com/en/parts-and-upgrades/ulticoller-ultipanel.html )

SDRamps 轮盘赌 #198

这是建设性的建议吗?我只是报告一个错误,想知道是否有其他人看到过同样的问题。对我来说,最好自己修复固件,也许使用完全不同的控制板电子堆栈,而不是花钱在 RAMPS 堆栈上安装一个 LCD 面板,这样我就可以解决这个问题。这个线程上的用户实际上是在建议遇到这个错误的用户应该做什么吗?修复错误不是更好吗?

SDRamps 轮盘赌 #198
贡献者

我认为您的错误不是软件问题。由于协议是
打印机是从机,因此应该只回答 pc
命令,拔掉插头应该可以,并且对我有用。
我希望你有硬件问题,并会推荐一个更好的 5V
创建电路。

伯恩哈德

在 2012 年 8 月 27 日星期一上午 11:08,Free notifications@github.com写道:

这是建设性的建议吗?我只是报告一个错误,
想知道是否有其他人看到过同样的问题。对
我来说,最好自己修复固件,也许使用完全不同的
控制板电子堆栈,而不是花钱在 RAMPS 堆栈上
安装一个 LCD 面板,这样我就可以解决这个问题。这就是这个
RepRap 社区最活跃的成员真正的建议(!)?


直接回复此电子邮件或在 GitHub 上查看它 https://github.com/ErikZalm/Marlin/issues/198#issuecomment-8050581。

SDRamps 轮盘赌 #198

嗯……你是说打印机是 USB 客户端,而不是 USB 主机?你是什​​么意思?你是说你不能重现这个问题?

SDRamps 轮盘赌 #198
贡献者

不,协议是 pc 通过电缆发送一些东西,pc
等待响应。我不知道
在打印机等待操作时打印机会发送 PC 应该响应的内容。
我上次尝试时,拔掉了插头。那是六个月前。

伯恩哈德

在 2012 年 8 月 27 日星期一上午 11:31,Free notifications@github.com写道:

嗯……你是说打印机是 USB 客户端,而不是 USB 主机?你是什
​​么意思?你是说你不能重现这个问题?


直接回复此电子邮件或在 GitHub 上查看它 https://github.com/ErikZalm/Marlin/issues/198#issuecomment-8051015。

SDRamps 轮盘赌 #198
贡献者

My point is, you keep saying “this happens!”, and multiple causes and solutions have been proposed. And after that all you say is “I replaced the Arduino and it keeps happening”, seemingly ignoring the information given and solutions proposed.

The best solution (IMHO), removing the need for USB all together, is simply ignored by saying it’s no good. Just because it’s no good in your specific configuration (RAMPS + SDRamps addon)

And then you are surprised that my constructivism goes down?

喜欢 (0)