Print-Tuning-Guide icon indicating copy to clipboard operation
Print-Tuning-Guide copied to clipboard

Expectations with sensorless homing wrt minor skipping with TEST_SPEED

Open Gallion opened this issue 2 years ago • 3 comments

I think it would be useful to add information about what can be expected when running this test with sensorless homing. Running a script with just homing, moving, homing, moving etc on my Prusa Bear, I get the following mcu values :

x : -128, -192, -256, -319, -384 y : -129, -192, -256, -321, -320

The following information is relevant :

"A stepper motor itself can only lose steps in increments of 4 full steps. (So, if one is using 16 microsteps, then a lost step on the stepper would result in the "mcu:" step counter being off by a multiple of 64 microsteps.)" Source

Sensorless homing allows to home an axis without the need for a physical limit switch. Instead, the carriage on the axis is moved into the mechanical limit making the stepper motor lose steps. The stepper driver senses the lost steps and indicates this to the controlling MCU (Klipper) by toggling a pin. This information can be used by Klipper as end stop for the axis. Source

For these reasons, I don't know if the stated method of determining whether there was minor skipping is as useful. There might be a need for a slightly different procedure. Perhaps a helpful method would be to print a tower, execute the test movements every n layers, then see if there is any visible shift in the tower.

Gallion avatar Jul 09 '23 18:07 Gallion

Yea i just set my new voron 2.4 with with sensorless a and at a acceleration of 500 and velocity of 300 it get numbers far apart.

mcu: stepper_x:61549 stepper_y:-43787 stepper_z:172 mcu: stepper_x:61793 stepper_y:-43757 stepper_z:163

Must be a way to compensate for that but i have no clue

Hun73rdk avatar Oct 06 '23 20:10 Hun73rdk

i have the exact same issue, no idea how to determine if i've lost a step with sensorless homing.

l-ejs-l avatar Dec 21 '23 00:12 l-ejs-l

I'm unsure if my logic is sound, but the way I ended up doing this is by expecting my axis to skip a full step when homing (so 64 microsteps in my case), if the numbers differed more or less than 64 I assumed minor skipping had occured and dialed down my values.

nikoramiro avatar Apr 29 '24 16:04 nikoramiro