开源改变世界

问题:固件升级后,一台电机不启动且速率关闭 #485

推推 grbl 2年前 (2023-02-05) 204次浏览
打开
3 个任务中的第 1 个
lagnat 打开了这个问题 2022 年 6 月 11 日 · 19条评论
打开
3 个任务中的第 1 个

问题:固件升级后,一台电机不启动且速率关闭#485

lagnat 打开了这个问题 2022 年 6 月 11 日 · 19条评论

评论

问题:固件升级后,一台电机不启动且速率关闭 #485

控制板

CNC xPro V5

董事会供应商的帮助

  • 是的
  • 不适用

机器描述

Bulkman 3D Ultimate Bee,配置为双 X 电机。

配置文件

board: unknown
name: CNC_xPRO_V5_Machine_Template
meta: 
stepping:
  engine: RMT
  idle_ms: 255
  pulse_us: 4
  dir_delay_us: 0
  disable_delay_us: 0
  segments: 6
axes:
  shared_stepper_disable_pin: NO_PIN
  shared_stepper_reset_pin: NO_PIN
  x:
    steps_per_mm: 160.000
    max_rate_mm_per_min: 6000.000
    acceleration_mm_per_sec2: 100.000
    max_travel_mm: 800.000
    soft_limits: false
    homing:
      cycle: 1
      allow_single_axis: true
      positive_direction: false
      mpos_mm: 0.000
      feed_mm_per_min: 200.000
      seek_mm_per_min: 3000.000
      settle_ms: 250
      seek_scaler: 1.000
      feed_scaler: 1.500
    motor0:
      limit_neg_pin: NO_PIN
      limit_pos_pin: NO_PIN
      limit_all_pin: gpio.34:low
      hard_limits: true
      pulloff_mm: 10.000
      tmc_5160:
        step_pin: gpio.27
        direction_pin: gpio.26
        disable_pin: NO_PIN
        r_sense_ohms: 0.050
        run_amps: 1.800
        hold_amps: 1.250
        microsteps: 8
        toff_disable: 0
        toff_stealthchop: 5
        use_enable: true
        cs_pin: gpio.17
        spi_index: 1
        run_mode: StallGuard
        homing_mode: StallGuard
        stallguard: 16
        stallguard_debug: false
        toff_coolstep: 3
        tpfd: 4
    motor1:
      limit_neg_pin: NO_PIN
      limit_pos_pin: NO_PIN
      limit_all_pin: NO_PIN
      hard_limits: false
      pulloff_mm: 1.000
      tmc_5160:
        step_pin: gpio.33
        direction_pin: gpio.32
        disable_pin: NO_PIN
        r_sense_ohms: 0.050
        run_amps: 1.800
        hold_amps: 1.250
        microsteps: 8
        toff_disable: 0
        toff_stealthchop: 5
        use_enable: true
        cs_pin: NO_PIN
        spi_index: 2
        run_mode: StallGuard
        homing_mode: StallGuard
        stallguard: 16
        stallguard_debug: false
        toff_coolstep: 3
        tpfd: 4
  y:
    steps_per_mm: 200.000
    max_rate_mm_per_min: 6000.000
    acceleration_mm_per_sec2: 100.000
    max_travel_mm: 550.000
    soft_limits: false
    homing:
      cycle: 1
      allow_single_axis: true
      positive_direction: false
      mpos_mm: 0.000
      feed_mm_per_min: 200.000
      seek_mm_per_min: 3000.000
      settle_ms: 250
      seek_scaler: 1.000
      feed_scaler: 1.500
    motor0:
      limit_neg_pin: NO_PIN
      limit_pos_pin: NO_PIN
      limit_all_pin: gpio.35:low
      hard_limits: true
      pulloff_mm: 5.000
      tmc_5160:
        step_pin: gpio.12
        direction_pin: gpio.14
        disable_pin: NO_PIN
        r_sense_ohms: 0.050
        run_amps: 1.800
        hold_amps: 1.250
        microsteps: 8
        toff_disable: 0
        toff_stealthchop: 5
        use_enable: true
        cs_pin: NO_PIN
        spi_index: 3
        run_mode: StallGuard
        homing_mode: StallGuard
        stallguard: 16
        stallguard_debug: false
        toff_coolstep: 3
        tpfd: 4
    motor1:
      limit_neg_pin: NO_PIN
      limit_pos_pin: NO_PIN
      limit_all_pin: NO_PIN
      hard_limits: false
      pulloff_mm: 1.000
      null_motor:
  z:
    steps_per_mm: 400.000
    max_rate_mm_per_min: 2000.000
    acceleration_mm_per_sec2: 100.000
    max_travel_mm: 300.000
    soft_limits: false
    homing:
      cycle: 1
      allow_single_axis: true
      positive_direction: true
      mpos_mm: 0.000
      feed_mm_per_min: 200.000
      seek_mm_per_min: 1000.000
      settle_ms: 250
      seek_scaler: 1.000
      feed_scaler: 1.500
    motor0:
      limit_neg_pin: NO_PIN
      limit_pos_pin: NO_PIN
      limit_all_pin: gpio.39:low
      hard_limits: true
      pulloff_mm: 5.000
      tmc_5160:
        step_pin: gpio.15
        direction_pin: gpio.2
        disable_pin: NO_PIN
        r_sense_ohms: 0.050
        run_amps: 1.800
        hold_amps: 1.250
        microsteps: 8
        toff_disable: 0
        toff_stealthchop: 5
        use_enable: true
        cs_pin: NO_PIN
        spi_index: 4
        run_mode: StallGuard
        homing_mode: StallGuard
        stallguard: 16
        stallguard_debug: false
        toff_coolstep: 3
        tpfd: 4
    motor1:
      limit_neg_pin: NO_PIN
      limit_pos_pin: NO_PIN
      limit_all_pin: NO_PIN
      hard_limits: false
      pulloff_mm: 1.000
      null_motor:
kinematics:
  Cartesian:
spi:
  miso_pin: gpio.19
  mosi_pin: gpio.23
  sck_pin: gpio.18
sdcard:
  cs_pin: gpio.5
  card_detect_pin: NO_PIN
control:
  safety_door_pin: gpio.16:low:pu
  reset_pin: NO_PIN
  feed_hold_pin: NO_PIN
  cycle_start_pin: NO_PIN
  macro0_pin: gpio.13:low:pu
  macro1_pin: gpio.0:low:pu
  macro2_pin: NO_PIN
  macro3_pin: NO_PIN
coolant:
  flood_pin: NO_PIN
  mist_pin: gpio.21
  delay_ms: 1000
probe:
  pin: gpio.22:low:pu
  check_mode_start: false
macros:
  startup_line0: 
  startup_line1: 
  macro0: 
  macro1: 
  macro2: 
  macro3: 
start:
  must_home: true
  deactivate_parking: false
  check_limits: true
user_outputs:
  analog0_pin: NO_PIN
  analog1_pin: NO_PIN
  analog2_pin: NO_PIN
  analog3_pin: NO_PIN
  analog0_hz: 5000
  analog1_hz: 5000
  analog2_hz: 5000
  analog3_hz: 5000
  digital0_pin: NO_PIN
  digital1_pin: NO_PIN
  digital2_pin: NO_PIN
  digital3_pin: NO_PIN
arc_tolerance_mm: 0.002
junction_deviation_mm: 0.010
[Error] An error was detected while sending '$cd': verbose_errors: false. Streaming has been paused.
report_inches: false
enable_parking_override_control: false
use_line_numbers: false
planner_blocks: 16
PWM:
  pwm_hz: 5000
  direction_pin: NO_PIN
  output_pin: gpio.25
  enable_pin: gpio.4
  disable_with_s0: false
  s0_with_disable: false
  spinup_ms: 0
  spindown_ms: 0
  tool_num: 0
  speed_map: 0=0.000% 12000=100.000%

启动消息

