Notifications
Clear all

Steps per millimeter correction  

  RSS
Pavel
(@pavel-4)
Eminent Member
Steps per millimeter correction

I need to change steps per mm on my printer to get parts with a correct dimensions.

I have to manually change the Scale  X (100.5%); Y (100.5%), Z(99.5%)   for every print when I want the parts to be a correct size.

Is there a way to set the the correct steps/mm in the firmware or in the GUI?

thanks

Posted : 09/03/2020 12:32 am
Neophyl
(@neophyl)
Illustrious Member
RE: Steps per millimeter correction

You can calibrate extrusion steps per millimetre and save the changes to firmware (guide to that here https://mattshub.com/blog/2017/04/19/extruder-calibration ) so the same process to read the currents steps, write new steps to eeprom and save to eeprom for the other axis is certainly possible.  Not sure how you would actually calibrate this though.

If you didn't want to save to eeprom permanently you could also add the commands to your start gcode which would set them at the start of each print.

 

Are you using a prusa printer as I thought the whole calibration at the start was to set this sort of thing up for you.

Posted : 09/03/2020 8:27 am
Pavel
(@pavel-4)
Eminent Member
Topic starter answered:
RE: Steps per millimeter correction

On my old printer I had an access to the eeprom, and I could edit and store the settings in a few simple steps.

I am looking for instruction how to do it with my Prusa printer. 

I will check out the the start gcode sequence (I did use with my old printer to avoid clamp crash). I assumed (with out much thinking about it) that the steps/mm are already in the gcode, but I maybe wrong and they get actually loaded/set from eeprom and gcode can override the setting. It does make sense.

I got the prusa so I do not have to monkey with the settings and just print. But, I also want to print with high (real dimensions) precision, so I will have to dive into it little more. 

thanks    

Posted : 09/03/2020 3:08 pm
bobstro
(@bobstro)
Illustrious Member
RE: Steps per millimeter correction
Posted by: @pavel-s34

[...] I got the prusa so I do not have to monkey with the settings and just print. But, I also want to print with high (real dimensions) precision, so I will have to dive into it little more. 

You can work through the procedure on Matt's Hub. It works, but you're likely to find on a machine with high repeatability like the Prusa that you're coming within a percentage or two of 285 (IIRC). What's more likely to be happening is that you're experiencing variations in specific filaments. Regardless of whether you calibrate the "master" setting in EEPROM or as gcode, you're still going to encounter filament variations. Prusa has an article describing one approach.

 

My notes and disclaimers on 3D printing

and miscellaneous other tech projects
He is intelligent, but not experienced. His pattern indicates two dimensional thinking. -- Spock in Star Trek: The Wrath of Khan

Posted : 09/03/2020 4:01 pm
vintagepc
(@vintagepc)
Member
RE: Steps per millimeter correction

You probably won't get much out of changing steps/mm here; the Mk3 is a known constant system unless you've swapped out components (motors, motor pulleys). 

On X/Y the default steps/mm is 100, so you cannot adjust it at the resolution of half a percent. If your X and Y are undersize, look at either whether you are underextruding/have belt or pulley slop. If not,  use the X/Y size compensation setting in Plicer. 

For Z, the default value of 400 steps/mm is again derived from the motor step size (1.8 degrees) and leadscrew thread pitch. If Z is undersized, have you verified it's not because you're over-squishing your first layer?

E is a slightly different beast and can vary somewhat depending how tight you have adjusted the idler door and the diameter of the filament, but again it will end up being very close to the default of 285. Often, within the measurement error.

Posted : 09/03/2020 4:23 pm
With_Maltodextrin
(@with_maltodextrin)
Trusted Member
RE: Steps per millimeter correction

A car analogy here might be

  • "my speedometer seems to be 1% off, how do change all my car's various gears' sizes to make the speed show correctly?"

With the answer being

  • "You can't/shouldn't do that in the first place - check that your tires are the correct size and inflated properly instead"

 

To help prove that you shouldn't change the steps per mm settings, compare:

  • Print a 50x50x50 cube in vase mode (zero infill, only 1 perimeter) - measure and calculate % error for each axis
  • Print that same cube again at 200% size - how about now? What percent error do you observe?
  • One last time, print the cube at 300% (150x150x150) and do the same measurement

My guess is that your proposed change to the steps per mm would only make one of those cubes "correct" at any one time.

You're coming up against the imprecision of extruding plastic, here.

To get closer to perfect sizing, you'll need to properly calibrate your extrusion, and get the nozzle and bed offset perfectly calibrated.

Posted : 09/03/2020 5:05 pm
Pavel
(@pavel-4)
Eminent Member
Topic starter answered:
RE: Steps per millimeter correction

All good suggestions:

with_maltodextrin  --  I did step 1 ... I will have to try step 2 and three. I do see my parts consistently  undersized in X and Y when I check them... the good question if I can nail down the exact number

vintagepc  - all stock parts in my prusa. I do like to squish the first layer, I hate when I loose print due to first layer adhesion.  I have to read the article... looks interesting.

 

I may need to relax my expectations and get a set of good files... 

thanks all!

 

Posted : 09/03/2020 5:31 pm
vintagepc
(@vintagepc)
Member
RE: Steps per millimeter correction

Yes - nailing down whether it's a relative error (always 1% off) or absolute error (always 0.5mm off) is a good start and can help point to causes. Keep us posted 🙂

Re first layer - possible option there if z dimensions are critical is to adjust it so the layer height is correct (e.g. 0.2mm) and then up the extrusion rate/multiplier for the first layer a bit to get the same adhesion as before. 

Posted : 09/03/2020 6:13 pm
Sisterlimonpot
(@sisterlimonpot)
Eminent Member
RE: Steps per millimeter correction

 

Posted by: @with_maltodextrin

A car analogy here might be

  • "my speedometer seems to be 1% off, how do change all my car's various gears' sizes to make the speed show correctly?"

With the answer being

  • "You can't/shouldn't do that in the first place - check that your tires are the correct size and inflated properly instead"

 

To help prove that you shouldn't change the steps per mm settings, compare:

  • Print a 50x50x50 cube in vase mode (zero infill, only 1 perimeter) - measure and calculate % error for each axis
  • Print that same cube again at 200% size - how about now? What percent error do you observe?
  • One last time, print the cube at 300% (150x150x150) and do the same measurement

My guess is that your proposed change to the steps per mm would only make one of those cubes "correct" at any one time.

You're coming up against the imprecision of extruding plastic, here.

To get closer to perfect sizing, you'll need to properly calibrate your extrusion, and get the nozzle and bed offset perfectly calibrated.

This is a ridiculous analogy, why approach changing gear ratios tire inflation and all those others to fix an odometer issue. Why not simply correct the software that displays the vehicles speed? That isn't a far fetched concept.

If the printer can be set up with tighter/looser belt tension and run perfectly fine, why not have an option to fine tune your prints. If I want to print a 10mmx1ommx100mm part, and it comes out 9x11x112 I should be able to correct this in the firmware.

 

The straw man argument that all the parts are precision from the factory and the error is from your ability to properly use the machine is very frustrating to read. What's even more frustrating is how difficult it is to find a way to simply reflash the eeprom to make proper corrections. 

 

I know this thread is a few years old, but why can't I find an easy step by step process to make the necessary changes? I have multiple mk3s+ printers and I can't mix and match parts because of the slight differences in the final measurements. Perhaps most people purchase these printers to print figurines but I like to dabble in precision and don't think it's too far fetched to have all of the same brand printer to print the same exact part. I would love an easy tutorial in how to make all my machines print the same parts in the exact same measurements.

Posted : 18/02/2022 3:51 pm
AlexKots
(@alexkots)
Active Member
RE: Steps per millimeter correction

I want a correction of +0.25% on all 3 axes in my MK3S+. I tried the M92 command setting

M92 X100.25 Y100.25 Z401

but only the Z seems to change. Does this command needs integer numbers? I am asking because I have seen a lot of implementations / suggestions using decimal values. Is this not valid for for the MK3S+ printer firmware?

Posted : 05/04/2022 12:45 am
AlexKots
(@alexkots)
Active Member
RE: Steps per millimeter correction

After a lot of "calibration" PETG prints, I found the following about the size correction in 3 axes:

1) X & Y axes.

