评论
请注意,Y steps_per_mm 表示 200,但那是因为我在玩一些设置而忘记在 $CD 之前重置,但这不是保存在文件中的内容。如果你需要,我可以用 $localfs 获取文件。 |
更新:还原固件,然后尝试接下来的几个版本。
|
该控制器与菊花链式 TMC5160 驱动程序和 SPI use_enable 是独一无二的。这不是我可以在这里复制的东西。供应商说他们几个月前至少给我们寄了一个,但我们从来没有收到过。 如果分辨率关闭,则微步进值可能没有到达电机驱动器。 下周我可以尝试一些基本的 TMC5160 检查。 |
我可以做些什么来帮助调试?如果需要,我可以启动开发工具。 |
|
尝试v3.5.0-pre5。它修复了因切换到新框架而导致的问题。该切换发生在 v3.4.5 中,因此您的问题可能与此相关。 |
几天前我构建了 main 并没有帮助,但我也会尝试 pre5 并报告回来, |
从 main 构建的唯一原因是如果您需要更改仅编译配置中的某些内容,例如添加 OLED 支持。每次我们更新 main 时,我们都会发布一个正式版本。main 永远不会超前,通常落后于我们正在进行的工作。 |
pre5稍微好一点。看起来速率和距离再次正确,但其中一个电机仍未运行。 |
Pre5 稍微好一点可能是错误的。有什么我可以帮助调试的吗?你怀疑这是一个框架错误吗?关于硬件,我已经超出了我的舒适区,但我认为所有的驱动程序都是菊花链式的,但只有两个连接在一起的驱动程序有问题。我怀疑必须为两个电机都设置 cs_pin,但固件明确告诉我我错了。如果你能指出我的大致方向,我应该能够输入一些调试代码并收集一些数据。 |
通过远程控制进行调试太慢并且容易被误解。如果您能找到某种方法将 XPro 交到我们手中,我们就能解决问题。否则,它将永远被搁置一旁,因为该过程效率太低,无法取代我们也在做的所有其他事情。 |
公平的答案。我知道如果它来回复制粘贴是不切实际的。我非常乐意卷起袖子试一试,但我需要以“这就是它应该如何工作”的形式进行引导。作为一名软件工程师 40 多年,为其中 15 人编写了专业的 C++ 代码,但如今已经很生疏了。我给 XPro 人员发了消息,但事实证明这没有效果。我无法证明这笔费用是合理的,但如果那里有足够多的其他 XPro 人员,我很乐意做出贡献。购买 6 件装对我来说会更划算,如果我在开始之前就知道 FluidNC,那我就会这么做。我能做的下一个最好的事情就是让你通过 ssh 访问我的设置,但我很确定我知道你会怎么想这个想法。无论哪种方式,感谢 FluidNC。太棒了! |
好的,这就是它应该如何工作的。我真的没有时间写这个但是… 我们使用第三方 TMCStepper 库来访问 TMC 设备。它有一个复杂的类结构,试图利用不同 TMC 设备系列之间的相似性,同时处理它们的差异。这是一项艰巨的任务,因为在我看来,Trinamic 硬件工程师不了解如何设计他们的寄存器接口来满足软件的需求。通过 platformio.ini 中的“lib_deps”行将 TMCStepper 拉入 PlatformIO 编译设置 TMCStepper 库位于 Arduino 框架之上,Arduino 框架是一组 C++ 类,旨在使使用 Arduino 编码原则和相关的 Arduino 库与 ESP32 成为可能。该框架包括一个 esp32-hal 层,该层连接 Arduino C++ 类和 Espressif 的 ESP-IDF SDK 提供的 C 风格设备驱动程序。ESP-IDF 具有 C 设备驱动程序,这些驱动程序本身构建在另一个 HAL 层之上,该层试图抽象出经典 ESP32 芯片与 ESP32-S2 等新变体之间的差异,甚至是 RISC-V 指令集版本而不是Xtensa。而且 ESP-IDF HAL 层不直接进入硬件;相反,它会调用另一个“ll”(低级)HAL-ish 层,它是一堆始终内联的函数和一层#define“函数” 如果您知道如何找到包含在 Arduino 框架包中的实际版本,则可以检查 ESP-IDF 源代码。该包含以预编译的“.a”库文件的形式出现,而不是直接可编译的源代码。可以从源代码构建 ESP-IDF,但这需要不同的 platformio.ini 设置,这会为编译环境增加另一层复杂性,并有可能获得无法反映您尝试调试的代码的版本。使用默认的预编译设置,您无法在 ESP-IDF 级别更改代码以进行调试。 TMCStepper 使用的 Arduino 框架主要是 SPI 类,显然用于通过 SPI 总线发送命令。Arduino 框架的 SPI 类驱动程序使用了一些来自 ESP-IDF 的驱动程序,但也自己做了一些事情。 SPI 总线在 SD 卡和 TMC 设备之间共享。这需要为 SD 和 TMC 使用不同的片选 (CS) GPIO。这变得很复杂,因为 TMCStepper 想要使用 Arduino digitalWrite() 函数来控制 TMC CS GPIO,而对于 SD 卡,我们使用 FluidNC“Pin”框架,让我们使用统一的方式访问不同的“抽象 GPIO”,包括那些通过 I2S 实现的。为了使 TMC CS 工作,我们在 TMC Stepper 代码中重载了一个弱函数,并通过“PinMapper”类将其重定向回 FluidNC Pin 框架。 旧版本的 ESP-IDF 没有内部 HAL 层,因为它只支持经典的 ESP32 芯片。新版本有内部HAL,而且他们改变了驱动层一些功能的行为。新的 Arduino 框架的 esp32-hal-layer 的变化反映了 ESP-IDF 驱动层的行为变化。这两个地方都有潜在的错误。由于使用较新版本的 GCC 和相关的 C++ 标准库,也存在潜在问题,尤其是在原子领域。 您遇到的问题可能是由任何这些层中的更改或错误引起的。此外,我们并不完全了解 XPro 人员对他们的硬件做了什么。 现在你明白为什么我对花很多时间当你穿越荒野的向导的前景不那么兴奋了吗? |
好吧,那是一口,超出了我的预期,所以谢谢你。您已经很好地概述了复杂性,它看起来非常令人生畏。在纯二进制库之上的抽象之上的抽象并不是好兆头。 |
更不用说至少有 6 个主要组件是由具有不同架构风格、目标和方法的完全不同的人设计的,您最终需要理解其中许多组件的新旧版本才能驾驭变化放。 |
正如您所预料的那样,我并没有走得太远。话虽如此,我在 SparkConcepts GitHub 上就此提出了一个问题,这可能导致他们向你们每个人发送了一个 XPro。他们说至少有一个单位已经成功交付。 |
我星期五收到了那个。目前有一些设计问题使其无法与 FluidNC 100% 兼容。其中一些应该能够被忽略以允许基本的电机和 USB 功能,但我仍然对这两者有疑问。 我乐观地认为我们可以修改 FluidNC 使其工作,但这可能需要一些时间。为了获得我们需要的灵活性,可以强制对 SPI 和 Trinamic 部分进行重大重写。 请耐心等待并记住 FluidNC 是免费的开源固件。我们不隶属于 Spark Concepts。这是我们第一次看到这种硬件或原理图。 |
@bdring很好理解,谢谢! |
我昨天收到了 xpro,并正在研究围绕驱动芯片的菊花链 SPI 的 SPI 问题。 |
控制板
CNC xPro V5
董事会供应商的帮助
机器描述
Bulkman 3D Ultimate Bee,配置为双 X 电机。
配置文件
启动消息
用户界面软件
UGS
发生了什么?
我落后了一些修订并升级到 3.4.7。
这样做之后,我的一个 X 轴电机没有启动。我可以用手转动步进器,而其他的我不能。在 $MD 之后,我可以将它们全部翻转。
进给速度和距离也不正确。例如,G91 G0 Y100 移动了预期距离的大约 1/4,而不是预期的速度。steps_per_mm 看起来不错,但我不够聪明,无法在升级前备份配置,所以除非升级过程改变了什么,否则它应该是正确的。
我还没有尝试恢复固件(还)。
其他信息
没有反应