I have modified my Prusa i3 MK2 printer so that the existing extruder motor has now been attached to a 5mm lead screw with a 1mm pitch. What is the easiest way to control the extruding of the printer now.

For example is it possible to change the settings in slic3er at all for the extruder? or would I have to download and edit the marlin firmware?

  • $\begingroup$ Do you mean 'Z' azis, or extruder, which would be E? It doesn't affect the answer, but makes your question look weird. $\endgroup$ – Sean Houlihane Feb 28 '18 at 20:43
  • $\begingroup$ @marc-mckee both cases needs to edit your firmware to keep the right parameters, For Extruder to feed the exactly amount of filament, And for Z axis to get the correct height if is this the case you will have printings with a 1/3 of normal height or less. $\endgroup$ – Fernando Baltazar Mar 1 '18 at 0:08
  • $\begingroup$ @FernandoBaltazar You do NOT need to edit the firmware. M92, G500. $\endgroup$ – Sean Houlihane Mar 1 '18 at 8:32
  • $\begingroup$ Sorry i mean the extruder motor (E), i have used Pusa's online calculator and it has suggest this G code: "M92 Z3200.00" but i'm not sure where this needs to be added to? $\endgroup$ – Marc McKee Mar 1 '18 at 21:26
  • $\begingroup$ @MarcMcKee Sean is right, just connect your printer to a Gcode sender in your PC and type M92 Z3200.00 to enter the new values. $\endgroup$ – Fernando Baltazar Mar 2 '18 at 6:43

The firmware of the printer reads the g-code, in this instance, for z-axis movement. The g-code provides only (primarily) millimeters of movement and direction, along with speed.

The firmware reads those figures, figuratively speaking, and knows from the values stored in the firmware, how many steps to rotate the motor, in what direction and at what rate.

I suppose if you were a glutton for punishment, you could write some code to convert the existing measurements to ones that are adjusted for the new screw, but that's just crazy. Imagine that your new screw provides for 3.729 times the movement that the old screw did per unit of rotation. You'd have to find all the z-movements in the code and apply that factor to those numbers. I suspect rounding errors might make for a less-than-satisfactory print.

As you've mentioned in your question about editing the firmware, one may expect that you have an idea what is involved. If not, that may be the topic of another post.


You can set the 'steps per mm' for the extruder (and the other axes) by sending GCODE to the printer, and store this in the internal memory. Re-flashing the firmware only affects the 'factory reset' configuration of the printer parameters.

To see how to calibrate your extruder, you're probably best looking for videos since although the process is just a few GCODE commands, the whole process is not easy to understand.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.