They have a positive increase due to the belt tension. Gates' belt manual has an elongation figure (for 2MGT 6mm belt) of 0.1% for a tension of 1.7 Kgf. Typical tension force (according Gates) should be 4.5 Kgf, but for small pulleys and "long" distances it must be 1.5~2 times less, so finally we can accept a figure  0.10~0.20%. (It is not mentioned anywhere if a belt has its nominal pitch at zero tension or at some other value. I assume it is without tension). Of course belts are not totally accurate (without tension), so the overall figure may vary.

Then we have the shrinkage of plastic material due to temperature. The factor is 6.5 * 10^5 / C (same for PLA). So having a bed temperature like 85C and a "normal" one like 20C we have a shrinkage of  65 * 6.5 * 10^5 ~= 0.40%. This is valid for layers close to bed, where temperature is fixed by the heater. As we move away from the bed, shrinkage is corelated to the cooling fan percentage and the shape of item. A narrow long item (in X Y axes) has a big perimeter versus its area, so its' external surface is cooling faster. A thick wall (many perimeters) is "keeping" more heat than a thin one. And a dense infill adds more heat. 

So the critical point is the cooling of the fan, as also the layer time. A small round item has a small time plus a small perimeter to volume ratio, while a big and "long" one is in the opposite side. As an example, printing ta 230 / 80 C  a 20mm cube, I measured (with a micrometer) a difference of 35 microns between lower layers and higher ones, using 2 perimeters and 15% Grid infill. Using 6 perimeters and 30% Cubic infill difference was dropped at 10 microns, because more hot plastic was extruded per layer. Total error was about 0.25%, that is the figure expected according belt tension and plastic shrinkage.

