Horizontal expansion issue

I measured a part that I just printed. It is supposed to be 12.8 mm along the x-axis but it is 12.54 mm. Yet the y-axis is correct (.02mm off). I printed the same part 3 times with the same results. So I printed another (near identical) part that is supposed to be 8.8 mm along the x-axis yet it is 8.6 mm. Again the y-axis is correct (.02 mm off). I printed this part 3 times as well with the same results.
The parts are small and proper size is critical. I know overall expansion can be compensated for in Cura but is there a way to adjust for horizontal expansion on a single axis?

I have 2 thoughts, let’s take them 1 at a time so I don’t confuse myself

  1. Correction of the machine / slicer

Do you think this is being caused by an error in the lead screw? Assuming the lead screw pitch is constant (in at least 1 case on the forums there was varying pitch, which is a defect requiring replacement or swapping with another less important axis) the steps/mm can be corrected just like e steps with M92, just with the axis other than E.

Your X axis scaling error of -2.3ish% seems to be constant, so bumping up your X axis steps/mm from 400 to 409 could address that.

  1. Dealing with it and other precision.

Depending on how precise your parts need to be, if layer lines will cause an issue consider deliberately oversizing your parts by a few tenths and finishing with traditional methods, like sanding.

1 Like

Hi Brent,
Thanks you for that informative response. I was unaware that I could change the step/mm. Is that a change I would make in the firmware, or the g-code? Is there a tutorial on how to do this?
I considered oversizing the x-axis on my parts but there are about 200 of them for the various things I make. They all fit together with other parts in some form or fashion. So trying to oversize that one axis just isn’t practical. Sanding all those parts just isn’t in the cards for my 58 year old arthritic hands either. You’ll understand that in a couple of decades or so… ;D

John

The documentation for the command is here and it would basically just be

M92 X410 ; Set new value
M500     ; Save to EEPROM

To come up with the correct value something similar to setting e-steps would probably work well - maybe tape a sharpie to the toolhead and command it to move 100mm in X. Measure as precisely as possible, and scale the original value appropriately.

  • New Steps/mm = (Old/Current steps/mm) x [100 / (measured distance traveled)]

You should verify your X steps/mm is 400 rather than going off my assumption using M503 for the readout - look for the line starting with M92.

Thank you again. I’ll probably print and measure some small and medium parts. Something with multiple walls so I can measure the thickness of the walls and the spaces between. I have something on the printer now that is not so critical but will try this tomorrow evening.
John

You were dead on with 409. I’m going to print some things so I can dial in all 3 of my axis. I also noted that there is settings for backlash that I want to play with.

1 Like