Left Z-axis motor spins the down at the beginning of a print

When I start a print, the Left z-axis motor spins the opposite direction (down) to the right one i believe. It only happens for a moment as the nozzle digs into the bed and the motor makes a grinding noise. At the same time, I can see the right hand motor traveling upwards and the x-axis becoming un-level. I didnt realize what was happening on my first 2 prints and I thought my bed wasnt level, but after leveling the x-axis, and making sure the bed was level all over, and watching it happen again, I see and hear that left hand z-motor jamming at the beginning of each print attempt.

What can I do? I just got my printer on friday and started printing on the weekend… :cry:

I had something similar happen.

the “grinding” noise you here is the motor stalling (or skipping steps). It is being commanded to lift up WAY quicker than it actually can. For some reason the right motor can make it, but the left cannot. (probably because the weight of the x carriage is all the way to the left).

Check your G-code, Are you using slicer? If so, it is probably in the “custom g-code” settings area, and it is probably commanding a z5 move at full rapid.

Slicer does not seem to be able to set a different rapid speed for Z versus the other axises. If you set the “max speed” setting low enough, or remove or reduce the custom Gcode command, you should be fine.

This is possibly related to my question about Z-speed here: https://forum.lulzbot.com/t/setting-max-z-speed-in-slic3r-is-it-possible/109/1

What software are you using to drive the printer?

the “grinding” noise you here is the motor stalling (or skipping steps). It is being commanded to lift up WAY quicker than it actually can. For some reason the right motor can make it, but the left cannot. (probably because the weight of the x carriage is all the way to the left).

This would make sense to me. the head is homed all the way to the left side and once it slides to the center of the bed, it seems to move just fine, even though it’s off center.

I’m using slicer to generate my gcode - when i get home for lunch, i’ll take a look at the custom gcode field. So, is there no way to set the Z speed slower than the x/y speed?

Orias - i’m using slicer and printrun from lulzbot’s download section. I’ve had this issue with the octopus, the bedleveler code, and my own gcode.

You can set the Z axis speed in Pronterface, in the green colored box above the Z axis movement bar. Once you have it moving consistently press “Motors Off” and manually rotate the Z axis threaded rods one at a time to level the X axis and square it off in relation to the rest of the printer, then adjust the Z axis endstop and relevel the bed.

but will that setting over-write the g-code command?
i am using slicer and repetier host and it has a similar setting, but the g-code ignores it.

can’t the speed be limited in the firmware?..then it could never stall the motors. even if the g-code tries to

I haven’t used Repetier-host, but I know Repetier-Server needs a much slower Z axis travel when used with the TAZ.

but what actually limits the z axis speed…the firmware, printer host software, or g-code program?..that is the question i want answered.

Figured it out.

You can set the firmware max speed with an M code.

Thrue experimenting I found the TAZ can handle these max speeds without stalling the motors:

X axis: 11,500 mm/min (192 mm/sec)
Y axis: 12,500 mm/min (208 mm/sec)
Z axis: 250 mm/min (4 mm/sec)

Then just send the following command to the firmware:
M203 X192 Y208 Z4
and now the machine will never move faster than those settings, even if the g-code or printer host software commands it to. Now it appears these settings do not store in permanent memory, even after trying M500 to store the settings, when it was powered down and back up, the settings were not there.
So, I have put that M203 command in the “custom G-code” area of slicer so that it always sets the max speed…now i should be able to turn up the max speed in slicer (I will try 450mm/sec), and it should be able to move very fast in non-print moves, without stalling any of the axis’s. Each axis will be limited by the M203 code.

after trying the X and Y motion together, I have reduced my X axis speed from 416mm/sec to 192mm/sec. for some reason it stalls easier when both are moved together.

In Repetier-Server you can limit the Z-axis speed in the configuration file. Pronterface allows you to limit the speed in the green box above the Z movement bar. The Repetier-Host configuration page shows the second tab of the printer settings screen, you may want to lower the “Z-axis feed rate”. If that does not help and you still want to use Repetier-Host you may want to look into the following commands.

To view the current firmware settings run


Copy that down and adjust the Maximum Feed Rate in the firmware by entering the information in this format:

M203 X___ Y___ Z___ E___

Then use the manual motion controls to jog the Z axis up or down a little.

Unfortunately we don’t have a lot of experience running Repetier-Host. Once you get this dialed in would you share your settings?

Edit: Ninja’d! I’m glad you figured it out. Thanks for sharing!

I could not get M503 to actually show what the settings are. Where does it show the numbers?

The printer config max z-speed and max travel speed settings only seem to adjust the speeds for when you are manually moving the axis with the jog buttons…if you enter a G-code command that tells it to go faster than those settings, it will try to go faster than those settings.

That is why the code that slicer produced was making it stall, even though the host software had a good setting. The host software does not alter the G-code.

I did a little more experimenting with the motion and I have since turned down the max X-axis speed (I will edit my post above). Even though the original speed of 25,000 mm/min on the x-axis did not stall the motor when only the X-axis was moved, if an X and Y command was combined, it did stall, so now I am down to 11,500 mm/min (192 mm/sec)

I have a brand new TAZ and M503 reports nothing… it’s like the eeprom has never been initialized or something, wandering through the code, it seems like it should report something, but it doesn’t… Course I’ve had to send back my bed and controller anyway as it wouldn’t hold the bed temp so perhaps there is a code or controller issue with my unit.


M503 may only work if the EEPROM writing is enabled, it’s not enabled in the Marlin firmware’s Configuration.h, around line 304.

even though M503 does not work (it did not work on mine either) M203 should still work…it worked for me at least.
I know have prints with nice and fast rapid speeds, after adding the M203 to the slicer printer config file.

I also have a copy of the firmware and will put those max speeds in there whenever I finish the dual extruder and re-flash it.

not sure of the line numbers, but it appears that none of the TAZ printers have had this enabled.

here is the downloads current distribution section of that configuration.h file…

// the microcontroller can store settings in the EEPROM, e.g. max velocity...
// M500 - stores paramters in EEPROM
// M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily).  
// M502 - reverts to the default "factory settings".  You still need to store them in EEPROM afterwards if you want to.
//define this to enable eeprom support
//to disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
// please keep turned on if you can.

I suspect that even though you remove the comments on the define and rebuild, reflash, that you’d still need to store values before you could read them… But that’s just a guess…


nice catch,

I will enable those when I re-flash.