It is obvious that PLA will have smaller error due to higher cooling and smaller bed temperature.

2) Z axis

Trapezoidal screw is not elongated, but it can also have some (constant) error. I do not know the Prusa's screw precision, but a good "typical" one is 0.03% (100 μm / 300 mm). So the major error should be only due to the plastic shrinkage. 

Assuming the same temperature conditions for the Z axis, we should expect a bigger error in Z axis, but this is not true. I suppose that this is due to the extrusion procedure. A typical layer height is 0.2 mm, while the line width is 0.45 mm. So the nozzle is leaving behind it an "oval" shape line, that is slightly cooled by the fan (in order to have good adhesion with next layer). But a "semi cooled" plastic element of oval shape that keeps cooling (until the nozzle will come over it for the next layer) will create a tension to be cylinder, meaning it will reduce a little its long (horizontal) axis and increase the small (vertical) one. Measuring an item having one 150 mm "leg" in every axis, I found that Y error was the smaller one. And printing an item having a thin cross shape XY layer (that obviously was cooling much faster), I  found much less error.

CONCUSION:

Error correction can't have an all around figure, it should be applied according shape, dimensions, number of perimeters, infill. It seems to be around 025% in XY axes and about 0.20% in Z (for my printer). 

Correction could be done through M92 command, or through Slicer scaling. The result will have some differences, because scaling correction means more layers, while M92 means underextrusion (because the same material will be placed in bigger space). An 0.25% increment in steps/mm value for the 3 axes, is about 0.75% underextrusion, value that is very small to create any problem.

Adding 0.25% in Z axis scale at an item printed with 0.2 mm layer height, will add an extra layer every 80 mm. Rounding the division, a layer will be added between 40 mm and 120 mmm, and above it two (All these if all layers are 0.2 mm thick). So Z correction may have not any effect if it is applied to small Z items. And in items that scale division will request X+0.5 layers, will have X+1, meaning they may be slightly oversized.

Posted : 06/04/2022 4:37 pm
TDHofstetter
(@tdhofstetter)
New Member
RE: Steps per millimeter correction

 

Posted by: @alexkots

...

CONCUSION:

...

Thank you, Alex. You saved me a lot of typing. I was all geared up to rebut. Your conclusions are exactly correct... except that underextrusion can easily be compensated by adjusting the extruder's steps per mm... which (contrary to prior ^^^ opini0n) can absolutely be adjusted by a noninteger, in which case the firmware simply doesn't apply the decimal portion to every step.

Any time a person finds that their printer's precision isn't as good as expected, especially when they're trying to match parts printed on different printers, they should adjust their three-axis steps per mm. No belt is 100% exact, and neither is any leadscrew or ballscrew. The manufacturing isn't perfect and stretch and wear further degrade precision.

Nuf sed.

Posted : 22/12/2022 4:49 pm
Share: