Z 轴被 Marlin 1.1.0-RC7 卡住

3D打印 prusa-i3 马林鱼 固件 z轴
2021-04-24 10:26:05

背景

我刚刚在 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 转/秒。这是相当快的,步进器可能跟不上。尝试降低进给率。

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