Summary: Extruder calibration a must

The topic known as:

has become very useful to point people to so that they can calibrate their e-steps. However, that topic has become a bit large and overwhelming for a newcomer. So I’m starting this topic as an easier alternative to refer people to.

Please continue to use the original topic for any discussion or questions so that we can keep this thread lean & mean.

Here are the steps for calibrating the extruder on a Snapmaker A150, A250, or A350:

  1. On the touchscreen, swipe left and tap “Controls” and preheat the nozzle to 200º C (or as appropriate for your type of filament) and load the filament
  2. With calipers or a ruler, measure 100mm of filament from the top of your extruder and mark with a sharpie or with tape or you can cut it (If you have an enclosure you can lower the z-axis to give you more room to measure)(some people prefer to mark 120mm or 110mm in case it over extrudes. Either way you want to know how close to 100mm it’s extruding)
  3. Connect a computer via the USB cable and connect with Luban (you can only send commands via WiFi but cannot receive answers to queries),
  4. In the terminal inside of Luban, type in M83 and then return to enable Relative Mode
  5. Enter G1 E100 F050 to tell the extruder to extrude (what it thinks is) 100mm of filament
  6. After the command finishes (extruder stops moving), measure the remaining filament you have left in millimeters. (if you’ve marked 110mm or 120mm subtract the extra 10mm or 20mm) We will call this measurement “R”
  7. In the terminal, enter M503. In the response you get back, look for the text after M92 and find the E value. We will call this value “E”
  8. Calculate “S” with the following equation, S = E x 100/(100-R). As an example, if you measured R = 11mm, and found E = 212.21, then S = 212.21 x 100/(100-11) = 238.44
  9. Update your “S” value or the new steps/mm value to the SM2 by sending the following command in the terminal, M92 E###.##. For the example above, it would be M92 E238.44
  10. To save this value permanently send the M500 command.
  11. Turn power off and on. (this may not be necessary. For me it has been)
  12. Verify everything is updated by resending M503 and look for the E value in the M92 line.
    Optional, but recommended: Repeat steps 1-6 to re-check extrusion. (It’s up to you how perfect you want it to be. I’ve found as long as it’s within 1mm (1% accurate) it’s close enough for me)

So far firmware updates have not changed the value of M503, but it is recommended that you make note of before, and check after, any firmware upgrade. [EDIT: ON THE MOST RECENT FIRMWARE UPDATE, V1.12.0, PEOPLE HAVE REPORTED THAT THE VALUE OF M503 HAS RESET]

(This is a summary of info from @chazr33gtr, @rojaljelly, @Termin8tor and others. Thank you all for sharing your knowledge with us!)

For additional info on calibration and other tests you can run (although not all are possible on SM) check out:

Happy calibrating!

(if you have any suggestions for changes or edits, please message me or use the original discussion)


Another method to calibrate the Extrusion lead.

Tell me if anything needs to modified.

  • Connect the machine with the PC via the provided USB cable. And then enter the command “M503” in the console to check the data.

Assuming the E-axis in the serial port is x, the length of your extrusion is y, and the actual length of your extrusion is z, the changed value is x*(1+(y-z)/z).

For example, for your case, the value should be 212.21 * (1 + 33/67).

And the G-code command is M92 E


Would it be possible to pin this topic so that people can find it easily?

Also it would be nice if an ‘official’ method could be included with the support documents on the SM site.



I agree. This should be pinned.

@sdj544 @oshiricohn

I have pinned this post for three months. As for the official document, I will publish it in the support page this week.

Thank you for your support.



Please keep discussions on the master topic so that this one stays short and manageable:



I hope that WiFi communication and terminal in Luba will be fixed. I’m not a fan of connecting PC and Snapmaker with USB cable.


@Tracy @ZERO00 @W_Jing could we get this topic pinned again please. This is critical to proper calibration and the main thread has become too overwhelming for new users to understand. Don’t know why it was unpinned.


On Luban 4.3.0, this works via WiFi connect.
Just in case.



Please keep discussions on the master topic so that this one stays short and manageable:

If you can please delete your reply in this thread that would be appreciated.


Thanks a lot! It helped me a lot! I am from Germany, so all guys from there, make sure you use “.” instead of “,” while entering the E :wink:

It might be worth editing this to mention that if you unload and reload the filament to verify your adjustment, the extrude command will run backwards unless you issue the M83 command again. :upside_down_face:

Edit: Actually, I’m having to reboot the whole unit after saving the values, because until then, it won’t extrude. Ah, probably the temperature.

Hallo,ich hab mir den Teil des Kalibrierens hir durchgelesen und das hilft mir leider garnicht wirklich weiter, vieleicht könntest du mir etwas Helfen,ich bin auch aus Deutschland. Kann es sein dass die Eingabe nur über Luban läuft wenn das USB-Kabel angeschlossen ist?


Hey! Ich melde mich morgen bei dir per PN :wink:

Does this also apply for the Dual Extruder Module? If so, what are the values there?

1 Like

My dual extruder is pretty well calibrated, i dont change my esteps.

For anyone that comes back. Procedures are the same for the DX. it knows the difference between the two. My was 5.25mm under extruding/704.19 was my value.

It also works on WiFi these days via the workspace/console.

1 Like

I assume the calibration needs to be redone when switching hotends ? e.g 0.4 to 0.8 ?