Open murdock62 opened 3 years ago
New informations,
I think I have identified a small problem with the firmware. (Tests carried out on firmware versions 1.0.17 and 1.0.10 with the same results)
Wishing to precisely calibrate my D3 (TMC2208), I wanted to carry out a fine calibration of the axes. Neither one nor two:
A quick little calculation: ((70 / 69.81) * 80) = 80.217. I prefer unlike the rule to round down and between 80.21 in steps per mm of the y axis.
I resume my tests:
Recalculate: ((70 / 69.81) * 80.21) = 80.428. I enter 80.42 in the steps per mm of the y axis.
I resume my tests:
New calculation: ((70 / 70.18) * 80.42) = 80.213. I enter 80.21 in the steps per mm of the y axis.
I resume my tests:
Well let's admit ... I redo a Home I redo my verification:
And there I understand !!!
When the values are not applied there has always been a de facto homicide. Neither one nor two I re-enter my value (80.21) but this time directly by gcode (M92 Y80.21) The machine responds directly to "settings stored".
Without doing home I resume my tests:
My conclusion (to be compared with other tests, on other machines and firmware versions to exclude certain experimental bias: When home, the machine does not retrieve the value of steps per mm in the eeprom but directly in the firmware, thus resuming the default value. (80)
Am I the only one to get this result?
Good morning all,
The problem is solved.
I started from the sources of version 1.0.16 (only version available on TENLOG's GITHUB) In the file "Marlin_Main.cpp" at line 2689 you have this:
int Y_step_per_unit = axis_steps_per_unit[Y_AXIS];
this is used to save the current value of the steps per mm of the Y axis in a variable then what during the "home" phase this axis is temporarily assigned to the independent management of the second motor of the Z axis.
Only problem this variable is of type integer and the steps per mm can be decimal. So if to have a perfect displacement I had put 80.24 steps per mm for the Y axis as long as I do not "home" no worries only here if I do "home" sela will enter my 80.24 in my integer variable (which will bring it back to 80) and so I come back to a bad calibration of my Y axis ...
To correct the problem, just replace this line with this one:
float Y_step_per_unit = axis_steps_per_unit[Y_AXIS];
It's not much, but it can really be a problem!
It would be a good idea for the engineers at Tenlog to fix this in version 1.0.17. Thanks to them !
Good prints!
Hello,
I have a version with TMC2208. Firmawre version 17.
When I change the steps per mm on the y axis and increase this value the displacement of this axis is not more important. On the X axis it works normally.
Many thanks for your help.