ets Jun  8 2016 00:22:57
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0030,len:1184
load:0x40078000,len:12812
load:0x40080400,len:3032
entry 0x400805e4
**** Connected to /dev/ttyUSB0 @ 115200 baud ****
[MSG:INFO: FluidNC v3.4.7]
[MSG:INFO: Compiled with ESP32 SDK:v4.4.1-1-gb8050b365e]
[MSG:INFO: Local filesystem type is SPIFFS]
[MSG:INFO: Configuration file:v5.yaml]
[MSG:INFO: Machine CNC_xPRO_V5_Machine_Template]
[MSG:INFO: Board unknown]
[MSG:INFO: SPI SCK:gpio.18 MOSI:gpio.23 MISO:gpio.19]
[MSG:INFO: SD Card cs_pin:gpio.5 detect:NO_PIN]
[MSG:INFO: Stepping:RMT Pulse:4us Dsbl Delay:0us Dir Delay:0us Idle Delay:255ms]
[MSG:INFO: Axis count 3]
[MSG:INFO: Axis X (0.000,800.000)]
[MSG:INFO:   Motor0]
[MSG:INFO:     tmc_5160 Step:gpio.27 Dir:gpio.26 CS:gpio.17 Disable:NO_PIN Index:1 R:0.050]
[MSG:INFO:     All Limit gpio.34:low]
[MSG:INFO:   Motor1]
[MSG:INFO:     tmc_5160 Step:gpio.33 Dir:gpio.32 CS:NO_PIN Disable:NO_PIN Index:2 R:0.050]
[MSG:INFO: Axis Y (0.000,550.000)]
[MSG:INFO:   Motor0]
[MSG:INFO:     tmc_5160 Step:gpio.12 Dir:gpio.14 CS:NO_PIN Disable:NO_PIN Index:3 R:0.050]
[MSG:INFO:     All Limit gpio.35:low]
[MSG:INFO:   Motor1]
[MSG:INFO: Axis Z (-300.000,0.000)]
[MSG:INFO:   Motor0]
[MSG:INFO:     tmc_5160 Step:gpio.15 Dir:gpio.2 CS:NO_PIN Disable:NO_PIN Index:4 R:0.050]
[MSG:INFO:     All Limit gpio.39:low]
[MSG:INFO:   Motor1]
[MSG:INFO: X Axis driver test passed]
[MSG:INFO: X2 Axis driver test passed]
[MSG:INFO: Y Axis driver test passed]
[MSG:INFO: Z Axis driver test passed]
[MSG:INFO: Door gpio.16:low:pu]
[MSG:INFO: Macro 0 gpio.13:low:pu]
[MSG:INFO: Macro 1 gpio.0:low:pu]
[MSG:INFO: Kinematic system: Cartesian]
[MSG:INFO: PWM Spindle Ena:gpio.4 Out:gpio.25 Dir:NO_PIN Freq:5000Hz Res:13bits]
[MSG:INFO: Using spindle PWM]
[MSG:INFO: Mist coolant gpio.21]
[MSG:INFO: Probe Pin: gpio.22:low:pu]
[MSG:INFO: STA SSID is not set]
[MSG:INFO: AP SSID FluidNC IP 192.168.0.1 mask 255.255.255.0 channel 1]
[MSG:INFO: AP started]
[MSG:INFO: WiFi on]
[MSG:INFO: Captive Portal Started]
[MSG:INFO: HTTP started on port 80]
[MSG:INFO: Telnet started on port 23]

用户界面软件

UGS

发生了什么?

我落后了一些修订并升级到 3.4.7。

这样做之后,我的一个 X 轴电机没有启动。我可以用手转动步进器,而其他的我不能。在 $MD 之后,我可以将它们全部翻转。

进给速度和距离也不正确。例如,G91 G0 Y100 移动了预期距离的大约 1/4,而不是预期的速度。steps_per_mm 看起来不错,但我不够聪明,无法在升级前备份配置,所以除非升级过程改变了什么,否则它应该是正确的。

我还没有尝试恢复固件(还)。

其他信息

没有反应

问题:固件升级后,一台电机不启动且速率关闭 #485
作者

请注意,Y steps_per_mm 表示 200,但那是因为我在玩一些设置而忘记在 $CD 之前重置,但这不是保存在文件中的内容。如果你需要,我可以用 $localfs 获取文件。

问题:固件升级后,一台电机不启动且速率关闭 #485
作者

更新:还原固件,然后尝试接下来的几个版本。

版本 结果
3.4.3 作品
3.4.4 作品
3.4.5 如上所述不起作用
3.4.6 根本不起作用。抛出一堆错误。
3.4.7 如上所述不起作用
问题:固件升级后,一台电机不启动且速率关闭 #485
所有者

该控制器与菊花链式 TMC5160 驱动程序和 SPI use_enable 是独一无二的。这不是我可以在这里复制的东西。供应商说他们几个月前至少给我们寄了一个,但我们从来没有收到过。

如果分辨率关闭,则微步进值可能没有到达电机驱动器。

下周我可以尝试一些基本的 TMC5160 检查。

问题:固件升级后,一台电机不启动且速率关闭 #485
作者

我可以做些什么来帮助调试?如果需要,我可以启动开发工具。

问题:固件升级后,一台电机不启动且速率关闭 #485
作者

The supplier said they were sending us a least one several months ago, but we never got one.

@Spark-Concepts @Mboss32

问题:固件升级后,一台电机不启动且速率关闭 #485

尝试v3.5.0-pre5。它修复了因切换到新框架而导致的问题。该切换发生在 v3.4.5 中,因此您的问题可能与此相关。

问题:固件升级后,一台电机不启动且速率关闭 #485
作者

几天前我构建了 main 并没有帮助,但我也会尝试 pre5 并报告回来,

