Occasional Z-axis vibrate without turning

Brand new machine build, working on tuning and aligning it. Using the kit purchased from Vicious, with latest firmware. My Z-axis turns easily by hand without steppers engaged. When engaged, sometimes the z-axis stutters/vibrates and doesn’t move just when doing simple up/down tests using the LCD panel or default (G1 Zxxx) commands (meaning, no change to default rates). I don’t see any obstructions in the pathway and if I disengage the motors I can easily move it up and down after a vibration. If I turn the Z adjustment nut by hand I can easily cause this to happen (minimal force applied). I’ve double and triple checked my wires and they all look good, and I’ve measured voltage on each of the two coils (on the unplugged connector) while moving the stepper by hand (so no broken wire path).

I verified the voltage on the current limiter and it was as expected (about 450mv) since it was purchased from the kit. I’ve increased the current limit to 600mv and it is stronger and I’m so far able to run it up/down and not have the vibration. But I’m still concerned, because I find it surprising how little force I need to apply to get the motor shaft to turn on the stepper while it is engaged (seems much easier than X or Y, where it appears very hard to turn, though I’ve not done extensive testing/analysis on that).

I also think I don’t understand the math correctly for setting current limits. I’ve looked at the Pololu video, and read up some on the ratings math (since RAMPS is at 12V and the motor is rated at a lower voltage) and I’ve computed the following: for the KL17H248-15-4A stepper (1.5A at 4.2V) I compute (1.5a * 4.2v) / 12v = .525 amps. To set VREF on the driver (DRV8825) I use “VREF * 2 = current_limit_amps” or using the original setting of .45v that would be .45 * 2 = .9a. But my prior math said the limit of the motor is .525 amps at 12V … which means the motor was already being overdriven before I increased it to 600mv. I feel I must be misunderstanding something simple here!

So my simple questions are:

  1. Should I be able to move the z-adjustment nut by hand (without excessive force) while the stepper is engaged?
  2. Is the correct course of action to adjust the current limit, or should I be looking more at the motor or the driver (or something else)?
  3. Do I misunderstand the math? If so, what clues might you have? If not, why is overdriving the stepper ok?



  1. Yes that is how I fine tune the first layer print height.
    2).525 is correct but steppers can easily be over driven by a lot. feel the stepper temp if it is hot to the touch you went to far, warm is were I keep it. Make sure you drivers do not over heat, anything about0.7v you will need active cooling.
    3)vref*2 is for the a49 drivers the 8825 don’t need that. You can turn that z up higher if you are worried. If it is not missing steps it is fine, but turn it up to 0.7 and run it for a while and see how the z stepper feels.

Great - I’ll continue on with testing and watch the heat.

By “active cooling” - are you referring to the stepper motor, or the driver (or both)? I am putting the Mega/RAMPS in a box with dual 50mm fans so there will be active cooling on the drivers ((minion) ramps 1.4 for mostly printed cnc multitool) - should be done in a couple days.

In looking at the Pololu site for the 8825 (DRV8825 Stepper Motor Driver Carrier, High Current) under the Current Limiting section, it does state that “Current Limit = VREF * 2”. Maybe I’m looking at the wrong data sheet, or I misunderstand the page? But it does sound like heat is the main thing to watch, though maybe I’ll measure actual current to see what I’m getting to the motor to confirm this…?

Thanks for your help!

Fans on the ramps.

Yes vref*2 gets you to about the max. At that current you will get high heat on the drivers. I can’t get about 1.1V without issues happening randomly with just a single 40mm fan on the heatsinks.

Hello, Chris, i had the same problem with my Z axis. All is good, hardware, steppers, …

I resolve it in marlin, configuration.h,
i changed
#define DEFAULT_MAX_FEEDRATE {195, 195, 8.7, 25}
#define DEFAULT_MAX_FEEDRATE {195, 195, 7, 25}

An now it work …

Thanks, @Apach. I finally determined my problem was some combination of increasing the stepper driver power and that the Z-axis / stepper motor coupler wasn’t perfectly aligned and caused extra tension as it rotated (this could be seen when rotating the threaded rod via the stepper without anything attached to it). I’ve been thinking I may switch to a machined coupler instead of printed, but it’s working great now so what ain’t broke…

Chris, one thing about moving the Z-axis via the thumb knob: when the coils are energized, you will notice a lot more resistance. As Ryan said, I also adjust my first layer height by turning that knob. It feels notchy, but that helps me get it exactly where I want it. If I don’t see any filament, I usually raise it up for two clicks. If I see a thin, round line, I lower it by up to two clicks. That’s typically all it takes.