Welcome! Log In Create A New Profile


Melzi 2.0 Z-Axis steppers not working (Marlin 2.0.x)

Posted by malachik 
Melzi 2.0 Z-Axis steppers not working (Marlin 2.0.x)
February 01, 2021 02:39PM
Hello all,

I'm setting up a replacement Melzi 2.0 board from TRONXY for my i3 clone, which - according to the RepRap wiki - has A4982 drivers for all the steppers. I'm attempting to configure Marlin 2.0.x for this printer and this is the last big problem I'm encountering.

The problem: My X, Y, and extruder steppers move just fine, but the Z axis (2 motors, 2 4-pin plugs on the board) doesn't move at all.

Here are my stepper settings:

// These are all excerpts from various parts of Configuration.h

#define DEFAULT_AXIS_STEPS_PER_UNIT   { 80, 80, 400, 500 }

#define DEFAULT_MAX_FEEDRATE          { 300, 300, 4, 25 }

#define DEFAULT_MAX_ACCELERATION      { 3000, 3000, 100, 10000 }

#define DEFAULT_ACCELERATION          2800    // X, Y, Z and E acceleration for printing moves
#define DEFAULT_RETRACT_ACCELERATION  2800    // E acceleration for retracts
#define DEFAULT_TRAVEL_ACCELERATION   2800    // X, Y, Z acceleration for travel (non printing) moves

//#define CLASSIC_JERK  //left at default

// :{ 0:'Low', 1:'High' }
#define X_ENABLE_ON 0
#define Y_ENABLE_ON 0
#define Z_ENABLE_ON 0
#define E_ENABLE_ON 0 // For all extruders

#define DISABLE_X false
#define DISABLE_Y false
#define DISABLE_Z false

#define INVERT_X_DIR false
#define INVERT_Y_DIR false
#define INVERT_Z_DIR false

#define X_HOME_DIR -1
#define Y_HOME_DIR -1
#define Z_HOME_DIR -1

#define X_MIN_POS 0
#define Y_MIN_POS 0
#define Z_MIN_POS 0
#define Z_MAX_POS 150

  //#define MIN_SOFTWARE_ENDSTOP_Z    //disabled until the driver works correctly


//#define Z_SAFE_HOMING

  #define Z_SAFE_HOMING_X_POINT X_CENTER  // X point for Z homing
  #define Z_SAFE_HOMING_Y_POINT Y_CENTER  // Y point for Z homing

// Homing speeds (mm/min)
#define HOMING_FEEDRATE_XY (50*50) //changed from 3000 to 2500
#define HOMING_FEEDRATE_Z  (4*60)

// Validate that endstops are triggered on homing moves

// Sorry if that was a bit much, I tried to include all the settings that could potentially have an effect on the Z motion.

I also left the stepper driver configuration at default for A4988's, which is supposed to work just fine for A4982's, and it does for X, Y, and E.

In everything I've tried, the Z motors won't move at all. From GCode commands to homing with the LCD and Pronterface. Inverting the stepper enable to 1 doesn't do anything either. I've tried plugging in the X-axis motor (which works perfectly) to the Z-axis plug, but even then it won't budge. When I send a command to move the Z-axis, the motors do make a small noise, like they're seizing up or something, but never actually move at all. The heatsink for the Z-axis driver is pretty cool almost all the time as far as I know.

Could it be a problem with the trim pots on the board, motor currents, or something else? I genuinely have no idea where to even look to solve this problem, so any guidance or advice would be hugely appreciated!! Thanks!
Re: Melzi 2.0 Z-Axis steppers not working (Marlin 2.0.x)
February 01, 2021 02:44PM
Did you install the 3 links under the Z driver board to set the micro stepping
Re: Melzi 2.0 Z-Axis steppers not working (Marlin 2.0.x)
February 04, 2021 06:58PM
I'm using a Melzi, so the drivers and controller are all on the same board, and as far as I can tell the only way to adjust the stepper drivers on the hardware side is a reference voltage trim pot. Is there something I'm missing? I assumed the problem was all software, but I might be completely wrong.
Re: Melzi 2.0 Z-Axis steppers not working (Marlin 2.0.x)
February 07, 2021 01:04AM
The boards on that page only show 4 stepper drivers. So you can only define x-y-z like I have (yours would say a4988 though):

#define X_DRIVER_TYPE TMC2208
#define Y_DRIVER_TYPE TMC2208
#define Z_DRIVER_TYPE TMC2208
#define E0_DRIVER_TYPE DRV8825

The two Z motors are driven off of 1 driver.

Edited 1 time(s). Last edit at 02/07/2021 01:07AM by dant220.
Re: Melzi 2.0 Z-Axis steppers not working (Marlin 2.0.x)
February 07, 2021 06:33PM
I currently have those lines commented since it defaults to A4988 anyway, and I've tried uncommenting it before, although it had no effect as far as I could tell. And yes, the Z-axis motors are connected in parallel to a single A4982, whereas each of the other motors have their own driver. I don't think that has anything to do with the problem, though, since it behaved the same when I connected it to the X-axis motor.
Re: Melzi 2.0 Z-Axis steppers not working (Marlin 2.0.x)
February 07, 2021 08:04PM
I do not think the pots have anything to do with it since they control current and the current was enough presumably before and they are difficult accidentally to move. If you are worried attach your meter to ground and the other probe to a screwdriver (a metal one) and the reading I set on my clone was around 800 mv for Z and the extruder. 600 mv for the X and Y. I set the current higher for those because on z It is driving two steppers but the torque demands are low. And for the extruder because there is more torque required. Just make notes of current voltages first.

That said Here is a good video:


Thomas is great!
Re: Melzi 2.0 Z-Axis steppers not working (Marlin 2.0.x)
February 07, 2021 09:03PM
Thanks, I re-did my trim pots to about what you recommended just to be sure. The video was helpful, but ultimately not really what I'm looking for. Although, it was useful for showing how I might be able to replace my stepper driver without replacing the entire board - which, to be honest, might be what I end up doing.
Re: Melzi 2.0 Z-Axis steppers not working (Marlin 2.0.x)
February 22, 2021 01:53PM
Update: I just circumvented the driver entirely. I bought a pololu A4988 board and reconfigured Z-step to the bed heater pin and connected that and the Z-dir pin to a separate board. It works alright, but it required a shielded cable to keep the motors from stepping randomly during a print. I now have a separate bed heater and z-stepper rather than it being all together in one unit, but it does work. Obviously, this is probably one of many solutions, but it's the most straightforward one for me and it's what I chose. Hopefully this can help someone else out too.
Sorry, only registered users may post in this forum.

Click here to login