问题:固件升级后,一台电机不启动且速率关闭 #485

从 main 构建的唯一原因是如果您需要更改仅编译配置中的某些内容,例如添加 OLED 支持。每次我们更新 main 时,我们都会发布一个正式版本。main 永远不会超前,通常落后于我们正在进行的工作。

问题:固件升级后,一台电机不启动且速率关闭 #485
作者

pre5稍微好一点。看起来速率和距离再次正确,但其中一个电机仍未运行。

问题:固件升级后,一台电机不启动且速率关闭 #485
作者

Pre5 稍微好一点可能是错误的。有什么我可以帮助调试的吗?你怀疑这是一个框架错误吗?关于硬件,我已经超出了我的舒适区,但我认为所有的驱动程序都是菊花链式的,但只有两个连接在一起的驱动程序有问题。我怀疑必须为两个电机都设置 cs_pin,但固件明确告诉我我错了。如果你能指出我的大致方向,我应该能够输入一些调试代码并收集一些数据。

问题:固件升级后,一台电机不启动且速率关闭 #485

通过远程控制进行调试太慢并且容易被误解。如果您能找到某种方法将 XPro 交到我们手中,我们就能解决问题。否则,它将永远被搁置一旁,因为该过程效率太低,无法取代我们也在做的所有其他事情。

问题:固件升级后,一台电机不启动且速率关闭 #485
作者

公平的答案。我知道如果它来回复制粘贴是不切实际的。我非常乐意卷起袖子试一试,但我需要以“这就是它应该如何工作”的形式进行引导。作为一名软件工程师 40 多年,为其中 15 人编写了专业的 C++ 代码,但如今已经很生疏了。我给 XPro 人员发了消息,但事实证明这没有效果。我无法证明这笔费用是合理的,但如果那里有足够多的其他 XPro 人员,我很乐意做出贡献。购买 6 件装对我来说会更划算,如果我在开始之前就知道 FluidNC,那我就会这么做。我能做的下一个最好的事情就是让你通过 ssh 访问我的设置,但我很确定我知道你会怎么想这个想法。无论哪种方式,感谢 FluidNC。太棒了!

问题:固件升级后,一台电机不启动且速率关闭 #485

好的,这就是它应该如何工作的。我真的没有时间写这个但是…

我们使用第三方 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 人员对他们的硬件做了什么。

现在你明白为什么我对花很多时间当你穿越荒野的向导的前景不那么兴奋了吗?

问题:固件升级后,一台电机不启动且速率关闭 #485
作者

好吧,那是一口,超出了我的预期,所以谢谢你。您已经很好地概述了复杂性,它看起来非常令人生畏。在纯二进制库之上的抽象之上的抽象并不是好兆头。

问题:固件升级后,一台电机不启动且速率关闭 #485

更不用说至少有 6 个主要组件是由具有不同架构风格、目标和方法的完全不同的人设计的,您最终需要理解其中许多组件的新旧版本才能驾驭变化放。

问题:固件升级后,一台电机不启动且速率关闭 #485
作者

正如您所预料的那样,我并没有走得太远。话虽如此,我在 SparkConcepts GitHub 上就此提出了一个问题,这可能导致他们向你们每个人发送了一个 XPro。他们说至少有一个单位已经成功交付。

问题:固件升级后,一台电机不启动且速率关闭 #485
所有者

我星期五收到了那个。目前有一些设计问题使其无法与 FluidNC 100% 兼容。其中一些应该能够被忽略以允许基本的电机和 USB 功能,但我仍然对这两者有疑问。

我乐观地认为我们可以修改 FluidNC 使其工作,但这可能需要一些时间。为了获得我们需要的灵活性,可以强制对 SPI 和 Trinamic 部分进行重大重写。

请耐心等待并记住 FluidNC 是免费的开源固件。我们不隶属于 Spark Concepts。这是我们第一次看到这种硬件或原理图。

问题:固件升级后,一台电机不启动且速率关闭 #485
作者

@bdring很好理解,谢谢!

问题:固件升级后,一台电机不启动且速率关闭 #485

我昨天收到了 xpro,并正在研究围绕驱动芯片的菊花链 SPI 的 SPI 问题。

免费注册 在 GitHub 上加入此对话。已有帐户? 登录评论
标签
还没有
项目

还没有

发展

没有分支机构或拉取请求

3人参加
问题:固件升级后,一台电机不启动且速率关闭 #485问题:固件升级后,一台电机不启动且速率关闭 #485问题:固件升级后,一台电机不启动且速率关闭 #485

喜欢 (0)