Nomar记录一段历史
Z 轴被 Marlin 1.1.0-RC7 卡住

背景

我刚刚在 Prusa i3 上成功安装了 RepRapDiscount Full Graphic Display;在这样做的过程中,我已将所有固件升级到最新版本的 Marlin,1.1.0-RC7。使用我之前的 Marlin 版本 1.0.2-1,一切正常。我已经将旧版本的所有参数都转移到了新版本中。代码的某些方面的编写方式有所不同,但基本上除了 Z 轴之外的所有内容都可以正常工作。

问题

我似乎遇到的一个问题是 Z 轴的任何类型的运动。当它移动时,无论是从 LCD 还是 Repetier,它似乎都按预期加速,但随后卡住/跳过了一堆步骤,然后按预期缓慢减速。无论我指示它移动的距离如何,它都会正常加速相同的时间/距离/步数,相对于它的指示进入这种邪恶模式一段时间/距离/步数,然后平稳减速每次都使用完全相同的时间。例如,如果它要移动10000 步,它会平滑移动100 步,然后跳过9800 步,然后再平滑地移动100 步。例如,如果它需要移动5000步,它也会平滑移动100步,然后跳过4800步,平滑完成最后100步。请记住,这些数字完全来自太空;无论如何,它们都不准确。我只是想尽可能清楚地描绘出一幅画。

故障排除

起初我检查以确保一切在机械上都是健全的。

  • 螺母在 5 毫米螺纹杆上自由上下移动。在杆的整个长度上没有任何点使螺母不能非常自由地移动。
  • 不锈钢棒对齐良好,整个 Z/X 轴托架沿垂直导轨非常自由地移动。轴承看起来没问题。

然后我想把它缩小到固件,而不是电气。为了记录,也许我遗漏了一些明显的东西,所以请告诉我。

  • 我测量了 RAMPS 1.4 板上 A4988 步进驱动器的电压,它位于 Arduino Mega2560 R3 上,读数为 350mV。即使我将电位器调整到 550mV,我仍然遇到同样的问题。
  • 下面的跳线似乎紧贴到位,A4988 上的所有引脚似乎也很好。
  • 我在本节中没有检查的一件事,逻辑分析,是从电路板到电机本身的电线,但基于以下内容,我认为这不是问题所在。 (虽然之前我错了)

转到固件。

我在 Configuration.h 中使用了默认设置部分,但无济于事。无论多低或多高,我使用任何最大加速度设置,我似乎都无法解决问题。它加速较慢,但整体效果是一样的。

 #define DEFAULT_AXIS_STEPS_PER_UNIT {80,80,3840,90} #define DEFAULT_MAX_FEEDRATE {500, 500, 5, 25} #define DEFAULT_MAX_ACCELERATION {2000,2000,10,2000} #define DEFAULT_ACCELERATION 1000 #define DEFAULT_RETRACT_ACCELERATION 1000 #define DEFAULT_TRAVEL_ACCELERATION 1000 #define DEFAULT_XYJERK 20.0 #define DEFAULT_ZJERK 0.4 #define DEFAULT_EJERK 5.0

理论

在这一点上,如果我不得不猜测,它与最大速度设置或微步进有关。这些是我在新固件上的一些设置。

 #if ENABLED(ULTIPANEL) #define MANUAL_FEEDRATE {50*60, 50*60, 4*60, 60} // Feedrates for manual moves along X, Y, Z, E from panel #define ULTIPANEL_FEEDMULTIPLY // Comment to disable setting feedrate multiplier via encoder #endif // minimum time in microseconds that a movement needs to take if the buffer is emptied. #define DEFAULT_MINSEGMENTTIME 20000 // If defined the movements slow down when the look ahead buffer is only half full #define SLOWDOWN // Frequency limit // See nophead's blog for more info // Not working O //#define XY_FREQUENCY_LIMIT 15 // Minimum planner junction speed. Sets the default minimum speed the planner plans for at the end // of the buffer and all stops. This should not be much greater than zero and should only be changed // if unwanted behavior is observed on a user's machine when running at very slow speeds. #define MINIMUM_PLANNER_SPEED 0.05// (mm/sec) // Microstep setting (Only functional when stepper driver microstep pins are connected to MCU. #define MICROSTEP_MODES {16,16,16,16,16} // [1,2,4,8,16] // Motor Current setting (Only functional when motor driver current ref pins are connected to a digital trimpot on supported boards) #define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A) // Motor Current controlled via PWM (Overridable on supported boards with PWM-driven motor driver current) //#define PWM_MOTOR_CURRENT {1300, 1300, 1250} // Values in milliamps // uncomment to enable an I2C based DIGIPOT like on the Azteeg X3 Pro //#define DIGIPOT_I2C // Number of channels available for I2C digipot, For Azteeg X3 Pro we have 8 #define DIGIPOT_I2C_NUM_CHANNELS 8 // actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS #define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0}

解决方案

如果有人可以帮助我,甚至为我指明正确的方向,我将不胜感激。我对这个新固件版本感到绝望。它具有我的另一个中不存在的所有这些条件选项卡,我无法弄清楚。

1个回答

问题很可能出在 MAX_FEEDRATE 中。最初移动是平滑的,表明加速不是问题。但是,您将最大速度设置为 5 毫米/秒,对于 m5 螺纹杆(具有 0.5 毫米节距),这意味着螺纹杆的转速为 10 转/秒。这是相当快的,步进器可能跟不上。尝试降低进给率。

固件微步和当前设置与它完全无关,因为您的设置(具有物理电位计和微步跳线)不支持这些。

这正是问题所在!非常感谢!

随机文章