Welcome! Log In Create A New Profile


Non-integer steps per mm

Posted by PCLoadPLA 
Non-integer steps per mm
June 21, 2024 01:22PM
Does Marlin support non-integer steps per mm, and is there any warning against doing this?

I calculated that I should change my X-axis from 80 steps per mm to 80.3 steps per mm. Only my X-axis needs correction; the same part printed 90 degrees consistently has X and Y relatively different, so I would like to at least match the X and Y axes to each other. However, is it a problem to set a decimal value for steps-per-mm? I have read various things on the Internet, from "yes it's fine" to "no it will cause your printer to explode" and a lot of "nobody would ever want to do that for these reasons".
Re: Non-integer steps per mm
June 21, 2024 02:32PM
Ie your talking about DEFAULT_AXIS_STEPS_PER_UNIT

used in code like this

xyze_float_t default_steps = DEFAULT_AXIS_STEPS_PER_UNIT

Ie the steps are floats, that is numbers that have decimal places

This is fine, and common practice.

example from standard configs
{ 80.08, 80.17, 400, 101.30 }
{ 80, 80, 100, 97.5 }
{ 76.190476, 76.190476, 1600, 164 }

Edited 2 time(s). Last edit at 06/21/2024 02:37PM by Dust.
Re: Non-integer steps per mm
June 21, 2024 03:38PM
I will add a note.

This should only be done if your gantry moves an incorrect distance

Printing out something and measuring it is not a good way to get an accurate steps/mm, only a rough estimate.
Incorrect E or Z steps/mm will mess this up, as will a number of other settings or plastic shrinkage

Edited 2 time(s). Last edit at 06/21/2024 03:49PM by Dust.
Re: Non-integer steps per mm
June 21, 2024 05:43PM
I would normally only set my steps per axis by matching actual axis movement. Normally I would agree not to use a print for this. However, in this case I'm actually using a print. I normally put a dial indicator on the axis, command a move, and check the dial indicator. In this case, I did that, and I can't see the discrepancy even with my dial indicator. Maybe it's a limitation of my dial indicator placement, or maybe the axis movement is nonlinear and so I'm calibrated over the few mm I check with my dial indicator but not over a longer distance. Because when I print a large square, it consistently comes out 249mm in the X direction and 250mm in the Y, even if I rotate the part in the slicer or do it diagonally. Since most factors like squish and extrusion would seem to be equal in the X and Y directions, I'm comfortable concluding this is coming from a difference in the axis movement, maybe a belt or pulley or something.
Sorry, only registered users may post in this forum.

Click here to login